@opengeoweb/workspace 10.1.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/index.esm.js +1916 -1947
  2. package/package.json +1 -2
  3. package/src/index.d.ts +5 -5
  4. package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialog.d.ts +1 -1
  5. package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialogConnect.d.ts +1 -1
  6. package/src/lib/components/WorkspaceDetail/WorkspaceDetail.stories.d.ts +1 -0
  7. package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsForm.d.ts +2 -1
  8. package/src/lib/components/WorkspaceSelectList/WorkspaceSelectListRow.d.ts +1 -1
  9. package/src/lib/store/index.d.ts +1 -1
  10. package/src/lib/store/store.d.ts +19 -1
  11. package/src/lib/store/viewPresets/index.d.ts +1 -1
  12. package/src/lib/store/viewPresets/reducer.d.ts +3 -7
  13. package/src/lib/store/viewPresets/selectors.d.ts +2 -1
  14. package/src/lib/store/viewPresets/types.d.ts +11 -7
  15. package/src/lib/store/viewPresets/utils.d.ts +1 -3
  16. package/src/lib/store/viewPresetsList/index.d.ts +1 -1
  17. package/src/lib/store/viewPresetsList/reducer.d.ts +1 -2
  18. package/src/lib/store/viewPresetsList/selectors.d.ts +1 -1
  19. package/src/lib/store/viewPresetsList/types.d.ts +2 -1
  20. package/src/lib/store/workspace/index.d.ts +1 -0
  21. package/src/lib/store/workspace/reducer.d.ts +2 -1
  22. package/src/lib/store/workspace/selectors.d.ts +6 -6
  23. package/src/lib/store/workspace/types.d.ts +4 -2
  24. package/src/lib/store/workspaceList/index.d.ts +1 -0
  25. package/src/lib/store/workspaceList/reducer.d.ts +2 -2
  26. package/src/lib/store/workspaceList/selectors.d.ts +3 -2
  27. package/src/lib/store/workspaceList/types.d.ts +3 -1
  28. package/src/lib/store/workspaceList/utils.d.ts +3 -1
  29. package/src/lib/utils/fakeApi.d.ts +3 -3
  30. package/src/lib/store/config.d.ts +0 -9
  31. package/src/lib/store/viewPresets/listener.integration.spec.d.ts +0 -1
  32. package/src/lib/utils/testUtils.d.ts +0 -4
package/index.esm.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
2
- import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, coreModuleReducersMap, routerReducersMap, coreModuleMiddlewares, routerMiddlewares, linkComponentTypesConstants, uiTypes, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
2
+ import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, mapListener, serviceListener, layersListener, syncGroupsListener, mapReducer, serviceReducer, layerReducer, syncGroupsReducer, loadingIndicatorReducer, uiReducer, linkComponentTypesConstants, uiTypes, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
3
3
  import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext, useAuthenticationContext as useAuthenticationContext$1, GEOWEB_ROLE_PRESETS_ADMIN as GEOWEB_ROLE_PRESETS_ADMIN$1 } from '@opengeoweb/api';
4
- import _, { chunk, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
4
+ import { chunk, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
5
5
  import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, Mosaic } from 'react-mosaic-component';
6
- import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducersMap, timeSeriesMiddlewares } from '@opengeoweb/timeseries';
6
+ import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/timeseries';
7
7
  import { publicWarningActions, WARN_NAMESPACE, warningsTranslations, publicWarningsSelectors } from '@opengeoweb/warnings';
8
- import { PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, SHARED_NAMESPACE, sharedTranslations, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, AlertBanner, CustomTooltip, SearchHighlight, ToggleMenu, DEFAULT_FILTER_HEIGHT, usePrevious, Filter, Resizable, ToolContainer, renderCounter, CustomToggleButton, ConfirmationDialog } from '@opengeoweb/shared';
9
- import { snackbarTypes, snackbarActions, snackbarReducersMap, snackbarMiddlewares, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
8
+ import { PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, SHARED_NAMESPACE, sharedTranslations, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, AlertBanner, PresetScope, CustomTooltip, SearchHighlight, ToggleMenu, DEFAULT_FILTER_HEIGHT, Filter, Resizable, ToolContainer, renderCounter, CustomToggleButton, usePrevious, ConfirmationDialog } from '@opengeoweb/shared';
9
+ import { snackbarTypes, snackbarActions, snackbarListener, snackbarReducer, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
10
10
  import { isAxiosError } from 'axios';
11
11
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
12
12
  import { ThemeWrapper, lightTheme, Link, LinkOff, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, Delete, Preset, PresetWorkspace, PresetTiles, BackdropStyle, BackdropElement, CloudLoading, CloudIdle, WebAssetOff, Exclamation } from '@opengeoweb/theme';
@@ -18,7 +18,6 @@ import i18n from 'i18next';
18
18
  import { WEBMAP_REACT_NAMESPACE, webmapReactTranslations } from '@opengeoweb/webmap-react';
19
19
  import { CORE_NAMESPACE, coreTranslations } from '@opengeoweb/core';
20
20
  import { FORM_FIELDS_NAMESPACE, formFieldsTranslations, ReactHookFormTextField, ReactHookFormHiddenInput, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
21
- import { produce } from 'immer';
22
21
  import * as React from 'react';
23
22
  import React__default, { useCallback } from 'react';
24
23
  import { Menu, Typography, List, ListItem, ListItemButton, ListItemIcon, Checkbox, ListItemText, LinearProgress, Grid2, Box, Backdrop, ListSubheader, MenuItem, useTheme, FormGroup, FormControlLabel, Tabs } from '@mui/material';
@@ -37,8 +36,9 @@ var en = {
37
36
  "workspce-clear": "Clear",
38
37
  "workspace-save": "Save",
39
38
  "workspace-save-as": "Save as",
40
- "workspace-edit": "Edit (name)",
41
- "workspace-edit-both": "Edit (name and abstract)",
39
+ "workspace-edit": "Edit (name and abstract)",
40
+ "workspace-share": "Share",
41
+ "workspace-stop-share": "Unshare",
42
42
  "geoweb-welcome": "Welcome to GeoWeb. Please use one of the presets to open up new views",
43
43
  "workspace-modified-new": "modified",
44
44
  "workspace-modified-existing": "not saved",
@@ -117,8 +117,9 @@ var fi = {
117
117
  "workspce-clear": "Tyhjennä",
118
118
  "workspace-save": "Tallenna",
119
119
  "workspace-save-as": "Tallenna nimellä",
120
- "workspace-edit": "Muokkaa (nimeä)",
121
- "workspace-edit-both": "Muokkaa (nimeä ja tiivistelmää)",
120
+ "workspace-edit": "Muokkaa (nimeä ja tiivistelmää)",
121
+ "workspace-share": "Missing-translation",
122
+ "workspace-stop-share": "Missing-translation",
122
123
  "geoweb-welcome": "Tervetuloa Geoweb-sovellukseen. Valitse jokin preset avataksesi uusia näkymiä",
123
124
  "workspace-modified-new": "muokattu",
124
125
  "workspace-modified-existing": "ei tallennettu",
@@ -185,8 +186,8 @@ var fi = {
185
186
  "workspace-viewpreset-success-reset": "ei käännetty"
186
187
  };
187
188
  var no = {
188
- "workspace-menu": "Arbeidsrommeny",
189
- "workspace-new": "Nytt arbeidsrom",
189
+ "workspace-menu": "Arbeidsflater",
190
+ "workspace-new": "Ny arbeidsflate",
190
191
  "workspace-loading": "Laster",
191
192
  "workspace-options": "Valg",
192
193
  "workspace-results": "resultater",
@@ -194,23 +195,24 @@ var no = {
194
195
  "workspce-clear": "Tøm",
195
196
  "workspace-save": "Lagre",
196
197
  "workspace-save-as": "Lagre som",
197
- "workspace-edit": "Endre (navn)",
198
- "workspace-edit-both": "Endre (navn og abstrakt)",
198
+ "workspace-edit": "Endre (navn og sammendrag)",
199
+ "workspace-share": "Del",
200
+ "workspace-stop-share": "Stop deling",
199
201
  "geoweb-welcome": "Velkommen til GeoWeb. Åpne et forhåndsvalg for å åpne nye vinduer",
200
202
  "workspace-modified-new": "modifisert",
201
203
  "workspace-modified-existing": "ikke lagret",
202
- "workspace-dialog-delete": "Slett arbeidsrom",
204
+ "workspace-dialog-delete": "Slett arbeidsflate",
203
205
  "workspace-duplicate": "Kopier",
204
206
  "workspace-cancel": "Avbryt",
205
207
  "workspace-dialog-name": "Navn",
206
- "workspace-dialog-abstract": "Abstrakt",
207
- "workspace-dialog-confirm-delete-message": "Er du sikker på at du vil slette \"{{TITLE}}\" arbeidsrommet?",
208
+ "workspace-dialog-abstract": "Sammendrag",
209
+ "workspace-dialog-confirm-delete-message": "Er du sikker på at du vil slette arbeidsflaten \"{{TITLE}}\"?",
208
210
  "workspace-dialog-confirm-reset-message": "ikke oversatt",
209
- "workspace-error-fetch": "Feilet i å hente liste over arbeidsrom",
210
- "workspace-error-fetch-detail": "Feilet i å hente arbeidsrommet {{WORKSPACE_ID}}",
211
- "workspace-viewpresets-error": "Presets er ikke tilgjengelig",
211
+ "workspace-error-fetch": "Feilet i å hente liste over arbeidsflate",
212
+ "workspace-error-fetch-detail": "Feilet i å hente arbeidsflaten {{WORKSPACE_ID}}",
213
+ "workspace-viewpresets-error": "Snarvei er ikke tilgjengelig",
212
214
  "workspace-retry": "Prøv igjen",
213
- "workspace-delete-tooltip": "Slett preset",
215
+ "workspace-delete-tooltip": "Slett snarvei",
214
216
  "workspace-control-split-horizontal": "Splitt vindu horisontalt",
215
217
  "workspace-control-split-vertical": "Splitt vindu vertikalt",
216
218
  "workspace-control-expand": "Utvid vindu",
@@ -218,44 +220,44 @@ var no = {
218
220
  "workspace-control-close": "Lukk vindu",
219
221
  "workspace-control-close-message-title": "Whoops",
220
222
  "workspace-control-close-message-description": "Er du sikker på at du vil lukke vinduet? Alle endringer vil slettes.",
221
- "workspace-mappreset-delete-message": "Er du sikker på at du vil slette \"{{TITLE}}\" kart-preset?",
223
+ "workspace-mappreset-delete-message": "Er du sikker på at du vil slette snarveien \"{{TITLE}}\"?",
222
224
  "workspace-viewpresets-fail-fetch": "Feilet i å hente {{VIEWPRESET_ID}}",
223
- "workspace-mappreset-dialog-title": "Kartpreset navn",
224
- "workspace-mappreset-save-as": "Lagre kartpreset som",
225
- "workspace-mappreset-new": "Ny kartpreset",
226
- "workspace-mappreset-dialog-title-delete": "Slett kartpreset",
227
- "workspace-mappreset-dialog-title-edit": "Endre kartpreset",
228
- "workspace-mappreset-error-save": "Kartpreset ikke lagret: en feil skjedde under lagring. Prøv igjen senere",
229
- "workspace-mappreset-error-fetch": "Feilet i å hente liste over kartpresets",
230
- "workspace-list-error": "Feilet i å hente liste over arbeidsrompresets",
231
- "workspace-list-success-save-all": "Arbeidsrom \"{{TITLE}}\" og underliggende presets er lagret",
232
- "workspace-list-success-delete": "Arbeidsrom \"{{TITLE}}\" er slettet",
233
- "workspace-list-success-duplicate": "Arbeidsrom \"{{TITLE}}\" er lagret",
234
- "workspace-list-success-edit": "Arbeidsrom \"{{TITLE}}\" er endret",
225
+ "workspace-mappreset-dialog-title": "Snarvei navn",
226
+ "workspace-mappreset-save-as": "Lagre snarvei som",
227
+ "workspace-mappreset-new": "Ny snarvei",
228
+ "workspace-mappreset-dialog-title-delete": "Slett snarvei",
229
+ "workspace-mappreset-dialog-title-edit": "Endre snarvei",
230
+ "workspace-mappreset-error-save": "Snarvei ikke lagret: en feil skjedde under lagring. Prøv igjen senere",
231
+ "workspace-mappreset-error-fetch": "Feilet i å hente liste over snarveier",
232
+ "workspace-list-error": "Feilet i å hente liste over snarveier",
233
+ "workspace-list-success-save-all": "Arbeidsflaten \"{{TITLE}}\" og underliggende snarveier er lagret",
234
+ "workspace-list-success-delete": "Arbeidsflaten \"{{TITLE}}\" er slettet",
235
+ "workspace-list-success-duplicate": "Arbeidsflaten \"{{TITLE}}\" er lagret",
236
+ "workspace-list-success-edit": "Arbeidsflaten \"{{TITLE}}\" er endret",
235
237
  "workspace-list-success-reset": "ikke oversatt",
236
- "workspace-list-success-save": "Arbeidsrom \"{{TITLE}}\" er lagret",
237
- "workspace-save-error": "Feilet i å lagre arbeidsrom \"{{TITLE}}\"",
238
+ "workspace-list-success-save": "Arbeidsflaten \"{{TITLE}}\" er lagret",
239
+ "workspace-save-error": "Feilet i å lagre arbeidsflaten \"{{TITLE}}\"",
238
240
  "workspace-error-generic": "Noe feilet, prøv igjen",
239
- "workspace-viewpreset-success-delete": "Kartpreset \"{{TITLE}}\" er slettet",
240
- "workspace-viewpreset-success-save-as": "Ny kartpreset \"{{TITLE}}\" er lagret",
241
- "workspace-viewpreset-success-edit": "Kartpreset \"{{TITLE}}\" er endret",
242
- "workspace-viewpreset-success-save": "Kartpreset \"{{TITLE}}\" er lagret",
243
- "workspace-viewpreset-menu": "Vindupresetmeny",
244
- "workspace-admin-save-workspace": "Lagre nytt arbeidsrom",
241
+ "workspace-viewpreset-success-delete": "Snarvei \"{{TITLE}}\" er slettet",
242
+ "workspace-viewpreset-success-save-as": "Ny snarvei \"{{TITLE}}\" er lagret",
243
+ "workspace-viewpreset-success-edit": "Snarvei \"{{TITLE}}\" er endret",
244
+ "workspace-viewpreset-success-save": "Snarvei \"{{TITLE}}\" er lagret",
245
+ "workspace-viewpreset-menu": "Snarveier",
246
+ "workspace-admin-save-workspace": "Lagre ny arbeidsflate",
245
247
  "workspace-admin-save-user-workspace": "Ikke oversatt",
246
248
  "workspace-save-new-viewpreset": "Dette nye vinduet vil bli lagt til din brukers forhåndsinnstillinger.",
247
- "workspace-save-new-viewpreset-warning-system": "Lagre endringene som er gjort i dette arbeidsrommet som en del av en ny personlig forhåndsinnstilling.",
249
+ "workspace-save-new-viewpreset-warning-system": "Lagre endringene som er gjort i denne arbeidsflaten som en del av en ny personlig forhåndsinnstilling.",
248
250
  "workspace-save-new-viewpreset-warning-user": "Lagre endringene som er gjort i dette personlige vinduet.",
249
- "workspace-select-modified-viewpresets": "Velg de endrede vinduene i dette arbeidsområdet som du vil oppdatere.",
250
- "workspace-admin-save-new-workspace": "Lagre nytt arbeidsrom",
251
+ "workspace-select-modified-viewpresets": "Velg de endrede vinduene i dennee arbeidsflaten som du vil oppdatere.",
252
+ "workspace-admin-save-new-workspace": "Lagre ny arbeidsflate",
251
253
  "workspace-admin-select-modified-viewpresets": "Velg vindu med endringer du ønsker å oppdatere",
252
- "workspace-admin-save-new-viewpreset": "Denne nye vinduet blir algt til systemets forhåndsinnstillinger.",
253
- "workspace-admin-save-new-viewpreset-warning": "Lagring av endringer til denne systempreset vil påvirke andre presets.",
254
- "workspace-admin-save-new-viewpreset-title": "Lagre ny systempreset",
254
+ "workspace-admin-save-new-viewpreset": "Dette nye vinduet blir valgt til systemets forhåndsinnstillinger.",
255
+ "workspace-admin-save-new-viewpreset-warning": "Lagring av endringer til denne felles arbeidsflaten vil påvirke andre snarveier.",
256
+ "workspace-admin-save-new-viewpreset-title": "Lagre ny felles arbeidsflate",
255
257
  "workspace-reset": "Tilbakestill",
256
258
  "workspace-reset-title": "Tilbakestill til original",
257
- "workspace-dialog-confirm-delete-system": "Systemets arbeidsrom vil bli slettet, men alle vinduer som er brukt vil forbli intakte.",
258
- "workspace-dialog-confirm-delete-user": "Arbeidsrommet blir slettet, men alle vinduer som er brukt vil forbli intakte.",
259
+ "workspace-dialog-confirm-delete-system": "Systemets arbeidsflate vil bli slettet, men alle vinduer som er brukt vil forbli intakte.",
260
+ "workspace-dialog-confirm-delete-user": "Arbeidsflaten blir slettet, men alle vinduer som er brukt vil forbli intakte.",
259
261
  "workspace-link-location-header": "Lokasjon",
260
262
  "workspace-link": "Link",
261
263
  "workspace-dialog-confirm-reset-view-message": "Ikke oversatt",
@@ -271,8 +273,9 @@ var nl = {
271
273
  "workspce-clear": "Wissen",
272
274
  "workspace-save": "Opslaan",
273
275
  "workspace-save-as": "Opslaan als",
274
- "workspace-edit": "Aanpassen (naam)",
275
- "workspace-edit-both": "Aanpassen (naam en abstract)",
276
+ "workspace-edit": "Aanpassen (naam en abstract)",
277
+ "workspace-share": "Delen",
278
+ "workspace-stop-share": "Stoppen met delen",
276
279
  "geoweb-welcome": "Welkom bij GeoWeb. Kies een van de presets om een nieuw venster te openen",
277
280
  "workspace-modified-new": "bewerkt",
278
281
  "workspace-modified-existing": "niet opgeslagen",
@@ -896,6 +899,7 @@ var WorkspacePresetAction;
896
899
  WorkspacePresetAction["SAVE_SYSTEM_PRESET_AS"] = "SAVE_SYSTEM_PRESET_AS";
897
900
  WorkspacePresetAction["RESET"] = "RESET";
898
901
  WorkspacePresetAction["DELETE_SYSTEM_PRESET"] = "DELETE_SYSTEM_PRESET";
902
+ WorkspacePresetAction["SHARE"] = "SHARE";
899
903
  })(WorkspacePresetAction || (WorkspacePresetAction = {}));
900
904
  var WorkspaceErrorType;
901
905
  (function (WorkspaceErrorType) {
@@ -1045,14 +1049,26 @@ var slice$3 = createSlice({
1045
1049
  });
1046
1050
  });
1047
1051
  },
1052
+ setFilterChips: function setFilterChips(draft, action) {
1053
+ var payload = action.payload;
1054
+ draft.workspaceListFilters.forEach(function (filter, index) {
1055
+ var existingFilter = payload.find(function (f) {
1056
+ return f.id === filter.id;
1057
+ });
1058
+ var updatedFilter = Object.assign({}, filter, {
1059
+ isSelected: existingFilter ? existingFilter.isSelected : filter.isSelected
1060
+ });
1061
+ draft.workspaceListFilters[index] = updatedFilter;
1062
+ });
1063
+ },
1048
1064
  searchFilter: function searchFilter(draft, action) {
1049
1065
  var searchQuery = action.payload.searchQuery;
1050
1066
  draft.searchQuery = searchQuery;
1051
1067
  }
1052
1068
  }
1053
1069
  });
1054
- var reducer$3 = slice$3.reducer;
1055
- var workspaceListActions = slice$3.actions;
1070
+ var workspaceListReducer = slice$3.reducer,
1071
+ workspaceListActions = slice$3.actions;
1056
1072
 
1057
1073
  var ViewPresetErrorComponent;
1058
1074
  (function (ViewPresetErrorComponent) {
@@ -1114,7 +1130,7 @@ var viewPresetsAdapter = createEntityAdapter({
1114
1130
  var initialState$2 = viewPresetsAdapter.getInitialState();
1115
1131
  var warningsPresetChangeActions = [publicWarningActions.setWarningFilters];
1116
1132
  var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
1117
- var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
1133
+ var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setTimeSliderSpan, mapActions.toggleTimeSpanAuto, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
1118
1134
  var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle];
1119
1135
  var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
1120
1136
  var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
@@ -1123,40 +1139,6 @@ var slice$2 = createSlice({
1123
1139
  name: 'viewPresets',
1124
1140
  reducers: {
1125
1141
  // fetch list actions
1126
- fetchInitialViewPresets: function fetchInitialViewPresets(draft,
1127
- // eslint-disable-next-line no-unused-vars
1128
- _action) {
1129
- draft.ids.forEach(function (id) {
1130
- var entity = draft.entities[id];
1131
- if (entity) {
1132
- entity.isFetching = true;
1133
- viewPresetsAdapter.setOne(draft, entity);
1134
- }
1135
- });
1136
- },
1137
- fetchedInitialViewPresets: function fetchedInitialViewPresets(draft,
1138
- // this action is also caught in viewPresetsListReducer
1139
- // eslint-disable-next-line no-unused-vars
1140
- action) {
1141
- draft.ids.forEach(function (id) {
1142
- var entity = draft.entities[id];
1143
- if (entity) {
1144
- entity.isFetching = false;
1145
- viewPresetsAdapter.setOne(draft, entity);
1146
- }
1147
- });
1148
- },
1149
- errorInitialViewPresets: function errorInitialViewPresets(draft, action) {
1150
- var error = action.payload.error;
1151
- draft.ids.forEach(function (id) {
1152
- var entity = draft.entities[id];
1153
- if (entity) {
1154
- entity.error = error;
1155
- entity.isFetching = false;
1156
- viewPresetsAdapter.setOne(draft, entity);
1157
- }
1158
- });
1159
- },
1160
1142
  fetchViewPresets: function fetchViewPresets(draft, action) {
1161
1143
  var panelId = action.payload.panelId;
1162
1144
  var entity = draft.entities[panelId];
@@ -1375,10 +1357,28 @@ var slice$2 = createSlice({
1375
1357
  });
1376
1358
  }
1377
1359
  },
1378
- searchFilter: function searchFilter(draft, action) {
1360
+ setFilterChips: function setFilterChips(draft, action) {
1379
1361
  var _action$payload11 = action.payload,
1380
- searchQuery = _action$payload11.searchQuery,
1381
- panelId = _action$payload11.panelId;
1362
+ panelId = _action$payload11.panelId,
1363
+ filters = _action$payload11.filters;
1364
+ var entity = draft.entities[panelId];
1365
+ if (!entity) {
1366
+ return;
1367
+ }
1368
+ entity.filters.forEach(function (filter, index) {
1369
+ var existingFilter = filters.find(function (f) {
1370
+ return f.id === filter.id;
1371
+ });
1372
+ var updatedFilter = Object.assign({}, filter, {
1373
+ isSelected: existingFilter ? existingFilter.isSelected : filter.isSelected
1374
+ });
1375
+ entity.filters[index] = updatedFilter;
1376
+ });
1377
+ },
1378
+ searchFilter: function searchFilter(draft, action) {
1379
+ var _action$payload12 = action.payload,
1380
+ searchQuery = _action$payload12.searchQuery,
1381
+ panelId = _action$payload12.panelId;
1382
1382
  var entity = draft.entities[panelId];
1383
1383
  if (entity) {
1384
1384
  entity.searchQuery = searchQuery;
@@ -1387,9 +1387,9 @@ var slice$2 = createSlice({
1387
1387
  },
1388
1388
  extraReducers: function extraReducers(builder) {
1389
1389
  builder.addCase(mapActions.setMapPresetError, function (draft, action) {
1390
- var _action$payload12 = action.payload,
1391
- mapId = _action$payload12.mapId,
1392
- error = _action$payload12.error;
1390
+ var _action$payload13 = action.payload,
1391
+ mapId = _action$payload13.mapId,
1392
+ error = _action$payload13.error;
1393
1393
  var entity = draft.entities[mapId];
1394
1394
  if (entity) {
1395
1395
  entity.error = {
@@ -1413,9 +1413,9 @@ var slice$2 = createSlice({
1413
1413
  });
1414
1414
  warningsPresetChangeActions.map(function (warningsAction) {
1415
1415
  return builder.addCase(warningsAction, function (draft, action) {
1416
- var _action$payload13 = action.payload,
1417
- origin = _action$payload13.origin,
1418
- panelId = _action$payload13.panelId;
1416
+ var _action$payload14 = action.payload,
1417
+ origin = _action$payload14.origin,
1418
+ panelId = _action$payload14.panelId;
1419
1419
  if (origin === 'user' && panelId) {
1420
1420
  var entity = draft.entities[panelId];
1421
1421
  if (entity && !(entity != null && entity.hasChanges)) {
@@ -1427,9 +1427,9 @@ var slice$2 = createSlice({
1427
1427
  });
1428
1428
  syncGroupChangeActions.map(function (syncGroupAction) {
1429
1429
  return builder.addCase(syncGroupAction, function (draft, action) {
1430
- var _action$payload14 = action.payload,
1431
- origin = _action$payload14.origin,
1432
- targetId = _action$payload14.targetId;
1430
+ var _action$payload15 = action.payload,
1431
+ origin = _action$payload15.origin,
1432
+ targetId = _action$payload15.targetId;
1433
1433
  if (origin === 'user') {
1434
1434
  var entity = draft.entities[targetId];
1435
1435
  if (entity && !(entity != null && entity.hasChanges)) {
@@ -1441,9 +1441,9 @@ var slice$2 = createSlice({
1441
1441
  });
1442
1442
  mapPresetChangeActions.map(function (mapPresetAction) {
1443
1443
  return builder.addCase(mapPresetAction, function (draft, action) {
1444
- var _action$payload15 = action.payload,
1445
- mapId = _action$payload15.mapId,
1446
- origin = _action$payload15.origin;
1444
+ var _action$payload16 = action.payload,
1445
+ mapId = _action$payload16.mapId,
1446
+ origin = _action$payload16.origin;
1447
1447
  var isChangeOriginSupported = supportedMapActionOrigins.indexOf(origin) >= 0;
1448
1448
  if (isChangeOriginSupported && mapId) {
1449
1449
  var entity = draft.entities[mapId];
@@ -1456,9 +1456,9 @@ var slice$2 = createSlice({
1456
1456
  });
1457
1457
  timeSeriesPresetChangeActions.map(function (timeSeriesPresetAction) {
1458
1458
  return builder.addCase(timeSeriesPresetAction, function (draft, action) {
1459
- var _action$payload16 = action.payload,
1460
- panelId = _action$payload16.panelId,
1461
- origin = _action$payload16.origin;
1459
+ var _action$payload17 = action.payload,
1460
+ panelId = _action$payload17.panelId,
1461
+ origin = _action$payload17.origin;
1462
1462
  var isChangeOriginSupported = supportedTimeSeriesActionOrigins.indexOf(origin) >= 0;
1463
1463
  var changesRelevantProperties = timeSeriesPresetAction.type === timeSeriesActions.patchParameter.type ? Object.keys(action.payload.parameter).filter(function (key) {
1464
1464
  return key !== 'id' && key !== 'instanceId';
@@ -1474,8 +1474,8 @@ var slice$2 = createSlice({
1474
1474
  });
1475
1475
  }
1476
1476
  });
1477
- var reducer$2 = slice$2.reducer;
1478
- var viewPresetActions = slice$2.actions;
1477
+ var viewPresetsReducer = slice$2.reducer,
1478
+ viewPresetActions = slice$2.actions;
1479
1479
 
1480
1480
  /* *
1481
1481
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -1664,7 +1664,7 @@ var createCustomEmptyMapWorkspace = function createCustomEmptyMapWorkspace(empty
1664
1664
  });
1665
1665
  return emptyWorkspacePreset;
1666
1666
  };
1667
- var constructFilterParams$1 = function constructFilterParams(filters, searchQuery) {
1667
+ var constructFilterParams = function constructFilterParams(filters, searchQuery) {
1668
1668
  // get filters
1669
1669
  var _filters$reduce = filters.reduce(function (filterList, filter) {
1670
1670
  if (filter.isSelected && filter.type === 'scope') {
@@ -1910,11 +1910,13 @@ var slice$1 = createSlice({
1910
1910
  panelId = _action$payload5.panelId,
1911
1911
  title = _action$payload5.title,
1912
1912
  presetAction = _action$payload5.action,
1913
- scope = _action$payload5.scope;
1913
+ scope = _action$payload5.scope,
1914
+ _abstract = _action$payload5["abstract"];
1914
1915
  var entity = draft.views.byId[panelId];
1915
1916
  if (entity && presetAction !== PresetAction.DELETE) {
1916
1917
  entity.title = title;
1917
1918
  entity.scope = scope || 'user';
1919
+ entity["abstract"] = _abstract;
1918
1920
  }
1919
1921
  });
1920
1922
  workspacePresetChangeActions.map(function (action) {
@@ -1934,13 +1936,15 @@ var slice$1 = createSlice({
1934
1936
  if (entity && viewPresetId === '') {
1935
1937
  entity.title = '';
1936
1938
  entity.scope = 'system';
1939
+ entity["abstract"] = '';
1937
1940
  }
1938
1941
  }
1939
1942
  });
1940
1943
  });
1941
1944
  }
1942
1945
  });
1943
- var reducer$1 = slice$1.reducer;
1946
+ // eslint-disable-next-line prefer-destructuring
1947
+ var workspaceReducer = slice$1.reducer;
1944
1948
  var workspaceActions = Object.assign({}, slice$1.actions);
1945
1949
 
1946
1950
  /* *
@@ -2149,35 +2153,6 @@ var emptyViewPreset = function emptyViewPreset(componentType) {
2149
2153
  initialProps: initialPropsByType[actualComponentType]
2150
2154
  };
2151
2155
  };
2152
- // Returns object of applied user filters such as scope/search etc
2153
- // If all filter chips are selected, an empty string is returned for that filter which is interpreted in the BE as "return all" _
2154
- var constructFilterParams = function constructFilterParams(filters, searchQuery) {
2155
- // get filters
2156
- var isAllSelectedForFilters = filters.every(function (filter) {
2157
- return filter.isSelected;
2158
- });
2159
- // If all filters are selected, ensure we return nothing for scope
2160
- var _ref = isAllSelectedForFilters ? {
2161
- scope: []
2162
- } : filters.reduce(function (filterList, filter) {
2163
- if (filter.isSelected && filter.type === 'scope') {
2164
- return Object.assign({}, filter, {
2165
- scope: filterList.scope.concat(filter.id)
2166
- });
2167
- }
2168
- return filterList;
2169
- }, {
2170
- scope: []
2171
- }),
2172
- scope = _ref.scope;
2173
- // get search
2174
- var search = getCleanSearchQuery(searchQuery);
2175
- return Object.assign({}, scope.length && {
2176
- scope: scope.toString()
2177
- }, search.length && {
2178
- search: search
2179
- });
2180
- };
2181
2156
 
2182
2157
  /* *
2183
2158
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -2408,856 +2383,162 @@ var getWorkspaceRouteUrl = function getWorkspaceRouteUrl(workspaceId) {
2408
2383
  return workspaceId ? routes.workspaceDetail.replace(':workspaceId', workspaceId) : routes.workspace;
2409
2384
  };
2410
2385
 
2411
- var workspacePresetsList = [
2412
- {
2413
- id: "screenConfigRadarTemp",
2414
- title: "Radar and temperature",
2415
- date: "2022-06-01T12:34:27.787184",
2416
- scope: "system",
2417
- abstract: "Radar and temperature maps",
2418
- viewType: "multiWindow"
2419
- },
2420
- {
2421
- id: "screenConfigRadarRadar",
2422
- title: "Radar and Radar",
2423
- date: "2022-06-01T12:34:27.787184",
2424
- scope: "system",
2425
- abstract: "",
2426
- viewType: "multiWindow"
2427
- },
2386
+ var viewPresetsListFullContent = [
2428
2387
  {
2429
- id: "screenConfigTimeSeries_knmi_timeseries_ha43_dini",
2430
- title: "TimeSeries KNMI EDR HA43 Dini",
2431
- date: "2022-06-01T12:34:27.787184",
2432
- scope: "system",
2433
- abstract: "",
2434
- viewType: "multiWindow"
2388
+ id: "radar",
2389
+ title: "Radar",
2390
+ abstract: "abstract radar",
2391
+ componentType: "Map",
2392
+ initialProps: {
2393
+ mapPreset: {
2394
+ layers: [
2395
+ {
2396
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
2397
+ name: "RAD_NL25_PCP_CM",
2398
+ format: "image/png",
2399
+ enabled: true,
2400
+ style: "radar/nearest",
2401
+ id: "layerid_8",
2402
+ layerType: "mapLayer"
2403
+ },
2404
+ {
2405
+ service: "https://openwms.fmi.fi/geoserver/wms?",
2406
+ name: "Radar:suomi_dbz_eureffin",
2407
+ format: "image/png",
2408
+ style: "Radar dbz Summer",
2409
+ enabled: true,
2410
+ layerType: "mapLayer"
2411
+ },
2412
+ {
2413
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
2414
+ name: "RAD_NL25_PCP_CM",
2415
+ format: "image/png",
2416
+ style: "precip-blue-transparent/nearest",
2417
+ enabled: true,
2418
+ layerType: "mapLayer"
2419
+ }
2420
+ ],
2421
+ proj: {
2422
+ bbox: {
2423
+ left: 58703.6377,
2424
+ bottom: 6408480.4514,
2425
+ right: 3967387.5161,
2426
+ top: 11520588.9031
2427
+ },
2428
+ srs: "EPSG:3857"
2429
+ },
2430
+ activeLayerId: "radar_precipitation_intensity_nordic_id",
2431
+ toggleTimestepAuto: false,
2432
+ animationPayload: {
2433
+ duration: 240,
2434
+ interval: 5,
2435
+ speed: 2,
2436
+ endTime: "NOW+PT2H00M",
2437
+ shouldEndtimeOverride: true
2438
+ },
2439
+ shouldAutoUpdate: false,
2440
+ shouldAnimate: true
2441
+ }
2442
+ }
2435
2443
  },
2436
2444
  {
2437
- id: "screenConfigTimeSeries",
2438
- title: "TimeSeries",
2439
- date: "2022-06-01T12:34:27.787184",
2440
- scope: "system",
2441
- abstract: "",
2442
- viewType: "multiWindow"
2445
+ title: "Temperature",
2446
+ id: "temp",
2447
+ componentType: "Map",
2448
+ initialProps: {
2449
+ mapPreset: {
2450
+ layers: [
2451
+ {
2452
+ service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
2453
+ name: "10M/ta",
2454
+ id: "layerid_10",
2455
+ layerType: "mapLayer"
2456
+ }
2457
+ ],
2458
+ proj: {
2459
+ bbox: {
2460
+ left: -450651.2255879827,
2461
+ bottom: 6490531.093143953,
2462
+ right: 1428345.8183648037,
2463
+ top: 7438773.776232235
2464
+ },
2465
+ srs: "EPSG:3857"
2466
+ }
2467
+ },
2468
+ syncGroupsIds: [
2469
+ "Area_RadarTemp",
2470
+ "Time_RadarTemp"
2471
+ ]
2472
+ }
2443
2473
  },
2444
2474
  {
2445
- id: "screenConfigHarmoniePrecipMSLRefTimePresetWithoutMultiMapLayerManager",
2446
- title: "Precipitation, pressure and wind 1:1",
2447
- date: "2022-06-01T12:34:27.787184",
2448
- scope: "system",
2449
- abstract: "",
2450
- viewType: "tiledWindow"
2475
+ title: "TimeseriesMap",
2476
+ id: "TimeseriesMap",
2477
+ x: 0,
2478
+ y: 0,
2479
+ w: 6,
2480
+ h: 18,
2481
+ componentType: "Map",
2482
+ initialProps: {
2483
+ mapPreset: {
2484
+ layers: [
2485
+ ],
2486
+ displayMapPin: true,
2487
+ proj: {
2488
+ bbox: {
2489
+ left: -450651.2255879827,
2490
+ bottom: 6490531.093143953,
2491
+ right: 1428345.8183648037,
2492
+ top: 7438773.776232235
2493
+ },
2494
+ srs: "EPSG:3857"
2495
+ }
2496
+ }
2497
+ }
2451
2498
  },
2452
2499
  {
2453
- id: "screenConfigHarmoniePrecipMSLRefTimePresetWithMultiMapLayerManager",
2454
- title: "Precipitation, pressure and wind 1:all",
2455
- date: "2022-06-01T12:34:27.787184",
2456
- scope: "system",
2457
- abstract: "",
2458
- viewType: "tiledWindow"
2459
- },
2460
- {
2461
- id: "screenConfigHarmoniePresetWithoutMultiMapLayerManager",
2462
- title: "Harmonie Temperature and Precipitation 1:1",
2463
- date: "2022-06-01T12:34:27.787184",
2464
- scope: "system",
2465
- abstract: "",
2466
- viewType: "tiledWindow"
2467
- },
2468
- {
2469
- id: "screenConfigHarmoniePresetWithMultiMapLayerManager",
2470
- title: "Harmonie Temperature and Precipitation 1:all",
2471
- date: "2022-06-01T12:34:27.787184",
2472
- scope: "system",
2473
- abstract: "",
2474
- viewType: "tiledWindow"
2475
- },
2476
- {
2477
- id: "radarView",
2478
- title: "Radar",
2479
- date: "2022-06-01T12:34:27.787184",
2480
- scope: "user",
2481
- abstract: "Some abstract",
2482
- viewType: "singleWindow"
2483
- },
2484
- {
2485
- id: "screenConfigD",
2486
- title: "Radar & Sat",
2487
- date: "2022-06-01T12:34:27.787184",
2488
- scope: "system",
2489
- abstract: "",
2490
- viewType: "multiWindow"
2491
- },
2492
- {
2493
- id: "screenConfigOBS",
2494
- title: "OBS",
2495
- date: "2022-06-01T12:34:27.787184",
2496
- scope: "system",
2497
- abstract: "",
2498
- viewType: "multiWindow"
2499
- },
2500
- {
2501
- id: "screenConfigRadAndObs",
2502
- title: "FourMapsInOneView",
2503
- date: "2022-06-01T12:34:27.787184",
2504
- scope: "system",
2505
- abstract: "Four grid maps",
2506
- viewType: "tiledWindow"
2507
- },
2508
- {
2509
- id: "screenConfigHarmonie",
2510
- title: "Harmonie multi",
2511
- date: "2022-06-01T12:34:27.787184",
2512
- scope: "system",
2513
- abstract: "",
2514
- viewType: "multiWindow"
2515
- },
2516
- {
2517
- id: "workspaceHarmonie",
2518
- title: "Harmonie",
2519
- date: "2022-06-01T12:34:27.787184",
2520
- scope: "system",
2521
- abstract: "",
2522
- viewType: "singleWindow"
2523
- },
2524
- {
2525
- id: "screenConfigOnlyBBOXGroup",
2526
- title: "SyncGroups only BBOX predefined",
2527
- date: "2022-06-01T12:34:27.787184",
2528
- scope: "system",
2529
- abstract: "SyncGroups synced BBOX",
2530
- viewType: "multiWindow"
2531
- },
2532
- {
2533
- id: "screenConfigOnlyTIMEGroup",
2534
- title: "SyncGroups only TIME predefined",
2535
- date: "2022-06-01T12:34:27.787184",
2536
- scope: "system",
2537
- abstract: "SyncGroups synced TIME",
2538
- viewType: "multiWindow"
2539
- },
2540
- {
2541
- id: "emptyMap",
2542
- title: "Empty map",
2543
- date: "2022-06-01T12:34:27.787184",
2544
- scope: "system",
2545
- abstract: "",
2546
- viewType: "singleWindow"
2547
- },
2548
- {
2549
- id: "capWorkspace",
2550
- title: "Cap Warnings",
2551
- date: "2022-06-01T12:34:27.787184",
2552
- scope: "system",
2553
- abstract: "",
2554
- viewType: "multiWindow"
2555
- }
2556
- ];
2557
-
2558
- var workspacePresetsListFullContent = [
2559
- {
2560
- id: "screenConfigRadarTemp",
2561
- title: "Radar and temperature",
2562
- scope: "system",
2563
- abstract: "",
2564
- viewType: "multiWindow",
2565
- views: [
2566
- {
2567
- mosaicNodeId: "screen_no_1",
2568
- viewPresetId: "radar"
2569
- },
2570
- {
2571
- mosaicNodeId: "screen_no_2",
2572
- viewPresetId: "temp"
2573
- }
2574
- ],
2575
- syncGroups: [
2576
- {
2577
- id: "Area_RadarTemp",
2578
- type: "SYNCGROUPS_TYPE_SETBBOX"
2579
- },
2580
- {
2581
- id: "Time_RadarTemp",
2582
- type: "SYNCGROUPS_TYPE_SETTIME"
2583
- }
2584
- ],
2585
- mosaicNode: {
2586
- direction: "row",
2587
- first: "screen_no_1",
2588
- second: "screen_no_2",
2589
- splitPercentage: 50
2590
- }
2591
- },
2592
- {
2593
- id: "screenConfigRadarRadar",
2594
- title: "Radar and Radar",
2595
- scope: "system",
2596
- abstract: "",
2597
- viewType: "multiWindow",
2598
- views: [
2599
- {
2600
- mosaicNodeId: "view-1",
2601
- viewPresetId: "radar"
2602
- },
2603
- {
2604
- mosaicNodeId: "view-2",
2605
- viewPresetId: "radar"
2606
- }
2607
- ],
2608
- syncGroups: [
2609
- {
2610
- id: "Area_RadarTemp",
2611
- type: "SYNCGROUPS_TYPE_SETBBOX"
2612
- },
2613
- {
2614
- id: "Time_RadarTemp",
2615
- type: "SYNCGROUPS_TYPE_SETTIME"
2616
- }
2617
- ],
2618
- mosaicNode: {
2619
- direction: "row",
2620
- first: "view-1",
2621
- second: "view-2",
2622
- splitPercentage: 50
2623
- }
2624
- },
2625
- {
2626
- id: "screenConfigTimeSeries_knmi_timeseries_ha43_dini",
2627
- title: "TimeSeries EDR KNMI HA43 DINI",
2628
- scope: "system",
2629
- abstract: "This contains a very very long abstract so that you can see some ellipsis. Who knows how it will behave. ",
2630
- viewType: "multiWindow",
2631
- views: [
2632
- {
2633
- mosaicNodeId: "view-1",
2634
- viewPresetId: "view_knmi_timeseries_ha43_dini_wms"
2635
- },
2636
- {
2637
- mosaicNodeId: "view-2",
2638
- viewPresetId: "view_knmi_timeseries_ha43_dini_edr"
2639
- }
2640
- ],
2641
- syncGroups: [
2642
- ],
2643
- mosaicNode: {
2644
- direction: "row",
2645
- first: "view-1",
2646
- second: "view-2"
2647
- }
2648
- },
2649
- {
2650
- id: "screenConfigTimeSeries",
2651
- title: "TimeSeries Example",
2652
- scope: "system",
2653
- abstract: "This contains a very very long abstract so that you can see some ellipsis. Who knows how it will behave. ",
2654
- viewType: "multiWindow",
2655
- views: [
2656
- {
2657
- mosaicNodeId: "view-1",
2658
- viewPresetId: "TimeseriesMap"
2659
- },
2660
- {
2661
- mosaicNodeId: "view-2",
2662
- viewPresetId: "Timeseries"
2663
- }
2664
- ],
2665
- syncGroups: [
2666
- ],
2667
- mosaicNode: {
2668
- direction: "row",
2669
- first: "view-1",
2670
- second: "view-2"
2671
- }
2672
- },
2673
- {
2674
- id: "screenConfigHarmoniePrecipMSLRefTimePresetWithoutMultiMapLayerManager",
2675
- title: "Precipitation, pressure and wind 1:1",
2676
- scope: "system",
2677
- abstract: "",
2678
- viewType: "tiledWindow",
2679
- views: [
2680
- {
2681
- mosaicNodeId: "view-1",
2682
- viewPresetId: "harmRefTime"
2683
- }
2684
- ],
2685
- syncGroups: [
2686
- {
2687
- id: "areaLayerGroupA",
2688
- type: "SYNCGROUPS_TYPE_SETBBOX"
2689
- },
2690
- {
2691
- id: "timeLayerGroupA",
2692
- type: "SYNCGROUPS_TYPE_SETTIME"
2693
- },
2694
- {
2695
- id: "layerGroupA",
2696
- type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
2697
- }
2698
- ],
2699
- mosaicNode: "view-1"
2700
- },
2701
- {
2702
- id: "screenConfigHarmoniePrecipMSLRefTimePresetWithMultiMapLayerManager",
2703
- title: "Precipitation, pressure and wind 1:all",
2704
- scope: "system",
2705
- abstract: "",
2706
- viewType: "tiledWindow",
2707
- views: [
2708
- {
2709
- mosaicNodeId: "view-1",
2710
- viewPresetId: "harmRefTimeAll"
2711
- }
2712
- ],
2713
- syncGroups: [
2714
- {
2715
- id: "areaLayerGroupA",
2716
- type: "SYNCGROUPS_TYPE_SETBBOX"
2717
- },
2718
- {
2719
- id: "timeLayerGroupA",
2720
- type: "SYNCGROUPS_TYPE_SETTIME"
2721
- },
2722
- {
2723
- id: "layerGroupA",
2724
- type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
2725
- }
2726
- ],
2727
- mosaicNode: "view-1"
2728
- },
2729
- {
2730
- id: "screenConfigHarmoniePresetWithoutMultiMapLayerManager",
2731
- title: "Harmonie Temperature and Precipitation 1:1",
2732
- scope: "system",
2733
- abstract: "",
2734
- viewType: "tiledWindow",
2735
- views: [
2736
- {
2737
- mosaicNodeId: "view-1",
2738
- viewPresetId: "screenHarm"
2739
- }
2740
- ],
2741
- syncGroups: [
2742
- {
2743
- id: "areaLayerGroupA",
2744
- type: "SYNCGROUPS_TYPE_SETBBOX"
2745
- },
2746
- {
2747
- id: "timeLayerGroupA",
2748
- type: "SYNCGROUPS_TYPE_SETTIME"
2749
- },
2750
- {
2751
- id: "layerGroupA",
2752
- type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
2753
- },
2754
- {
2755
- id: "layerGroupB",
2756
- type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
2757
- }
2758
- ],
2759
- mosaicNode: "view-1"
2760
- },
2761
- {
2762
- id: "screenConfigHarmoniePresetWithMultiMapLayerManager",
2763
- title: "Harmonie Temperature and Precipitation 1:all",
2764
- scope: "system",
2765
- abstract: "",
2766
- viewType: "tiledWindow",
2767
- views: [
2768
- {
2769
- mosaicNodeId: "view-1",
2770
- viewPresetId: "screenHarmAll"
2771
- }
2772
- ],
2773
- syncGroups: [
2774
- {
2775
- id: "areaLayerGroupA",
2776
- type: "SYNCGROUPS_TYPE_SETBBOX"
2777
- },
2778
- {
2779
- id: "timeLayerGroupA",
2780
- type: "SYNCGROUPS_TYPE_SETTIME"
2781
- },
2782
- {
2783
- id: "layerGroupA",
2784
- type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
2785
- },
2786
- {
2787
- id: "layerGroupB",
2788
- type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
2789
- }
2790
- ],
2791
- mosaicNode: "view-1"
2792
- },
2793
- {
2794
- id: "screenConfigD",
2795
- title: "Radar & Sat",
2796
- scope: "system",
2797
- abstract: "",
2798
- viewType: "multiWindow",
2799
- views: [
2800
- {
2801
- mosaicNodeId: "viewAsat",
2802
- viewPresetId: "sat"
2803
- },
2804
- {
2805
- mosaicNodeId: "viewBrad",
2806
- viewPresetId: "rad"
2807
- }
2808
- ],
2809
- syncGroups: [
2810
- {
2811
- id: "Area_SatRadar",
2812
- type: "SYNCGROUPS_TYPE_SETBBOX"
2813
- },
2814
- {
2815
- id: "Time_SatRadar",
2816
- type: "SYNCGROUPS_TYPE_SETTIME"
2817
- }
2818
- ],
2819
- mosaicNode: {
2820
- direction: "row",
2821
- first: "viewAsat",
2822
- second: "viewBrad",
2823
- splitPercentage: 50
2824
- }
2825
- },
2826
- {
2827
- id: "screenConfigOBS",
2828
- title: "OBS",
2829
- scope: "system",
2830
- abstract: "",
2831
- viewType: "multiWindow",
2832
- views: [
2833
- {
2834
- mosaicNodeId: "map_OBSTA",
2835
- viewPresetId: "map_OBSTA"
2836
- },
2837
- {
2838
- mosaicNodeId: "map_OBSPP",
2839
- viewPresetId: "map_OBSPP"
2840
- },
2841
- {
2842
- mosaicNodeId: "map_OBSWind",
2843
- viewPresetId: "map_OBSWind"
2844
- },
2845
- {
2846
- mosaicNodeId: "map_OBSRH",
2847
- viewPresetId: "map_OBSRH"
2848
- },
2849
- {
2850
- mosaicNodeId: "map_OBSQG",
2851
- viewPresetId: "map_OBSQG"
2852
- }
2853
- ],
2854
- syncGroups: [
2855
- {
2856
- id: "Area_A",
2857
- type: "SYNCGROUPS_TYPE_SETBBOX"
2858
- },
2859
- {
2860
- id: "Time_A",
2861
- type: "SYNCGROUPS_TYPE_SETTIME"
2862
- }
2863
- ],
2864
- mosaicNode: {
2865
- direction: "column",
2866
- first: {
2867
- direction: "row",
2868
- first: "map_OBSTA",
2869
- second: "map_OBSPP"
2870
- },
2871
- second: {
2872
- direction: "row",
2873
- first: "map_OBSWind",
2874
- second: {
2875
- direction: "row",
2876
- first: "map_OBSRH",
2877
- second: "map_OBSQG"
2878
- },
2879
- splitPercentage: 33
2880
- }
2881
- }
2882
- },
2883
- {
2884
- id: "screenConfigRadAndObs",
2885
- title: "FourMapsInOneView",
2886
- scope: "system",
2887
- abstract: "",
2888
- viewType: "tiledWindow",
2889
- views: [
2890
- {
2891
- mosaicNodeId: "view-1",
2892
- viewPresetId: "screenRadAndObs"
2893
- }
2894
- ],
2895
- syncGroups: [
2896
- {
2897
- id: "Area_screenRadAndObs",
2898
- type: "SYNCGROUPS_TYPE_SETBBOX"
2899
- },
2900
- {
2901
- id: "Time_screenRadAndObs",
2902
- type: "SYNCGROUPS_TYPE_SETTIME"
2903
- }
2904
- ],
2905
- mosaicNode: "view-1"
2906
- },
2907
- {
2908
- id: "screenConfigHarmonie",
2909
- title: "Harmonie",
2910
- scope: "system",
2911
- abstract: "",
2912
- viewType: "multiWindow",
2913
- views: [
2914
- {
2915
- mosaicNodeId: "viewAharmPrecip",
2916
- viewPresetId: "harmPrecip"
2917
- },
2918
- {
2919
- mosaicNodeId: "viewBharmTemp",
2920
- viewPresetId: "harmTemp"
2921
- },
2922
- {
2923
- mosaicNodeId: "viewCharmPressure",
2924
- viewPresetId: "harmPressure"
2925
- },
2926
- {
2927
- mosaicNodeId: "viewDslider",
2928
- viewPresetId: "slider"
2929
- }
2930
- ],
2931
- syncGroups: [
2932
- {
2933
- id: "Area_B",
2934
- type: "SYNCGROUPS_TYPE_SETBBOX"
2935
- },
2936
- {
2937
- id: "Time_B",
2938
- type: "SYNCGROUPS_TYPE_SETTIME"
2939
- }
2940
- ],
2941
- mosaicNode: {
2942
- direction: "column",
2943
- first: {
2944
- direction: "row",
2945
- first: "viewAharmPrecip",
2946
- second: {
2947
- direction: "row",
2948
- first: "viewBharmTemp",
2949
- second: "viewCharmPressure"
2950
- },
2951
- splitPercentage: 33
2952
- },
2953
- second: "viewDslider",
2954
- splitPercentage: 80
2955
- }
2956
- },
2957
- {
2958
- id: "workspaceHarmonie",
2959
- title: "Harmonie",
2960
- scope: "system",
2961
- abstract: "",
2962
- viewType: "singleWindow",
2963
- views: [
2964
- {
2965
- mosaicNodeId: "screen1",
2966
- viewPresetId: "viewHarmonie"
2967
- }
2968
- ],
2969
- syncGroups: [
2970
- ],
2971
- mosaicNode: "screen1"
2972
- },
2973
- {
2974
- id: "screenConfigOnlyBBOXGroup",
2975
- title: "SyncGroups only BBOX predefined",
2976
- scope: "system",
2977
- abstract: "",
2978
- viewType: "multiWindow",
2979
- views: [
2980
- {
2981
- mosaicNodeId: "view-1",
2982
- viewPresetId: "demosyncgroupbbox_radar"
2983
- },
2984
- {
2985
- mosaicNodeId: "view-2",
2986
- viewPresetId: "demosyncgroupbbox_temp"
2987
- }
2988
- ],
2989
- syncGroups: [
2990
- {
2991
- id: "Area_radar",
2992
- type: "SYNCGROUPS_TYPE_SETBBOX"
2993
- },
2994
- {
2995
- id: "Area_temp",
2996
- type: "SYNCGROUPS_TYPE_SETBBOX"
2997
- }
2998
- ],
2999
- mosaicNode: {
3000
- direction: "row",
3001
- first: "view-1",
3002
- second: "view-2",
3003
- splitPercentage: 50
3004
- }
3005
- },
3006
- {
3007
- id: "screenConfigOnlyTIMEGroup",
3008
- title: "SyncGroups only TIME predefined",
3009
- scope: "system",
3010
- abstract: "",
3011
- viewType: "multiWindow",
3012
- views: [
3013
- {
3014
- mosaicNodeId: "view-1",
3015
- viewPresetId: "demosyncgrouptime_radar"
3016
- },
3017
- {
3018
- mosaicNodeId: "view-2",
3019
- viewPresetId: "demosyncgrouptime_temp"
3020
- }
3021
- ],
3022
- syncGroups: [
3023
- {
3024
- id: "Time_radar",
3025
- type: "SYNCGROUPS_TYPE_SETTIME"
3026
- },
3027
- {
3028
- id: "Time_temp",
3029
- type: "SYNCGROUPS_TYPE_SETTIME"
3030
- }
3031
- ],
3032
- mosaicNode: {
3033
- direction: "row",
3034
- first: "view-1",
3035
- second: "view-2",
3036
- splitPercentage: 50
3037
- }
3038
- },
3039
- {
3040
- id: "emptyMap",
3041
- title: "Empty map",
3042
- scope: "system",
3043
- abstract: "",
3044
- viewType: "singleWindow",
3045
- views: [
3046
- {
3047
- mosaicNodeId: "emptyMapView",
3048
- viewPresetId: "emptyMap"
3049
- }
3050
- ],
3051
- mosaicNode: "emptyMapView"
3052
- },
3053
- {
3054
- id: "radarView",
3055
- title: "Radar",
3056
- scope: "user",
3057
- abstract: "",
3058
- viewType: "singleWindow",
3059
- views: [
3060
- {
3061
- mosaicNodeId: "radarView",
3062
- viewPresetId: "radar"
3063
- }
3064
- ],
3065
- mosaicNode: "radarView"
3066
- },
3067
- {
3068
- id: "workspaceHarmonie",
3069
- title: "Harmonie workspace",
3070
- scope: "system",
3071
- abstract: "",
3072
- viewType: "singleWindow",
3073
- views: [
3074
- {
3075
- mosaicNodeId: "harmView",
3076
- viewPresetId: "viewHarmonie"
3077
- }
3078
- ],
3079
- mosaicNode: "harmView"
3080
- },
3081
- {
3082
- id: "capWorkspace",
3083
- title: "Cap Warnings",
3084
- scope: "system",
3085
- abstract: "",
3086
- viewType: "multiWindow",
3087
- views: [
3088
- {
3089
- mosaicNodeId: "view-1",
3090
- viewPresetId: "capMapView"
3091
- },
3092
- {
3093
- mosaicNodeId: "view-2",
3094
- viewPresetId: "capListView"
3095
- }
3096
- ],
3097
- mosaicNode: {
3098
- direction: "row",
3099
- first: "view-1",
3100
- second: "view-2",
3101
- splitPercentage: 50
3102
- }
3103
- }
3104
- ];
3105
-
3106
- var viewPresetsListFullContent = [
3107
- {
3108
- id: "radar",
3109
- title: "Radar",
3110
- componentType: "Map",
3111
- initialProps: {
3112
- mapPreset: {
3113
- layers: [
3114
- {
3115
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3116
- name: "RAD_NL25_PCP_CM",
3117
- format: "image/png",
3118
- enabled: true,
3119
- style: "radar/nearest",
3120
- id: "layerid_8",
3121
- layerType: "mapLayer"
3122
- },
3123
- {
3124
- service: "https://openwms.fmi.fi/geoserver/wms?",
3125
- name: "Radar:suomi_dbz_eureffin",
3126
- format: "image/png",
3127
- style: "Radar dbz Summer",
3128
- enabled: true,
3129
- layerType: "mapLayer"
3130
- },
3131
- {
3132
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3133
- name: "RAD_NL25_PCP_CM",
3134
- format: "image/png",
3135
- style: "precip-blue-transparent/nearest",
3136
- enabled: true,
3137
- layerType: "mapLayer"
3138
- }
3139
- ],
3140
- proj: {
3141
- bbox: {
3142
- left: 58703.6377,
3143
- bottom: 6408480.4514,
3144
- right: 3967387.5161,
3145
- top: 11520588.9031
3146
- },
3147
- srs: "EPSG:3857"
3148
- },
3149
- activeLayerId: "radar_precipitation_intensity_nordic_id",
3150
- toggleTimestepAuto: false,
3151
- animationPayload: {
3152
- duration: 240,
3153
- interval: 5,
3154
- speed: 2,
3155
- endTime: "NOW+PT2H00M",
3156
- shouldEndtimeOverride: true
3157
- },
3158
- shouldAutoUpdate: false,
3159
- shouldAnimate: true
3160
- }
3161
- }
3162
- },
3163
- {
3164
- title: "Temperature",
3165
- id: "temp",
3166
- componentType: "Map",
3167
- initialProps: {
3168
- mapPreset: {
3169
- layers: [
3170
- {
3171
- service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3172
- name: "10M/ta",
3173
- id: "layerid_10",
3174
- layerType: "mapLayer"
3175
- }
3176
- ],
3177
- proj: {
3178
- bbox: {
3179
- left: -450651.2255879827,
3180
- bottom: 6490531.093143953,
3181
- right: 1428345.8183648037,
3182
- top: 7438773.776232235
3183
- },
3184
- srs: "EPSG:3857"
3185
- }
3186
- },
3187
- syncGroupsIds: [
3188
- "Area_RadarTemp",
3189
- "Time_RadarTemp"
3190
- ]
3191
- }
3192
- },
3193
- {
3194
- title: "TimeseriesMap",
3195
- id: "TimeseriesMap",
3196
- x: 0,
3197
- y: 0,
3198
- w: 6,
3199
- h: 18,
3200
- componentType: "Map",
3201
- initialProps: {
3202
- mapPreset: {
3203
- layers: [
3204
- ],
3205
- displayMapPin: true,
3206
- proj: {
3207
- bbox: {
3208
- left: -450651.2255879827,
3209
- bottom: 6490531.093143953,
3210
- right: 1428345.8183648037,
3211
- top: 7438773.776232235
3212
- },
3213
- srs: "EPSG:3857"
3214
- }
3215
- }
3216
- }
3217
- },
3218
- {
3219
- title: "KNMI WMS UWCW HA43 DINI forecast",
3220
- id: "view_knmi_timeseries_ha43_dini_wms",
3221
- x: 0,
3222
- y: 0,
3223
- w: 6,
3224
- h: 18,
3225
- componentType: "Map",
3226
- initialProps: {
3227
- mapPreset: {
3228
- layers: [
3229
- {
3230
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3231
- name: "air_pressure_at_mean_sea_level_hagl",
3232
- layerType: "mapLayer",
3233
- enabled: true
3234
- },
3235
- {
3236
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3237
- name: "total_precipitation_rate_hagl",
3238
- layerType: "mapLayer",
3239
- enabled: true
3240
- },
3241
- {
3242
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3243
- name: "air_temperature_hagl",
3244
- style: "temperature_wow/shaded",
3245
- layerType: "mapLayer",
3246
- enabled: true
3247
- }
3248
- ],
3249
- displayMapPin: true,
3250
- proj: {
3251
- bbox: {
3252
- left: -450651.2255879827,
3253
- bottom: 6490531.093143953,
3254
- right: 1428345.8183648037,
3255
- top: 7438773.776232235
3256
- },
3257
- srs: "EPSG:3857"
3258
- }
3259
- }
3260
- }
2500
+ title: "KNMI WMS UWCW HA43 DINI forecast",
2501
+ id: "view_knmi_timeseries_ha43_dini_wms",
2502
+ x: 0,
2503
+ y: 0,
2504
+ w: 6,
2505
+ h: 18,
2506
+ componentType: "Map",
2507
+ initialProps: {
2508
+ mapPreset: {
2509
+ layers: [
2510
+ {
2511
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
2512
+ name: "air_pressure_at_mean_sea_level_hagl",
2513
+ layerType: "mapLayer",
2514
+ enabled: true
2515
+ },
2516
+ {
2517
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
2518
+ name: "total_precipitation_rate_hagl",
2519
+ layerType: "mapLayer",
2520
+ enabled: true
2521
+ },
2522
+ {
2523
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
2524
+ name: "air_temperature_hagl",
2525
+ style: "temperature_wow/shaded",
2526
+ layerType: "mapLayer",
2527
+ enabled: true
2528
+ }
2529
+ ],
2530
+ displayMapPin: true,
2531
+ proj: {
2532
+ bbox: {
2533
+ left: -450651.2255879827,
2534
+ bottom: 6490531.093143953,
2535
+ right: 1428345.8183648037,
2536
+ top: 7438773.776232235
2537
+ },
2538
+ srs: "EPSG:3857"
2539
+ }
2540
+ }
2541
+ }
3261
2542
  },
3262
2543
  {
3263
2544
  title: "KNMI EDR UWCW HA43 DINI forecast",
@@ -3532,19 +2813,196 @@ var viewPresetsListFullContent = [
3532
2813
  },
3533
2814
  {
3534
2815
  componentType: "Map",
3535
- title: "Radar",
3536
- id: "screenRadar",
3537
- scope: "user",
2816
+ title: "Radar",
2817
+ id: "screenRadar",
2818
+ scope: "user",
2819
+ initialProps: {
2820
+ mapPreset: {
2821
+ layers: [
2822
+ {
2823
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
2824
+ name: "RAD_NL25_PCP_CM",
2825
+ format: "image/png",
2826
+ enabled: true,
2827
+ style: "radar/nearest",
2828
+ id: "layerid_8",
2829
+ layerType: "mapLayer"
2830
+ }
2831
+ ],
2832
+ proj: {
2833
+ bbox: {
2834
+ left: -450651.2255879827,
2835
+ bottom: 6490531.093143953,
2836
+ right: 1428345.8183648037,
2837
+ top: 7438773.776232235
2838
+ },
2839
+ srs: "EPSG:3857"
2840
+ }
2841
+ }
2842
+ }
2843
+ },
2844
+ {
2845
+ componentType: "Map",
2846
+ id: "screenConfigC",
2847
+ title: "Satellite",
2848
+ initialProps: {
2849
+ mapPreset: {
2850
+ layers: [
2851
+ {
2852
+ service: "https://eumetview.eumetsat.int/geoserv/wms?",
2853
+ name: "meteosat:msg_naturalenhncd",
2854
+ enabled: true,
2855
+ id: "layerid_36",
2856
+ layerType: "mapLayer"
2857
+ }
2858
+ ],
2859
+ proj: {
2860
+ bbox: {
2861
+ left: -7529663.50832266,
2862
+ bottom: 308359.5390525013,
2863
+ right: 7493930.85787452,
2864
+ top: 11742807.68245839
2865
+ },
2866
+ srs: "EPSG:3857"
2867
+ }
2868
+ }
2869
+ }
2870
+ },
2871
+ {
2872
+ componentType: "Map",
2873
+ title: "Satellite",
2874
+ id: "sat",
2875
+ initialProps: {
2876
+ mapPreset: {
2877
+ layers: [
2878
+ {
2879
+ service: "https://eumetview.eumetsat.int/geoserv/wms?",
2880
+ name: "meteosat:msg_naturalenhncd",
2881
+ enabled: true,
2882
+ id: "layerid_36",
2883
+ layerType: "mapLayer"
2884
+ }
2885
+ ],
2886
+ proj: {
2887
+ bbox: {
2888
+ left: -7529663.50832266,
2889
+ bottom: 308359.5390525013,
2890
+ right: 7493930.85787452,
2891
+ top: 11742807.68245839
2892
+ },
2893
+ srs: "EPSG:3857"
2894
+ },
2895
+ shouldAnimate: true,
2896
+ animationPayload: {
2897
+ duration: 180,
2898
+ interval: 15
2899
+ }
2900
+ }
2901
+ }
2902
+ },
2903
+ {
2904
+ componentType: "Map",
2905
+ title: "Radar",
2906
+ id: "rad",
2907
+ initialProps: {
2908
+ mapPreset: {
2909
+ layers: [
2910
+ {
2911
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
2912
+ name: "RAD_NL25_PCP_CM",
2913
+ format: "image/png",
2914
+ enabled: true,
2915
+ style: "radar/nearest",
2916
+ id: "layerid_8",
2917
+ layerType: "mapLayer"
2918
+ }
2919
+ ],
2920
+ proj: {
2921
+ bbox: {
2922
+ left: -450651.2255879827,
2923
+ bottom: 6490531.093143953,
2924
+ right: 1428345.8183648037,
2925
+ top: 7438773.776232235
2926
+ },
2927
+ srs: "EPSG:3857"
2928
+ },
2929
+ shouldAnimate: true,
2930
+ animationPayload: {
2931
+ duration: 120,
2932
+ interval: 5,
2933
+ speed: 8
2934
+ }
2935
+ }
2936
+ }
2937
+ },
2938
+ {
2939
+ componentType: "Map",
2940
+ id: "map_OBSTA",
2941
+ initialProps: {
2942
+ mapPreset: {
2943
+ layers: [
2944
+ {
2945
+ service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
2946
+ name: "10M/ta",
2947
+ id: "layerid_10",
2948
+ layerType: "mapLayer"
2949
+ }
2950
+ ],
2951
+ proj: {
2952
+ bbox: {
2953
+ left: -450651.2255879827,
2954
+ bottom: 6490531.093143953,
2955
+ right: 1428345.8183648037,
2956
+ top: 7438773.776232235
2957
+ },
2958
+ srs: "EPSG:3857"
2959
+ }
2960
+ },
2961
+ syncGroupsIds: [
2962
+ "Area_A",
2963
+ "Time_A"
2964
+ ]
2965
+ }
2966
+ },
2967
+ {
2968
+ componentType: "Map",
2969
+ id: "map_OBSPP",
2970
+ initialProps: {
2971
+ mapPreset: {
2972
+ layers: [
2973
+ {
2974
+ service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
2975
+ name: "10M/pp",
2976
+ id: "layerid_12",
2977
+ layerType: "mapLayer"
2978
+ }
2979
+ ],
2980
+ proj: {
2981
+ bbox: {
2982
+ left: -450651.2255879827,
2983
+ bottom: 6490531.093143953,
2984
+ right: 1428345.8183648037,
2985
+ top: 7438773.776232235
2986
+ },
2987
+ srs: "EPSG:3857"
2988
+ }
2989
+ },
2990
+ syncGroupsIds: [
2991
+ "Area_A",
2992
+ "Time_A"
2993
+ ]
2994
+ }
2995
+ },
2996
+ {
2997
+ componentType: "Map",
2998
+ id: "map_OBSWind",
3538
2999
  initialProps: {
3539
3000
  mapPreset: {
3540
3001
  layers: [
3541
3002
  {
3542
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3543
- name: "RAD_NL25_PCP_CM",
3544
- format: "image/png",
3545
- enabled: true,
3546
- style: "radar/nearest",
3547
- id: "layerid_8",
3003
+ service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3004
+ name: "10M/wind",
3005
+ id: "layerid_11",
3548
3006
  layerType: "mapLayer"
3549
3007
  }
3550
3008
  ],
@@ -3557,83 +3015,175 @@ var viewPresetsListFullContent = [
3557
3015
  },
3558
3016
  srs: "EPSG:3857"
3559
3017
  }
3560
- }
3018
+ },
3019
+ syncGroupsIds: [
3020
+ "Area_A",
3021
+ "Time_A"
3022
+ ]
3561
3023
  }
3562
3024
  },
3563
3025
  {
3564
3026
  componentType: "Map",
3565
- id: "screenConfigC",
3566
- title: "Satellite",
3027
+ id: "map_OBSRH",
3567
3028
  initialProps: {
3568
3029
  mapPreset: {
3569
3030
  layers: [
3570
3031
  {
3571
- service: "https://eumetview.eumetsat.int/geoserv/wms?",
3572
- name: "meteosat:msg_naturalenhncd",
3573
- enabled: true,
3574
- id: "layerid_36",
3032
+ service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3033
+ name: "10M/rh",
3034
+ id: "layerid_13",
3575
3035
  layerType: "mapLayer"
3576
3036
  }
3577
3037
  ],
3578
3038
  proj: {
3579
3039
  bbox: {
3580
- left: -7529663.50832266,
3581
- bottom: 308359.5390525013,
3582
- right: 7493930.85787452,
3583
- top: 11742807.68245839
3040
+ left: -450651.2255879827,
3041
+ bottom: 6490531.093143953,
3042
+ right: 1428345.8183648037,
3043
+ top: 7438773.776232235
3584
3044
  },
3585
3045
  srs: "EPSG:3857"
3586
3046
  }
3587
- }
3047
+ },
3048
+ syncGroupsIds: [
3049
+ "Area_A",
3050
+ "Time_A"
3051
+ ]
3588
3052
  }
3589
3053
  },
3590
3054
  {
3591
3055
  componentType: "Map",
3592
- title: "Satellite",
3593
- id: "sat",
3056
+ id: "map_OBSQG",
3594
3057
  initialProps: {
3595
3058
  mapPreset: {
3596
3059
  layers: [
3597
3060
  {
3598
- service: "https://eumetview.eumetsat.int/geoserv/wms?",
3599
- name: "meteosat:msg_naturalenhncd",
3600
- enabled: true,
3601
- id: "layerid_36",
3061
+ service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3062
+ name: "10M/qg",
3063
+ id: "layerid_14",
3602
3064
  layerType: "mapLayer"
3603
3065
  }
3604
3066
  ],
3605
3067
  proj: {
3606
3068
  bbox: {
3607
- left: -7529663.50832266,
3608
- bottom: 308359.5390525013,
3609
- right: 7493930.85787452,
3610
- top: 11742807.68245839
3069
+ left: -450651.2255879827,
3070
+ bottom: 6490531.093143953,
3071
+ right: 1428345.8183648037,
3072
+ top: 7438773.776232235
3611
3073
  },
3612
3074
  srs: "EPSG:3857"
3075
+ }
3076
+ },
3077
+ syncGroupsIds: [
3078
+ "Area_A",
3079
+ "Time_A"
3080
+ ]
3081
+ }
3082
+ },
3083
+ {
3084
+ componentType: "MultiMap",
3085
+ id: "screenRadAndObs",
3086
+ initialProps: {
3087
+ shouldShowZoomControls: false,
3088
+ mapPreset: [
3089
+ {
3090
+ layers: [
3091
+ {
3092
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3093
+ name: "RAD_NL25_PCP_CM",
3094
+ format: "image/png",
3095
+ enabled: true,
3096
+ style: "radar/nearest",
3097
+ id: "layerid_8",
3098
+ layerType: "mapLayer"
3099
+ },
3100
+ {
3101
+ id: "base-layer-2",
3102
+ name: "OpenStreetMap_NL",
3103
+ type: "twms",
3104
+ layerType: "baseLayer",
3105
+ enabled: true
3106
+ }
3107
+ ],
3108
+ proj: {
3109
+ bbox: {
3110
+ left: -450651.2255879827,
3111
+ bottom: 6490531.093143953,
3112
+ right: 1428345.8183648037,
3113
+ top: 7438773.776232235
3114
+ },
3115
+ srs: "EPSG:3857"
3116
+ }
3613
3117
  },
3614
- shouldAnimate: true,
3615
- animationPayload: {
3616
- duration: 180,
3617
- interval: 15
3118
+ {
3119
+ layers: [
3120
+ {
3121
+ service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3122
+ name: "10M/ta",
3123
+ id: "layerid_10",
3124
+ layerType: "mapLayer"
3125
+ }
3126
+ ]
3127
+ },
3128
+ {
3129
+ layers: [
3130
+ {
3131
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3132
+ name: "total_precipitation_rate_hagl",
3133
+ id: "layerid_19",
3134
+ layerType: "mapLayer",
3135
+ enabled: true
3136
+ }
3137
+ ],
3138
+ proj: {
3139
+ bbox: {
3140
+ left: -450651.2255879827,
3141
+ bottom: 6490531.093143953,
3142
+ right: 1428345.8183648037,
3143
+ top: 7438773.776232235
3144
+ },
3145
+ srs: "EPSG:3857"
3146
+ }
3147
+ },
3148
+ {
3149
+ layers: [
3150
+ {
3151
+ service: "https://eumetview.eumetsat.int/geoserv/wms?",
3152
+ name: "meteosat:msg_naturalenhncd",
3153
+ enabled: true,
3154
+ id: "layerid_36",
3155
+ layerType: "mapLayer"
3156
+ }
3157
+ ],
3158
+ proj: {
3159
+ bbox: {
3160
+ left: -7529663.50832266,
3161
+ bottom: 308359.5390525013,
3162
+ right: 7493930.85787452,
3163
+ top: 11742807.68245839
3164
+ },
3165
+ srs: "EPSG:3857"
3166
+ }
3618
3167
  }
3619
- }
3168
+ ],
3169
+ syncGroupsIds: [
3170
+ "Area_screenRadAndObs",
3171
+ "Time_screenRadAndObs"
3172
+ ]
3620
3173
  }
3621
3174
  },
3622
3175
  {
3623
3176
  componentType: "Map",
3624
- title: "Radar",
3625
- id: "rad",
3177
+ id: "harmPrecip",
3626
3178
  initialProps: {
3627
3179
  mapPreset: {
3628
3180
  layers: [
3629
3181
  {
3630
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3631
- name: "RAD_NL25_PCP_CM",
3632
- format: "image/png",
3633
- enabled: true,
3634
- style: "radar/nearest",
3635
- id: "layerid_8",
3636
- layerType: "mapLayer"
3182
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3183
+ name: "total_precipitation_rate_hagl",
3184
+ id: "layerid_19",
3185
+ layerType: "mapLayer",
3186
+ enabled: true
3637
3187
  }
3638
3188
  ],
3639
3189
  proj: {
@@ -3645,26 +3195,27 @@ var viewPresetsListFullContent = [
3645
3195
  },
3646
3196
  srs: "EPSG:3857"
3647
3197
  },
3648
- shouldAnimate: true,
3649
- animationPayload: {
3650
- duration: 120,
3651
- interval: 5,
3652
- speed: 8
3653
- }
3654
- }
3198
+ showTimeSlider: false
3199
+ },
3200
+ syncGroupsIds: [
3201
+ "Area_B",
3202
+ "Time_B"
3203
+ ]
3655
3204
  }
3656
3205
  },
3657
3206
  {
3658
3207
  componentType: "Map",
3659
- id: "map_OBSTA",
3208
+ id: "harmTemp",
3660
3209
  initialProps: {
3661
3210
  mapPreset: {
3662
3211
  layers: [
3663
3212
  {
3664
- service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3665
- name: "10M/ta",
3666
- id: "layerid_10",
3667
- layerType: "mapLayer"
3213
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3214
+ name: "air_temperature_hagl",
3215
+ style: "temperature_wow/shaded",
3216
+ id: "layerid_18",
3217
+ layerType: "mapLayer",
3218
+ enabled: true
3668
3219
  }
3669
3220
  ],
3670
3221
  proj: {
@@ -3675,25 +3226,80 @@ var viewPresetsListFullContent = [
3675
3226
  top: 7438773.776232235
3676
3227
  },
3677
3228
  srs: "EPSG:3857"
3678
- }
3229
+ },
3230
+ showTimeSlider: false
3231
+ },
3232
+ syncGroupsIds: [
3233
+ "Area_B",
3234
+ "Time_B"
3235
+ ]
3236
+ }
3237
+ },
3238
+ {
3239
+ componentType: "Map",
3240
+ id: "harmPressure",
3241
+ initialProps: {
3242
+ mapPreset: {
3243
+ layers: [
3244
+ {
3245
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3246
+ name: "air_pressure_at_mean_sea_level_hagl",
3247
+ id: "layerid_20",
3248
+ layerType: "mapLayer",
3249
+ enabled: true
3250
+ }
3251
+ ],
3252
+ proj: {
3253
+ bbox: {
3254
+ left: -450651.2255879827,
3255
+ bottom: 6490531.093143953,
3256
+ right: 1428345.8183648037,
3257
+ top: 7438773.776232235
3258
+ },
3259
+ srs: "EPSG:3857"
3260
+ },
3261
+ showTimeSlider: false
3262
+ },
3263
+ syncGroupsIds: [
3264
+ "Area_B",
3265
+ "Time_B"
3266
+ ]
3267
+ }
3268
+ },
3269
+ {
3270
+ componentType: "TimeSlider",
3271
+ id: "slider",
3272
+ initialProps: {
3273
+ sliderPreset: {
3274
+ mapId: "harmPrecip"
3679
3275
  },
3680
3276
  syncGroupsIds: [
3681
- "Area_A",
3682
- "Time_A"
3277
+ "Area_B",
3278
+ "Time_B"
3683
3279
  ]
3684
3280
  }
3685
3281
  },
3686
3282
  {
3283
+ title: "Radar",
3284
+ id: "demosyncgroupbbox_radar",
3687
3285
  componentType: "Map",
3688
- id: "map_OBSPP",
3689
3286
  initialProps: {
3690
3287
  mapPreset: {
3691
3288
  layers: [
3692
3289
  {
3693
- service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3694
- name: "10M/pp",
3695
- id: "layerid_12",
3290
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3291
+ name: "RAD_NL25_PCP_CM",
3292
+ format: "image/png",
3293
+ enabled: true,
3294
+ style: "radar/nearest",
3295
+ id: "layerid_8",
3696
3296
  layerType: "mapLayer"
3297
+ },
3298
+ {
3299
+ service: "https://maps.heigit.org/osm-wms/service",
3300
+ id: "layerid_5",
3301
+ name: "osm_auto:all",
3302
+ layerType: "baseLayer"
3697
3303
  }
3698
3304
  ],
3699
3305
  proj: {
@@ -3707,21 +3313,21 @@ var viewPresetsListFullContent = [
3707
3313
  }
3708
3314
  },
3709
3315
  syncGroupsIds: [
3710
- "Area_A",
3711
- "Time_A"
3316
+ "Area_radar"
3712
3317
  ]
3713
3318
  }
3714
3319
  },
3715
3320
  {
3321
+ title: "Temperature",
3322
+ id: "demosyncgroupbbox_temp",
3716
3323
  componentType: "Map",
3717
- id: "map_OBSWind",
3718
3324
  initialProps: {
3719
3325
  mapPreset: {
3720
3326
  layers: [
3721
3327
  {
3722
3328
  service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3723
- name: "10M/wind",
3724
- id: "layerid_11",
3329
+ name: "10M/ta",
3330
+ id: "layerid_10",
3725
3331
  layerType: "mapLayer"
3726
3332
  }
3727
3333
  ],
@@ -3736,22 +3342,31 @@ var viewPresetsListFullContent = [
3736
3342
  }
3737
3343
  },
3738
3344
  syncGroupsIds: [
3739
- "Area_A",
3740
- "Time_A"
3345
+ "Area_radar"
3741
3346
  ]
3742
3347
  }
3743
3348
  },
3744
3349
  {
3350
+ title: "Radar",
3351
+ id: "demosyncgrouptime_radar",
3745
3352
  componentType: "Map",
3746
- id: "map_OBSRH",
3747
3353
  initialProps: {
3748
3354
  mapPreset: {
3749
3355
  layers: [
3750
3356
  {
3751
- service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3752
- name: "10M/rh",
3753
- id: "layerid_13",
3357
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3358
+ name: "RAD_NL25_PCP_CM",
3359
+ format: "image/png",
3360
+ enabled: true,
3361
+ style: "radar/nearest",
3362
+ id: "layerid_8",
3754
3363
  layerType: "mapLayer"
3364
+ },
3365
+ {
3366
+ service: "https://maps.heigit.org/osm-wms/service",
3367
+ id: "layerid_5",
3368
+ name: "osm_auto:all",
3369
+ layerType: "baseLayer"
3755
3370
  }
3756
3371
  ],
3757
3372
  proj: {
@@ -3765,21 +3380,21 @@ var viewPresetsListFullContent = [
3765
3380
  }
3766
3381
  },
3767
3382
  syncGroupsIds: [
3768
- "Area_A",
3769
- "Time_A"
3383
+ "Time_radar"
3770
3384
  ]
3771
3385
  }
3772
3386
  },
3773
3387
  {
3388
+ title: "Temperature",
3389
+ id: "demosyncgrouptime_temp",
3774
3390
  componentType: "Map",
3775
- id: "map_OBSQG",
3776
3391
  initialProps: {
3777
3392
  mapPreset: {
3778
3393
  layers: [
3779
3394
  {
3780
3395
  service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3781
- name: "10M/qg",
3782
- id: "layerid_14",
3396
+ name: "10M/ta",
3397
+ id: "layerid_10",
3783
3398
  layerType: "mapLayer"
3784
3399
  }
3785
3400
  ],
@@ -3794,115 +3409,135 @@ var viewPresetsListFullContent = [
3794
3409
  }
3795
3410
  },
3796
3411
  syncGroupsIds: [
3797
- "Area_A",
3798
- "Time_A"
3412
+ "Time_radar"
3799
3413
  ]
3800
3414
  }
3801
3415
  },
3802
3416
  {
3803
- componentType: "MultiMap",
3804
- id: "screenRadAndObs",
3417
+ title: "Empty map",
3418
+ id: "emptyMap",
3419
+ componentType: "Map",
3805
3420
  initialProps: {
3806
- shouldShowZoomControls: false,
3807
- mapPreset: [
3808
- {
3809
- layers: [
3810
- {
3811
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3812
- name: "RAD_NL25_PCP_CM",
3813
- format: "image/png",
3814
- enabled: true,
3815
- style: "radar/nearest",
3816
- id: "layerid_8",
3817
- layerType: "mapLayer"
3818
- },
3819
- {
3820
- id: "base-layer-2",
3821
- name: "OpenStreetMap_NL",
3822
- type: "twms",
3823
- layerType: "baseLayer",
3824
- enabled: true
3825
- }
3826
- ],
3827
- proj: {
3828
- bbox: {
3829
- left: -450651.2255879827,
3830
- bottom: 6490531.093143953,
3831
- right: 1428345.8183648037,
3832
- top: 7438773.776232235
3833
- },
3834
- srs: "EPSG:3857"
3835
- }
3836
- },
3837
- {
3838
- layers: [
3839
- {
3840
- service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
3841
- name: "10M/ta",
3842
- id: "layerid_10",
3843
- layerType: "mapLayer"
3844
- }
3845
- ]
3846
- },
3847
- {
3848
- layers: [
3849
- {
3850
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3851
- name: "total_precipitation_rate_hagl",
3852
- id: "layerid_19",
3853
- layerType: "mapLayer",
3854
- enabled: true
3855
- }
3856
- ],
3857
- proj: {
3858
- bbox: {
3859
- left: -450651.2255879827,
3860
- bottom: 6490531.093143953,
3861
- right: 1428345.8183648037,
3862
- top: 7438773.776232235
3863
- },
3864
- srs: "EPSG:3857"
3865
- }
3866
- },
3867
- {
3868
- layers: [
3869
- {
3870
- service: "https://eumetview.eumetsat.int/geoserv/wms?",
3871
- name: "meteosat:msg_naturalenhncd",
3872
- enabled: true,
3873
- id: "layerid_36",
3874
- layerType: "mapLayer"
3875
- }
3876
- ],
3877
- proj: {
3878
- bbox: {
3879
- left: -7529663.50832266,
3880
- bottom: 308359.5390525013,
3881
- right: 7493930.85787452,
3882
- top: 11742807.68245839
3883
- },
3884
- srs: "EPSG:3857"
3885
- }
3886
- }
3887
- ],
3421
+ mapPreset: {
3422
+ layers: [
3423
+ ]
3424
+ },
3888
3425
  syncGroupsIds: [
3889
- "Area_screenRadAndObs",
3890
- "Time_screenRadAndObs"
3891
3426
  ]
3892
3427
  }
3893
3428
  },
3894
3429
  {
3430
+ title: "TAF",
3431
+ id: "taf",
3432
+ componentType: "TafModule",
3433
+ initialProps: {
3434
+ }
3435
+ },
3436
+ {
3437
+ title: "Actions example",
3438
+ id: "actionsExample",
3439
+ componentType: "ActionsExample",
3440
+ initialProps: {
3441
+ }
3442
+ },
3443
+ {
3444
+ title: "HARM",
3445
+ id: "viewHarmonie",
3895
3446
  componentType: "Map",
3896
- id: "harmPrecip",
3897
3447
  initialProps: {
3898
3448
  mapPreset: {
3899
3449
  layers: [
3900
3450
  {
3901
3451
  service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3902
- name: "total_precipitation_rate_hagl",
3903
- id: "layerid_19",
3904
- layerType: "mapLayer",
3905
- enabled: true
3452
+ name: "wind_speed_components_hagl",
3453
+ id: "wind_speed_components_hagl",
3454
+ format: "image/png",
3455
+ enabled: true,
3456
+ style: "windbarbs_kts/barb",
3457
+ layerType: "mapLayer"
3458
+ },
3459
+ {
3460
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3461
+ name: "total_precipitation_rate_hagl",
3462
+ id: "total_precipitation_rate_hagl",
3463
+ format: "image/png",
3464
+ enabled: true,
3465
+ style: "",
3466
+ layerType: "mapLayer"
3467
+ },
3468
+ {
3469
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3470
+ name: "air_temperature_hagl",
3471
+ id: "air_temperature_hagl",
3472
+ format: "image/png",
3473
+ enabled: true,
3474
+ style: "temperature_wow/shaded",
3475
+ layerType: "mapLayer"
3476
+ },
3477
+ {
3478
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3479
+ name: "wind_speed_components_pl",
3480
+ id: "wind_speed_components_pl",
3481
+ format: "image/png",
3482
+ enabled: false,
3483
+ style: "windbarbs_kts/barb",
3484
+ layerType: "mapLayer",
3485
+ dimensions: [
3486
+ {
3487
+ name: "pressure_level_in_hpa",
3488
+ currentValue: "700"
3489
+ }
3490
+ ]
3491
+ },
3492
+ {
3493
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3494
+ name: "air_temperature_hagl",
3495
+ id: "air_temperature_hagl",
3496
+ format: "image/png",
3497
+ enabled: false,
3498
+ style: "temperature_wow/shaded",
3499
+ layerType: "mapLayer",
3500
+ dimensions: [
3501
+ ]
3502
+ },
3503
+ {
3504
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3505
+ name: "geopotential_height_pl",
3506
+ id: "geopotential_height_pl",
3507
+ format: "image/png",
3508
+ enabled: false,
3509
+ style: "",
3510
+ layerType: "mapLayer",
3511
+ dimensions: [
3512
+ {
3513
+ name: "pressure_level_in_hpa",
3514
+ currentValue: "850"
3515
+ }
3516
+ ]
3517
+ },
3518
+ {
3519
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3520
+ name: "relative_humidity_pl",
3521
+ id: "relative_humidity_pl",
3522
+ format: "image/png",
3523
+ enabled: false,
3524
+ style: "",
3525
+ layerType: "mapLayer",
3526
+ dimensions: [
3527
+ {
3528
+ name: "pressure_level_in_hpa",
3529
+ currentValue: "850"
3530
+ }
3531
+ ]
3532
+ },
3533
+ {
3534
+ service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3535
+ name: "wind_speed_of_gust_01h_hagl",
3536
+ id: "wind_speed_of_gust_01h_hagl",
3537
+ format: "image/png",
3538
+ enabled: false,
3539
+ style: "",
3540
+ layerType: "mapLayer"
3906
3541
  }
3907
3542
  ],
3908
3543
  proj: {
@@ -3913,598 +3548,941 @@ var viewPresetsListFullContent = [
3913
3548
  top: 7438773.776232235
3914
3549
  },
3915
3550
  srs: "EPSG:3857"
3916
- },
3917
- showTimeSlider: false
3918
- },
3919
- syncGroupsIds: [
3920
- "Area_B",
3921
- "Time_B"
3922
- ]
3551
+ }
3552
+ }
3923
3553
  }
3924
3554
  },
3925
3555
  {
3926
- componentType: "Map",
3927
- id: "harmTemp",
3556
+ id: "capMapView",
3557
+ title: "Cap Warning Map",
3558
+ componentType: "CapWarningMap",
3928
3559
  initialProps: {
3929
3560
  mapPreset: {
3930
3561
  layers: [
3931
3562
  {
3932
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3933
- name: "air_temperature_hagl",
3934
- style: "temperature_wow/shaded",
3935
- id: "layerid_18",
3936
- layerType: "mapLayer",
3937
- enabled: true
3563
+ service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
3564
+ name: "RAD_NL25_PCP_CM",
3565
+ format: "image/png",
3566
+ style: "radar/nearest",
3567
+ enabled: true,
3568
+ layerType: "mapLayer"
3938
3569
  }
3939
3570
  ],
3940
3571
  proj: {
3941
3572
  bbox: {
3942
- left: -450651.2255879827,
3943
- bottom: 6490531.093143953,
3944
- right: 1428345.8183648037,
3945
- top: 7438773.776232235
3573
+ left: 58703.6377,
3574
+ bottom: 6408480.4514,
3575
+ right: 3967387.5161,
3576
+ top: 11520588.9031
3946
3577
  },
3947
3578
  srs: "EPSG:3857"
3948
3579
  },
3949
- showTimeSlider: false
3950
- },
3951
- syncGroupsIds: [
3952
- "Area_B",
3953
- "Time_B"
3954
- ]
3580
+ activeLayerId: "radar_precipitation_intensity_nordic_id",
3581
+ toggleTimestepAuto: false,
3582
+ animationPayload: {
3583
+ duration: 240,
3584
+ interval: 5,
3585
+ speed: 2,
3586
+ endTime: "NOW+PT2H00M"
3587
+ },
3588
+ dockedLayerManagerSize: "sizeMedium",
3589
+ shouldAutoUpdate: true
3590
+ }
3955
3591
  }
3956
3592
  },
3957
3593
  {
3958
- componentType: "Map",
3959
- id: "harmPressure",
3594
+ id: "capListView",
3595
+ title: "Cap Warning List",
3596
+ componentType: "CapWarningList",
3960
3597
  initialProps: {
3961
- mapPreset: {
3962
- layers: [
3963
- {
3964
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
3965
- name: "air_pressure_at_mean_sea_level_hagl",
3966
- id: "layerid_20",
3967
- layerType: "mapLayer",
3968
- enabled: true
3969
- }
3970
- ],
3971
- proj: {
3972
- bbox: {
3973
- left: -450651.2255879827,
3974
- bottom: 6490531.093143953,
3975
- right: 1428345.8183648037,
3976
- top: 7438773.776232235
3977
- },
3978
- srs: "EPSG:3857"
3979
- },
3980
- showTimeSlider: false
3981
- },
3982
- syncGroupsIds: [
3983
- "Area_B",
3984
- "Time_B"
3985
- ]
3986
3598
  }
3987
3599
  },
3988
3600
  {
3989
- componentType: "TimeSlider",
3990
- id: "slider",
3991
- initialProps: {
3992
- sliderPreset: {
3993
- mapId: "harmPrecip"
3994
- },
3995
- syncGroupsIds: [
3996
- "Area_B",
3997
- "Time_B"
3998
- ]
3999
- }
3601
+ id: "warningList",
3602
+ title: "Warning List",
3603
+ componentType: "WarningList",
3604
+ initialProps: {
3605
+ }
3606
+ }
3607
+ ];
3608
+
3609
+ var viewPresetsList = [
3610
+ {
3611
+ title: "Radar",
3612
+ abstract: "abstract radar",
3613
+ id: "radar",
3614
+ date: "2022-06-01T12:34:27.787184",
3615
+ scope: "system"
3616
+ },
3617
+ {
3618
+ title: "Temperature",
3619
+ id: "temp",
3620
+ date: "2022-06-01T12:34:27.787184",
3621
+ scope: "system"
3622
+ },
3623
+ {
3624
+ title: "Radar",
3625
+ id: "screenRadar",
3626
+ date: "2022-06-01T12:34:27.787184",
3627
+ scope: "user"
3628
+ },
3629
+ {
3630
+ id: "screenConfigC",
3631
+ title: "Satellite",
3632
+ date: "2022-06-01T12:34:27.787184",
3633
+ scope: "system"
3634
+ },
3635
+ {
3636
+ title: "map_OBSTA",
3637
+ id: "map_OBSTA",
3638
+ date: "2022-06-01T12:34:27.787184",
3639
+ scope: "system"
3640
+ },
3641
+ {
3642
+ title: "map_OBSPP",
3643
+ id: "map_OBSPP",
3644
+ date: "2022-06-01T12:34:27.787184",
3645
+ scope: "system"
3646
+ },
3647
+ {
3648
+ title: "map_OBSWind",
3649
+ id: "map_OBSWind",
3650
+ date: "2022-06-01T12:34:27.787184",
3651
+ scope: "system"
3652
+ },
3653
+ {
3654
+ title: "map_OBSRH",
3655
+ id: "map_OBSRH",
3656
+ date: "2022-06-01T12:34:27.787184",
3657
+ scope: "system"
3658
+ },
3659
+ {
3660
+ title: "map_OBSQG",
3661
+ id: "map_OBSQG",
3662
+ date: "2022-06-01T12:34:27.787184",
3663
+ scope: "system"
3664
+ },
3665
+ {
3666
+ title: "harmPrecip",
3667
+ id: "harmPrecip",
3668
+ date: "2022-06-01T12:34:27.787184",
3669
+ scope: "system"
3670
+ },
3671
+ {
3672
+ title: "harmTemp",
3673
+ id: "harmTemp",
3674
+ date: "2022-06-01T12:34:27.787184",
3675
+ scope: "system"
3676
+ },
3677
+ {
3678
+ title: "screenHarm",
3679
+ id: "screenHarm",
3680
+ date: "2022-06-01T12:34:27.787184",
3681
+ scope: "system"
3682
+ },
3683
+ {
3684
+ title: "Harmonie",
3685
+ id: "viewHarmonie",
3686
+ date: "2022-06-01T12:34:27.787184",
3687
+ scope: "system"
3688
+ },
3689
+ {
3690
+ title: "harmRefTime",
3691
+ id: "harmRefTime",
3692
+ date: "2022-06-01T12:34:27.787184",
3693
+ scope: "system"
3694
+ },
3695
+ {
3696
+ title: "harmRefTimeAll",
3697
+ id: "harmRefTimeAll",
3698
+ date: "2022-06-01T12:34:27.787184",
3699
+ scope: "system"
3700
+ },
3701
+ {
3702
+ title: "screenHarmAll",
3703
+ id: "screenHarmAll",
3704
+ date: "2022-06-01T12:34:27.787184",
3705
+ scope: "system"
3706
+ },
3707
+ {
3708
+ title: "harmPressure",
3709
+ id: "harmPressure",
3710
+ date: "2022-06-01T12:34:27.787184",
3711
+ scope: "system"
3712
+ },
3713
+ {
3714
+ title: "Empty map",
3715
+ id: "emptyMap",
3716
+ date: "2022-06-01T12:34:27.787184",
3717
+ scope: "system"
3718
+ },
3719
+ {
3720
+ title: "Timeseries map",
3721
+ id: "TimeseriesMap",
3722
+ date: "2022-06-01T12:34:27.787184",
3723
+ scope: "system"
3724
+ },
3725
+ {
3726
+ title: "KNMI WMS UWCW HA43 DINI forecast",
3727
+ id: "view_knmi_timeseries_ha43_dini_wms",
3728
+ date: "2022-06-01T12:34:27.787184",
3729
+ scope: "system"
3730
+ },
3731
+ {
3732
+ title: "KNMI EDR UWCW HA43 DINI forecast",
3733
+ id: "view_knmi_timeseries_ha43_dini_edr",
3734
+ date: "2022-06-01T12:34:27.787184",
3735
+ scope: "system"
3736
+ },
3737
+ {
3738
+ title: "sat",
3739
+ id: "sat",
3740
+ date: "2022-06-01T12:34:27.787184",
3741
+ scope: "system"
3742
+ },
3743
+ {
3744
+ title: "rad",
3745
+ id: "rad",
3746
+ date: "2022-06-01T12:34:27.787184",
3747
+ scope: "system"
3748
+ },
3749
+ {
3750
+ title: "screenRadAndObs",
3751
+ id: "screenRadAndObs",
3752
+ date: "2022-06-01T12:34:27.787184",
3753
+ scope: "system"
3754
+ },
3755
+ {
3756
+ title: "demosyncgroupbbox_radar",
3757
+ id: "demosyncgroupbbox_radar",
3758
+ date: "2022-06-01T12:34:27.787184",
3759
+ scope: "system"
3760
+ },
3761
+ {
3762
+ title: "demosyncgroupbbox_temp",
3763
+ id: "demosyncgroupbbox_temp",
3764
+ date: "2022-06-01T12:34:27.787184",
3765
+ scope: "system"
4000
3766
  },
4001
3767
  {
4002
- title: "Radar",
4003
- id: "demosyncgroupbbox_radar",
4004
- componentType: "Map",
4005
- initialProps: {
4006
- mapPreset: {
4007
- layers: [
4008
- {
4009
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
4010
- name: "RAD_NL25_PCP_CM",
4011
- format: "image/png",
4012
- enabled: true,
4013
- style: "radar/nearest",
4014
- id: "layerid_8",
4015
- layerType: "mapLayer"
4016
- },
4017
- {
4018
- service: "https://maps.heigit.org/osm-wms/service",
4019
- id: "layerid_5",
4020
- name: "osm_auto:all",
4021
- layerType: "baseLayer"
4022
- }
4023
- ],
4024
- proj: {
4025
- bbox: {
4026
- left: -450651.2255879827,
4027
- bottom: 6490531.093143953,
4028
- right: 1428345.8183648037,
4029
- top: 7438773.776232235
4030
- },
4031
- srs: "EPSG:3857"
4032
- }
3768
+ title: "demosyncgrouptime_radar",
3769
+ id: "demosyncgrouptime_radar",
3770
+ date: "2022-06-01T12:34:27.787184",
3771
+ scope: "system"
3772
+ },
3773
+ {
3774
+ title: "demosyncgrouptime_temp",
3775
+ id: "demosyncgrouptime_temp",
3776
+ date: "2022-06-01T12:34:27.787184",
3777
+ scope: "system"
3778
+ },
3779
+ {
3780
+ title: "Cap Warnings",
3781
+ id: "capView",
3782
+ date: "2022-06-01T12:34:27.787184",
3783
+ scope: "system",
3784
+ abstract: "abstract cap"
3785
+ },
3786
+ {
3787
+ title: "Warning List",
3788
+ id: "warningList",
3789
+ date: "2022-06-01T12:34:27.787184",
3790
+ scope: "system"
3791
+ }
3792
+ ];
3793
+
3794
+ var workspacePresetsListFullContent = [
3795
+ {
3796
+ id: "screenConfigRadarTemp",
3797
+ title: "Radar and temperature",
3798
+ scope: "system",
3799
+ abstract: "",
3800
+ viewType: "multiWindow",
3801
+ views: [
3802
+ {
3803
+ mosaicNodeId: "screen_no_1",
3804
+ viewPresetId: "radar"
4033
3805
  },
4034
- syncGroupsIds: [
4035
- "Area_radar"
4036
- ]
3806
+ {
3807
+ mosaicNodeId: "screen_no_2",
3808
+ viewPresetId: "temp"
3809
+ }
3810
+ ],
3811
+ syncGroups: [
3812
+ {
3813
+ id: "Area_RadarTemp",
3814
+ type: "SYNCGROUPS_TYPE_SETBBOX"
3815
+ },
3816
+ {
3817
+ id: "Time_RadarTemp",
3818
+ type: "SYNCGROUPS_TYPE_SETTIME"
3819
+ }
3820
+ ],
3821
+ mosaicNode: {
3822
+ direction: "row",
3823
+ first: "screen_no_1",
3824
+ second: "screen_no_2",
3825
+ splitPercentage: 50
4037
3826
  }
4038
3827
  },
4039
3828
  {
4040
- title: "Temperature",
4041
- id: "demosyncgroupbbox_temp",
4042
- componentType: "Map",
4043
- initialProps: {
4044
- mapPreset: {
4045
- layers: [
4046
- {
4047
- service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
4048
- name: "10M/ta",
4049
- id: "layerid_10",
4050
- layerType: "mapLayer"
4051
- }
4052
- ],
4053
- proj: {
4054
- bbox: {
4055
- left: -450651.2255879827,
4056
- bottom: 6490531.093143953,
4057
- right: 1428345.8183648037,
4058
- top: 7438773.776232235
4059
- },
4060
- srs: "EPSG:3857"
4061
- }
3829
+ id: "screenConfigRadarRadar",
3830
+ title: "Radar and Radar",
3831
+ scope: "system",
3832
+ abstract: "",
3833
+ viewType: "multiWindow",
3834
+ views: [
3835
+ {
3836
+ mosaicNodeId: "view-1",
3837
+ viewPresetId: "radar"
4062
3838
  },
4063
- syncGroupsIds: [
4064
- "Area_radar"
4065
- ]
3839
+ {
3840
+ mosaicNodeId: "view-2",
3841
+ viewPresetId: "radar"
3842
+ }
3843
+ ],
3844
+ syncGroups: [
3845
+ {
3846
+ id: "Area_RadarTemp",
3847
+ type: "SYNCGROUPS_TYPE_SETBBOX"
3848
+ },
3849
+ {
3850
+ id: "Time_RadarTemp",
3851
+ type: "SYNCGROUPS_TYPE_SETTIME"
3852
+ }
3853
+ ],
3854
+ mosaicNode: {
3855
+ direction: "row",
3856
+ first: "view-1",
3857
+ second: "view-2",
3858
+ splitPercentage: 50
4066
3859
  }
4067
3860
  },
4068
3861
  {
4069
- title: "Radar",
4070
- id: "demosyncgrouptime_radar",
4071
- componentType: "Map",
4072
- initialProps: {
4073
- mapPreset: {
4074
- layers: [
4075
- {
4076
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
4077
- name: "RAD_NL25_PCP_CM",
4078
- format: "image/png",
4079
- enabled: true,
4080
- style: "radar/nearest",
4081
- id: "layerid_8",
4082
- layerType: "mapLayer"
4083
- },
4084
- {
4085
- service: "https://maps.heigit.org/osm-wms/service",
4086
- id: "layerid_5",
4087
- name: "osm_auto:all",
4088
- layerType: "baseLayer"
4089
- }
4090
- ],
4091
- proj: {
4092
- bbox: {
4093
- left: -450651.2255879827,
4094
- bottom: 6490531.093143953,
4095
- right: 1428345.8183648037,
4096
- top: 7438773.776232235
4097
- },
4098
- srs: "EPSG:3857"
4099
- }
3862
+ id: "screenConfigTimeSeries_knmi_timeseries_ha43_dini",
3863
+ title: "TimeSeries EDR KNMI HA43 DINI",
3864
+ scope: "system",
3865
+ abstract: "This contains a very very long abstract so that you can see some ellipsis. Who knows how it will behave. ",
3866
+ viewType: "multiWindow",
3867
+ views: [
3868
+ {
3869
+ mosaicNodeId: "view-1",
3870
+ viewPresetId: "view_knmi_timeseries_ha43_dini_wms"
4100
3871
  },
4101
- syncGroupsIds: [
4102
- "Time_radar"
4103
- ]
3872
+ {
3873
+ mosaicNodeId: "view-2",
3874
+ viewPresetId: "view_knmi_timeseries_ha43_dini_edr"
3875
+ }
3876
+ ],
3877
+ syncGroups: [
3878
+ ],
3879
+ mosaicNode: {
3880
+ direction: "row",
3881
+ first: "view-1",
3882
+ second: "view-2"
4104
3883
  }
4105
3884
  },
4106
3885
  {
4107
- title: "Temperature",
4108
- id: "demosyncgrouptime_temp",
4109
- componentType: "Map",
4110
- initialProps: {
4111
- mapPreset: {
4112
- layers: [
4113
- {
4114
- service: "https://geoservices.knmi.nl/adagucserver?dataset=OBS",
4115
- name: "10M/ta",
4116
- id: "layerid_10",
4117
- layerType: "mapLayer"
4118
- }
4119
- ],
4120
- proj: {
4121
- bbox: {
4122
- left: -450651.2255879827,
4123
- bottom: 6490531.093143953,
4124
- right: 1428345.8183648037,
4125
- top: 7438773.776232235
4126
- },
4127
- srs: "EPSG:3857"
4128
- }
3886
+ id: "screenConfigTimeSeries",
3887
+ title: "TimeSeries Example",
3888
+ scope: "system",
3889
+ abstract: "This contains a very very long abstract so that you can see some ellipsis. Who knows how it will behave. ",
3890
+ viewType: "multiWindow",
3891
+ views: [
3892
+ {
3893
+ mosaicNodeId: "view-1",
3894
+ viewPresetId: "TimeseriesMap"
4129
3895
  },
4130
- syncGroupsIds: [
4131
- "Time_radar"
4132
- ]
3896
+ {
3897
+ mosaicNodeId: "view-2",
3898
+ viewPresetId: "Timeseries"
3899
+ }
3900
+ ],
3901
+ syncGroups: [
3902
+ ],
3903
+ mosaicNode: {
3904
+ direction: "row",
3905
+ first: "view-1",
3906
+ second: "view-2"
4133
3907
  }
4134
3908
  },
4135
3909
  {
4136
- title: "Empty map",
4137
- id: "emptyMap",
4138
- componentType: "Map",
4139
- initialProps: {
4140
- mapPreset: {
4141
- layers: [
4142
- ]
3910
+ id: "screenConfigHarmoniePrecipMSLRefTimePresetWithoutMultiMapLayerManager",
3911
+ title: "Precipitation, pressure and wind 1:1",
3912
+ scope: "system",
3913
+ abstract: "",
3914
+ viewType: "tiledWindow",
3915
+ views: [
3916
+ {
3917
+ mosaicNodeId: "view-1",
3918
+ viewPresetId: "harmRefTime"
3919
+ }
3920
+ ],
3921
+ syncGroups: [
3922
+ {
3923
+ id: "areaLayerGroupA",
3924
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4143
3925
  },
4144
- syncGroupsIds: [
4145
- ]
4146
- }
3926
+ {
3927
+ id: "timeLayerGroupA",
3928
+ type: "SYNCGROUPS_TYPE_SETTIME"
3929
+ },
3930
+ {
3931
+ id: "layerGroupA",
3932
+ type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
3933
+ }
3934
+ ],
3935
+ mosaicNode: "view-1"
4147
3936
  },
4148
3937
  {
4149
- title: "TAF",
4150
- id: "taf",
4151
- componentType: "TafModule",
4152
- initialProps: {
4153
- }
3938
+ id: "screenConfigHarmoniePrecipMSLRefTimePresetWithMultiMapLayerManager",
3939
+ title: "Precipitation, pressure and wind 1:all",
3940
+ scope: "system",
3941
+ abstract: "",
3942
+ viewType: "tiledWindow",
3943
+ views: [
3944
+ {
3945
+ mosaicNodeId: "view-1",
3946
+ viewPresetId: "harmRefTimeAll"
3947
+ }
3948
+ ],
3949
+ syncGroups: [
3950
+ {
3951
+ id: "areaLayerGroupA",
3952
+ type: "SYNCGROUPS_TYPE_SETBBOX"
3953
+ },
3954
+ {
3955
+ id: "timeLayerGroupA",
3956
+ type: "SYNCGROUPS_TYPE_SETTIME"
3957
+ },
3958
+ {
3959
+ id: "layerGroupA",
3960
+ type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
3961
+ }
3962
+ ],
3963
+ mosaicNode: "view-1"
4154
3964
  },
4155
3965
  {
4156
- title: "Actions example",
4157
- id: "actionsExample",
4158
- componentType: "ActionsExample",
4159
- initialProps: {
4160
- }
3966
+ id: "screenConfigHarmoniePresetWithoutMultiMapLayerManager",
3967
+ title: "Harmonie Temperature and Precipitation 1:1",
3968
+ scope: "system",
3969
+ abstract: "",
3970
+ viewType: "tiledWindow",
3971
+ views: [
3972
+ {
3973
+ mosaicNodeId: "view-1",
3974
+ viewPresetId: "screenHarm"
3975
+ }
3976
+ ],
3977
+ syncGroups: [
3978
+ {
3979
+ id: "areaLayerGroupA",
3980
+ type: "SYNCGROUPS_TYPE_SETBBOX"
3981
+ },
3982
+ {
3983
+ id: "timeLayerGroupA",
3984
+ type: "SYNCGROUPS_TYPE_SETTIME"
3985
+ },
3986
+ {
3987
+ id: "layerGroupA",
3988
+ type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
3989
+ },
3990
+ {
3991
+ id: "layerGroupB",
3992
+ type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
3993
+ }
3994
+ ],
3995
+ mosaicNode: "view-1"
4161
3996
  },
4162
3997
  {
4163
- title: "HARM",
4164
- id: "viewHarmonie",
4165
- componentType: "Map",
4166
- initialProps: {
4167
- mapPreset: {
4168
- layers: [
4169
- {
4170
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4171
- name: "wind_speed_components_hagl",
4172
- id: "wind_speed_components_hagl",
4173
- format: "image/png",
4174
- enabled: true,
4175
- style: "windbarbs_kts/barb",
4176
- layerType: "mapLayer"
4177
- },
4178
- {
4179
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4180
- name: "total_precipitation_rate_hagl",
4181
- id: "total_precipitation_rate_hagl",
4182
- format: "image/png",
4183
- enabled: true,
4184
- style: "",
4185
- layerType: "mapLayer"
4186
- },
4187
- {
4188
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4189
- name: "air_temperature_hagl",
4190
- id: "air_temperature_hagl",
4191
- format: "image/png",
4192
- enabled: true,
4193
- style: "temperature_wow/shaded",
4194
- layerType: "mapLayer"
4195
- },
4196
- {
4197
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4198
- name: "wind_speed_components_pl",
4199
- id: "wind_speed_components_pl",
4200
- format: "image/png",
4201
- enabled: false,
4202
- style: "windbarbs_kts/barb",
4203
- layerType: "mapLayer",
4204
- dimensions: [
4205
- {
4206
- name: "pressure_level_in_hpa",
4207
- currentValue: "700"
4208
- }
4209
- ]
4210
- },
4211
- {
4212
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4213
- name: "air_temperature_hagl",
4214
- id: "air_temperature_hagl",
4215
- format: "image/png",
4216
- enabled: false,
4217
- style: "temperature_wow/shaded",
4218
- layerType: "mapLayer",
4219
- dimensions: [
4220
- ]
4221
- },
4222
- {
4223
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4224
- name: "geopotential_height_pl",
4225
- id: "geopotential_height_pl",
4226
- format: "image/png",
4227
- enabled: false,
4228
- style: "",
4229
- layerType: "mapLayer",
4230
- dimensions: [
4231
- {
4232
- name: "pressure_level_in_hpa",
4233
- currentValue: "850"
4234
- }
4235
- ]
4236
- },
4237
- {
4238
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4239
- name: "relative_humidity_pl",
4240
- id: "relative_humidity_pl",
4241
- format: "image/png",
4242
- enabled: false,
4243
- style: "",
4244
- layerType: "mapLayer",
4245
- dimensions: [
4246
- {
4247
- name: "pressure_level_in_hpa",
4248
- currentValue: "850"
4249
- }
4250
- ]
4251
- },
4252
- {
4253
- service: "https://geoservices.knmi.nl/adaguc-server?DATASET=uwcw_ha43_dini_5p5km",
4254
- name: "wind_speed_of_gust_01h_hagl",
4255
- id: "wind_speed_of_gust_01h_hagl",
4256
- format: "image/png",
4257
- enabled: false,
4258
- style: "",
4259
- layerType: "mapLayer"
4260
- }
4261
- ],
4262
- proj: {
4263
- bbox: {
4264
- left: -450651.2255879827,
4265
- bottom: 6490531.093143953,
4266
- right: 1428345.8183648037,
4267
- top: 7438773.776232235
4268
- },
4269
- srs: "EPSG:3857"
4270
- }
3998
+ id: "screenConfigHarmoniePresetWithMultiMapLayerManager",
3999
+ title: "Harmonie Temperature and Precipitation 1:all",
4000
+ scope: "system",
4001
+ abstract: "",
4002
+ viewType: "tiledWindow",
4003
+ views: [
4004
+ {
4005
+ mosaicNodeId: "view-1",
4006
+ viewPresetId: "screenHarmAll"
4007
+ }
4008
+ ],
4009
+ syncGroups: [
4010
+ {
4011
+ id: "areaLayerGroupA",
4012
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4013
+ },
4014
+ {
4015
+ id: "timeLayerGroupA",
4016
+ type: "SYNCGROUPS_TYPE_SETTIME"
4017
+ },
4018
+ {
4019
+ id: "layerGroupA",
4020
+ type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
4021
+ },
4022
+ {
4023
+ id: "layerGroupB",
4024
+ type: "SYNCGROUPS_TYPE_SETLAYERACTIONS"
4025
+ }
4026
+ ],
4027
+ mosaicNode: "view-1"
4028
+ },
4029
+ {
4030
+ id: "screenConfigD",
4031
+ title: "Radar & Sat",
4032
+ scope: "system",
4033
+ abstract: "",
4034
+ viewType: "multiWindow",
4035
+ views: [
4036
+ {
4037
+ mosaicNodeId: "viewAsat",
4038
+ viewPresetId: "sat"
4039
+ },
4040
+ {
4041
+ mosaicNodeId: "viewBrad",
4042
+ viewPresetId: "rad"
4271
4043
  }
4044
+ ],
4045
+ syncGroups: [
4046
+ {
4047
+ id: "Area_SatRadar",
4048
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4049
+ },
4050
+ {
4051
+ id: "Time_SatRadar",
4052
+ type: "SYNCGROUPS_TYPE_SETTIME"
4053
+ }
4054
+ ],
4055
+ mosaicNode: {
4056
+ direction: "row",
4057
+ first: "viewAsat",
4058
+ second: "viewBrad",
4059
+ splitPercentage: 50
4272
4060
  }
4273
4061
  },
4274
4062
  {
4275
- id: "capMapView",
4276
- title: "Cap Warning Map",
4277
- componentType: "CapWarningMap",
4278
- initialProps: {
4279
- mapPreset: {
4280
- layers: [
4281
- {
4282
- service: "https://geoservices.knmi.nl/wms?dataset=RADAR",
4283
- name: "RAD_NL25_PCP_CM",
4284
- format: "image/png",
4285
- style: "radar/nearest",
4286
- enabled: true,
4287
- layerType: "mapLayer"
4288
- }
4289
- ],
4290
- proj: {
4291
- bbox: {
4292
- left: 58703.6377,
4293
- bottom: 6408480.4514,
4294
- right: 3967387.5161,
4295
- top: 11520588.9031
4296
- },
4297
- srs: "EPSG:3857"
4298
- },
4299
- activeLayerId: "radar_precipitation_intensity_nordic_id",
4300
- toggleTimestepAuto: false,
4301
- animationPayload: {
4302
- duration: 240,
4303
- interval: 5,
4304
- speed: 2,
4305
- endTime: "NOW+PT2H00M"
4063
+ id: "screenConfigOBS",
4064
+ title: "OBS",
4065
+ scope: "system",
4066
+ abstract: "",
4067
+ viewType: "multiWindow",
4068
+ views: [
4069
+ {
4070
+ mosaicNodeId: "map_OBSTA",
4071
+ viewPresetId: "map_OBSTA"
4072
+ },
4073
+ {
4074
+ mosaicNodeId: "map_OBSPP",
4075
+ viewPresetId: "map_OBSPP"
4076
+ },
4077
+ {
4078
+ mosaicNodeId: "map_OBSWind",
4079
+ viewPresetId: "map_OBSWind"
4080
+ },
4081
+ {
4082
+ mosaicNodeId: "map_OBSRH",
4083
+ viewPresetId: "map_OBSRH"
4084
+ },
4085
+ {
4086
+ mosaicNodeId: "map_OBSQG",
4087
+ viewPresetId: "map_OBSQG"
4088
+ }
4089
+ ],
4090
+ syncGroups: [
4091
+ {
4092
+ id: "Area_A",
4093
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4094
+ },
4095
+ {
4096
+ id: "Time_A",
4097
+ type: "SYNCGROUPS_TYPE_SETTIME"
4098
+ }
4099
+ ],
4100
+ mosaicNode: {
4101
+ direction: "column",
4102
+ first: {
4103
+ direction: "row",
4104
+ first: "map_OBSTA",
4105
+ second: "map_OBSPP"
4106
+ },
4107
+ second: {
4108
+ direction: "row",
4109
+ first: "map_OBSWind",
4110
+ second: {
4111
+ direction: "row",
4112
+ first: "map_OBSRH",
4113
+ second: "map_OBSQG"
4306
4114
  },
4307
- dockedLayerManagerSize: "sizeMedium",
4308
- shouldAutoUpdate: true
4115
+ splitPercentage: 33
4309
4116
  }
4310
4117
  }
4311
4118
  },
4312
4119
  {
4313
- id: "capListView",
4314
- title: "Cap Warning List",
4315
- componentType: "CapWarningList",
4316
- initialProps: {
4317
- }
4120
+ id: "screenConfigRadAndObs",
4121
+ title: "FourMapsInOneView",
4122
+ scope: "system",
4123
+ abstract: "",
4124
+ viewType: "tiledWindow",
4125
+ views: [
4126
+ {
4127
+ mosaicNodeId: "view-1",
4128
+ viewPresetId: "screenRadAndObs"
4129
+ }
4130
+ ],
4131
+ syncGroups: [
4132
+ {
4133
+ id: "Area_screenRadAndObs",
4134
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4135
+ },
4136
+ {
4137
+ id: "Time_screenRadAndObs",
4138
+ type: "SYNCGROUPS_TYPE_SETTIME"
4139
+ }
4140
+ ],
4141
+ mosaicNode: "view-1"
4318
4142
  },
4319
4143
  {
4320
- id: "warningList",
4321
- title: "Warning List",
4322
- componentType: "WarningList",
4323
- initialProps: {
4144
+ id: "screenConfigHarmonie",
4145
+ title: "Harmonie",
4146
+ scope: "system",
4147
+ abstract: "",
4148
+ viewType: "multiWindow",
4149
+ views: [
4150
+ {
4151
+ mosaicNodeId: "viewAharmPrecip",
4152
+ viewPresetId: "harmPrecip"
4153
+ },
4154
+ {
4155
+ mosaicNodeId: "viewBharmTemp",
4156
+ viewPresetId: "harmTemp"
4157
+ },
4158
+ {
4159
+ mosaicNodeId: "viewCharmPressure",
4160
+ viewPresetId: "harmPressure"
4161
+ },
4162
+ {
4163
+ mosaicNodeId: "viewDslider",
4164
+ viewPresetId: "slider"
4165
+ }
4166
+ ],
4167
+ syncGroups: [
4168
+ {
4169
+ id: "Area_B",
4170
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4171
+ },
4172
+ {
4173
+ id: "Time_B",
4174
+ type: "SYNCGROUPS_TYPE_SETTIME"
4175
+ }
4176
+ ],
4177
+ mosaicNode: {
4178
+ direction: "column",
4179
+ first: {
4180
+ direction: "row",
4181
+ first: "viewAharmPrecip",
4182
+ second: {
4183
+ direction: "row",
4184
+ first: "viewBharmTemp",
4185
+ second: "viewCharmPressure"
4186
+ },
4187
+ splitPercentage: 33
4188
+ },
4189
+ second: "viewDslider",
4190
+ splitPercentage: 80
4324
4191
  }
4325
- }
4326
- ];
4327
-
4328
- var viewPresetsList = [
4329
- {
4330
- title: "Radar",
4331
- id: "radar",
4332
- date: "2022-06-01T12:34:27.787184",
4333
- scope: "system"
4334
- },
4335
- {
4336
- title: "Temperature",
4337
- id: "temp",
4338
- date: "2022-06-01T12:34:27.787184",
4339
- scope: "system"
4340
- },
4341
- {
4342
- title: "Radar",
4343
- id: "screenRadar",
4344
- date: "2022-06-01T12:34:27.787184",
4345
- scope: "user"
4346
- },
4347
- {
4348
- id: "screenConfigC",
4349
- title: "Satellite",
4350
- date: "2022-06-01T12:34:27.787184",
4351
- scope: "system"
4352
- },
4353
- {
4354
- title: "map_OBSTA",
4355
- id: "map_OBSTA",
4356
- date: "2022-06-01T12:34:27.787184",
4357
- scope: "system"
4358
4192
  },
4359
4193
  {
4360
- title: "map_OBSPP",
4361
- id: "map_OBSPP",
4362
- date: "2022-06-01T12:34:27.787184",
4363
- scope: "system"
4194
+ id: "workspaceHarmonie",
4195
+ title: "Harmonie",
4196
+ scope: "system",
4197
+ abstract: "",
4198
+ viewType: "singleWindow",
4199
+ views: [
4200
+ {
4201
+ mosaicNodeId: "screen1",
4202
+ viewPresetId: "viewHarmonie"
4203
+ }
4204
+ ],
4205
+ syncGroups: [
4206
+ ],
4207
+ mosaicNode: "screen1"
4364
4208
  },
4365
4209
  {
4366
- title: "map_OBSWind",
4367
- id: "map_OBSWind",
4368
- date: "2022-06-01T12:34:27.787184",
4369
- scope: "system"
4210
+ id: "screenConfigOnlyBBOXGroup",
4211
+ title: "SyncGroups only BBOX predefined",
4212
+ scope: "system",
4213
+ abstract: "",
4214
+ viewType: "multiWindow",
4215
+ views: [
4216
+ {
4217
+ mosaicNodeId: "view-1",
4218
+ viewPresetId: "demosyncgroupbbox_radar"
4219
+ },
4220
+ {
4221
+ mosaicNodeId: "view-2",
4222
+ viewPresetId: "demosyncgroupbbox_temp"
4223
+ }
4224
+ ],
4225
+ syncGroups: [
4226
+ {
4227
+ id: "Area_radar",
4228
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4229
+ },
4230
+ {
4231
+ id: "Area_temp",
4232
+ type: "SYNCGROUPS_TYPE_SETBBOX"
4233
+ }
4234
+ ],
4235
+ mosaicNode: {
4236
+ direction: "row",
4237
+ first: "view-1",
4238
+ second: "view-2",
4239
+ splitPercentage: 50
4240
+ }
4370
4241
  },
4371
4242
  {
4372
- title: "map_OBSRH",
4373
- id: "map_OBSRH",
4374
- date: "2022-06-01T12:34:27.787184",
4375
- scope: "system"
4243
+ id: "screenConfigOnlyTIMEGroup",
4244
+ title: "SyncGroups only TIME predefined",
4245
+ scope: "system",
4246
+ abstract: "",
4247
+ viewType: "multiWindow",
4248
+ views: [
4249
+ {
4250
+ mosaicNodeId: "view-1",
4251
+ viewPresetId: "demosyncgrouptime_radar"
4252
+ },
4253
+ {
4254
+ mosaicNodeId: "view-2",
4255
+ viewPresetId: "demosyncgrouptime_temp"
4256
+ }
4257
+ ],
4258
+ syncGroups: [
4259
+ {
4260
+ id: "Time_radar",
4261
+ type: "SYNCGROUPS_TYPE_SETTIME"
4262
+ },
4263
+ {
4264
+ id: "Time_temp",
4265
+ type: "SYNCGROUPS_TYPE_SETTIME"
4266
+ }
4267
+ ],
4268
+ mosaicNode: {
4269
+ direction: "row",
4270
+ first: "view-1",
4271
+ second: "view-2",
4272
+ splitPercentage: 50
4273
+ }
4376
4274
  },
4377
4275
  {
4378
- title: "map_OBSQG",
4379
- id: "map_OBSQG",
4380
- date: "2022-06-01T12:34:27.787184",
4381
- scope: "system"
4276
+ id: "emptyMap",
4277
+ title: "Empty map",
4278
+ scope: "system",
4279
+ abstract: "",
4280
+ viewType: "singleWindow",
4281
+ views: [
4282
+ {
4283
+ mosaicNodeId: "emptyMapView",
4284
+ viewPresetId: "emptyMap"
4285
+ }
4286
+ ],
4287
+ mosaicNode: "emptyMapView"
4382
4288
  },
4383
4289
  {
4384
- title: "harmPrecip",
4385
- id: "harmPrecip",
4386
- date: "2022-06-01T12:34:27.787184",
4387
- scope: "system"
4290
+ id: "radarView",
4291
+ title: "Radar",
4292
+ scope: "user",
4293
+ abstract: "",
4294
+ viewType: "singleWindow",
4295
+ views: [
4296
+ {
4297
+ mosaicNodeId: "radarView",
4298
+ viewPresetId: "radar"
4299
+ }
4300
+ ],
4301
+ mosaicNode: "radarView"
4388
4302
  },
4389
4303
  {
4390
- title: "harmTemp",
4391
- id: "harmTemp",
4392
- date: "2022-06-01T12:34:27.787184",
4393
- scope: "system"
4304
+ id: "workspaceHarmonie",
4305
+ title: "Harmonie workspace",
4306
+ scope: "system",
4307
+ abstract: "",
4308
+ viewType: "singleWindow",
4309
+ views: [
4310
+ {
4311
+ mosaicNodeId: "harmView",
4312
+ viewPresetId: "viewHarmonie"
4313
+ }
4314
+ ],
4315
+ mosaicNode: "harmView"
4394
4316
  },
4395
4317
  {
4396
- title: "screenHarm",
4397
- id: "screenHarm",
4398
- date: "2022-06-01T12:34:27.787184",
4399
- scope: "system"
4400
- },
4318
+ id: "capWorkspace",
4319
+ title: "Cap Warnings",
4320
+ scope: "system",
4321
+ abstract: "",
4322
+ viewType: "multiWindow",
4323
+ views: [
4324
+ {
4325
+ mosaicNodeId: "view-1",
4326
+ viewPresetId: "capMapView"
4327
+ },
4328
+ {
4329
+ mosaicNodeId: "view-2",
4330
+ viewPresetId: "capListView"
4331
+ }
4332
+ ],
4333
+ mosaicNode: {
4334
+ direction: "row",
4335
+ first: "view-1",
4336
+ second: "view-2",
4337
+ splitPercentage: 50
4338
+ }
4339
+ }
4340
+ ];
4341
+
4342
+ var workspacePresetsList = [
4401
4343
  {
4402
- title: "Harmonie",
4403
- id: "viewHarmonie",
4344
+ id: "screenConfigRadarTemp",
4345
+ title: "Radar and temperature",
4404
4346
  date: "2022-06-01T12:34:27.787184",
4405
- scope: "system"
4347
+ scope: "system",
4348
+ abstract: "Radar and temperature maps",
4349
+ viewType: "multiWindow"
4406
4350
  },
4407
4351
  {
4408
- title: "harmRefTime",
4409
- id: "harmRefTime",
4352
+ id: "screenConfigRadarRadar",
4353
+ title: "Radar and Radar",
4410
4354
  date: "2022-06-01T12:34:27.787184",
4411
- scope: "system"
4355
+ scope: "system",
4356
+ abstract: "",
4357
+ viewType: "multiWindow"
4412
4358
  },
4413
4359
  {
4414
- title: "harmRefTimeAll",
4415
- id: "harmRefTimeAll",
4360
+ id: "screenConfigTimeSeries_knmi_timeseries_ha43_dini",
4361
+ title: "TimeSeries KNMI EDR HA43 Dini",
4416
4362
  date: "2022-06-01T12:34:27.787184",
4417
- scope: "system"
4363
+ scope: "system",
4364
+ abstract: "",
4365
+ viewType: "multiWindow"
4418
4366
  },
4419
4367
  {
4420
- title: "screenHarmAll",
4421
- id: "screenHarmAll",
4368
+ id: "screenConfigTimeSeries",
4369
+ title: "TimeSeries",
4422
4370
  date: "2022-06-01T12:34:27.787184",
4423
- scope: "system"
4371
+ scope: "system",
4372
+ abstract: "",
4373
+ viewType: "multiWindow"
4424
4374
  },
4425
4375
  {
4426
- title: "harmPressure",
4427
- id: "harmPressure",
4376
+ id: "screenConfigHarmoniePrecipMSLRefTimePresetWithoutMultiMapLayerManager",
4377
+ title: "Precipitation, pressure and wind 1:1",
4428
4378
  date: "2022-06-01T12:34:27.787184",
4429
- scope: "system"
4379
+ scope: "system",
4380
+ abstract: "",
4381
+ viewType: "tiledWindow"
4430
4382
  },
4431
4383
  {
4432
- title: "Empty map",
4433
- id: "emptyMap",
4384
+ id: "screenConfigHarmoniePrecipMSLRefTimePresetWithMultiMapLayerManager",
4385
+ title: "Precipitation, pressure and wind 1:all",
4434
4386
  date: "2022-06-01T12:34:27.787184",
4435
- scope: "system"
4387
+ scope: "system",
4388
+ abstract: "",
4389
+ viewType: "tiledWindow"
4436
4390
  },
4437
4391
  {
4438
- title: "Timeseries map",
4439
- id: "TimeseriesMap",
4392
+ id: "screenConfigHarmoniePresetWithoutMultiMapLayerManager",
4393
+ title: "Harmonie Temperature and Precipitation 1:1",
4440
4394
  date: "2022-06-01T12:34:27.787184",
4441
- scope: "system"
4395
+ scope: "system",
4396
+ abstract: "",
4397
+ viewType: "tiledWindow"
4442
4398
  },
4443
4399
  {
4444
- title: "KNMI WMS UWCW HA43 DINI forecast",
4445
- id: "view_knmi_timeseries_ha43_dini_wms",
4400
+ id: "screenConfigHarmoniePresetWithMultiMapLayerManager",
4401
+ title: "Harmonie Temperature and Precipitation 1:all",
4446
4402
  date: "2022-06-01T12:34:27.787184",
4447
- scope: "system"
4403
+ scope: "system",
4404
+ abstract: "",
4405
+ viewType: "tiledWindow"
4448
4406
  },
4449
4407
  {
4450
- title: "KNMI EDR UWCW HA43 DINI forecast",
4451
- id: "view_knmi_timeseries_ha43_dini_edr",
4408
+ id: "radarView",
4409
+ title: "Radar",
4452
4410
  date: "2022-06-01T12:34:27.787184",
4453
- scope: "system"
4411
+ scope: "user",
4412
+ abstract: "Some abstract",
4413
+ viewType: "singleWindow"
4454
4414
  },
4455
4415
  {
4456
- title: "sat",
4457
- id: "sat",
4416
+ id: "screenConfigD",
4417
+ title: "Radar & Sat",
4458
4418
  date: "2022-06-01T12:34:27.787184",
4459
- scope: "system"
4419
+ scope: "system",
4420
+ abstract: "",
4421
+ viewType: "multiWindow"
4460
4422
  },
4461
4423
  {
4462
- title: "rad",
4463
- id: "rad",
4424
+ id: "screenConfigOBS",
4425
+ title: "OBS",
4464
4426
  date: "2022-06-01T12:34:27.787184",
4465
- scope: "system"
4427
+ scope: "system",
4428
+ abstract: "",
4429
+ viewType: "multiWindow"
4466
4430
  },
4467
4431
  {
4468
- title: "screenRadAndObs",
4469
- id: "screenRadAndObs",
4432
+ id: "screenConfigRadAndObs",
4433
+ title: "FourMapsInOneView",
4470
4434
  date: "2022-06-01T12:34:27.787184",
4471
- scope: "system"
4435
+ scope: "system",
4436
+ abstract: "Four grid maps",
4437
+ viewType: "tiledWindow"
4472
4438
  },
4473
4439
  {
4474
- title: "demosyncgroupbbox_radar",
4475
- id: "demosyncgroupbbox_radar",
4440
+ id: "screenConfigHarmonie",
4441
+ title: "Harmonie multi",
4476
4442
  date: "2022-06-01T12:34:27.787184",
4477
- scope: "system"
4443
+ scope: "system",
4444
+ abstract: "",
4445
+ viewType: "multiWindow"
4478
4446
  },
4479
4447
  {
4480
- title: "demosyncgroupbbox_temp",
4481
- id: "demosyncgroupbbox_temp",
4448
+ id: "workspaceHarmonie",
4449
+ title: "Harmonie",
4482
4450
  date: "2022-06-01T12:34:27.787184",
4483
- scope: "system"
4451
+ scope: "system",
4452
+ abstract: "",
4453
+ viewType: "singleWindow"
4484
4454
  },
4485
4455
  {
4486
- title: "demosyncgrouptime_radar",
4487
- id: "demosyncgrouptime_radar",
4456
+ id: "screenConfigOnlyBBOXGroup",
4457
+ title: "SyncGroups only BBOX predefined",
4488
4458
  date: "2022-06-01T12:34:27.787184",
4489
- scope: "system"
4459
+ scope: "system",
4460
+ abstract: "SyncGroups synced BBOX",
4461
+ viewType: "multiWindow"
4490
4462
  },
4491
4463
  {
4492
- title: "demosyncgrouptime_temp",
4493
- id: "demosyncgrouptime_temp",
4464
+ id: "screenConfigOnlyTIMEGroup",
4465
+ title: "SyncGroups only TIME predefined",
4494
4466
  date: "2022-06-01T12:34:27.787184",
4495
- scope: "system"
4467
+ scope: "system",
4468
+ abstract: "SyncGroups synced TIME",
4469
+ viewType: "multiWindow"
4496
4470
  },
4497
4471
  {
4498
- title: "Cap Warnings",
4499
- id: "capView",
4472
+ id: "emptyMap",
4473
+ title: "Empty map",
4500
4474
  date: "2022-06-01T12:34:27.787184",
4501
- scope: "system"
4475
+ scope: "system",
4476
+ abstract: "",
4477
+ viewType: "singleWindow"
4502
4478
  },
4503
4479
  {
4504
- title: "Warning List",
4505
- id: "warningList",
4480
+ id: "capWorkspace",
4481
+ title: "Cap Warnings",
4506
4482
  date: "2022-06-01T12:34:27.787184",
4507
- scope: "system"
4483
+ scope: "system",
4484
+ abstract: "",
4485
+ viewType: "multiWindow"
4508
4486
  }
4509
4487
  ];
4510
4488
 
@@ -5234,107 +5212,66 @@ var processError = function processError(error, component, errorMessageKey) {
5234
5212
  };
5235
5213
  };
5236
5214
  var viewPresetsListener = createListenerMiddleware();
5237
- // fetch initial view presets
5215
+ // fetch view presets
5238
5216
  viewPresetsListener.startListening({
5239
- actionCreator: viewPresetActions.fetchInitialViewPresets,
5217
+ actionCreator: viewPresetActions.fetchViewPresets,
5240
5218
  effect: function () {
5241
5219
  var _effect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
5242
- var FetchViewPresetsListParams, workspaceApi, _yield$workspaceApi$g, viewPresets;
5220
+ var payload, panelId, filterParams, workspaceApi, _yield$workspaceApi$g, viewPresets;
5243
5221
  return _regeneratorRuntime().wrap(function _callee$(_context) {
5244
5222
  while (1) switch (_context.prev = _context.next) {
5245
5223
  case 0:
5246
- FetchViewPresetsListParams = _ref.payload;
5247
- listenerApi.cancelActiveListeners();
5248
- _context.prev = 2;
5249
- workspaceApi = getWorkspaceApi(); // No filters so we don't need to pass any params for this viewPresets list call
5250
- _context.next = 6;
5251
- return workspaceApi.getViewPresets(FetchViewPresetsListParams);
5252
- case 6:
5253
- _yield$workspaceApi$g = _context.sent;
5254
- viewPresets = _yield$workspaceApi$g.data;
5255
- listenerApi.dispatch(viewPresetActions.fetchedInitialViewPresets({
5256
- viewPresets: viewPresets
5257
- }));
5258
- _context.next = 14;
5259
- break;
5260
- case 11:
5261
- _context.prev = 11;
5262
- _context.t0 = _context["catch"](2);
5263
- listenerApi.dispatch(viewPresetActions.errorInitialViewPresets({
5264
- error: processError(_context.t0, ViewPresetErrorComponent.PRESET_LIST, 'workspace-mappreset-error-fetch')
5265
- }));
5266
- case 14:
5267
- case "end":
5268
- return _context.stop();
5269
- }
5270
- }, _callee, null, [[2, 11]]);
5271
- }));
5272
- function effect(_x, _x2) {
5273
- return _effect.apply(this, arguments);
5274
- }
5275
- return effect;
5276
- }()
5277
- });
5278
- // fetch view presets
5279
- viewPresetsListener.startListening({
5280
- actionCreator: viewPresetActions.fetchViewPresets,
5281
- effect: function () {
5282
- var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
5283
- var payload, panelId, filterParams, workspaceApi, _yield$workspaceApi$g2, viewPresets;
5284
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
5285
- while (1) switch (_context2.prev = _context2.next) {
5286
- case 0:
5287
- payload = _ref2.payload;
5224
+ payload = _ref.payload;
5288
5225
  listenerApi.cancelActiveListeners();
5289
5226
  panelId = payload.panelId, filterParams = payload.filterParams;
5290
- _context2.prev = 3;
5227
+ _context.prev = 3;
5291
5228
  workspaceApi = getWorkspaceApi();
5292
- _context2.next = 7;
5229
+ _context.next = 7;
5293
5230
  return workspaceApi.getViewPresets(filterParams);
5294
5231
  case 7:
5295
- _yield$workspaceApi$g2 = _context2.sent;
5296
- viewPresets = _yield$workspaceApi$g2.data;
5232
+ _yield$workspaceApi$g = _context.sent;
5233
+ viewPresets = _yield$workspaceApi$g.data;
5297
5234
  listenerApi.dispatch(viewPresetActions.fetchedViewPresets({
5298
5235
  viewPresets: viewPresets,
5299
5236
  panelId: panelId,
5300
5237
  filterParams: filterParams
5301
5238
  }));
5302
- _context2.next = 15;
5239
+ _context.next = 15;
5303
5240
  break;
5304
5241
  case 12:
5305
- _context2.prev = 12;
5306
- _context2.t0 = _context2["catch"](3);
5242
+ _context.prev = 12;
5243
+ _context.t0 = _context["catch"](3);
5307
5244
  listenerApi.dispatch(viewPresetActions.errorViewPreset({
5308
- error: processError(_context2.t0, ViewPresetErrorComponent.PRESET_LIST, 'workspace-mappreset-error-fetch'),
5245
+ error: processError(_context.t0, ViewPresetErrorComponent.PRESET_LIST, 'workspace-mappreset-error-fetch'),
5309
5246
  panelId: panelId
5310
5247
  }));
5311
5248
  case 15:
5312
5249
  case "end":
5313
- return _context2.stop();
5250
+ return _context.stop();
5314
5251
  }
5315
- }, _callee2, null, [[3, 12]]);
5252
+ }, _callee, null, [[3, 12]]);
5316
5253
  }));
5317
- function effect(_x3, _x4) {
5318
- return _effect2.apply(this, arguments);
5254
+ function effect(_x, _x2) {
5255
+ return _effect.apply(this, arguments);
5319
5256
  }
5320
5257
  return effect;
5321
5258
  }()
5322
5259
  });
5323
5260
  var saveViewPresetAsEffect = /*#__PURE__*/function () {
5324
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref3, listenerApi) {
5261
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
5325
5262
  var payload, panelId, viewPreset, workspaceApi, viewPresetId;
5326
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
5327
- while (1) switch (_context3.prev = _context3.next) {
5263
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
5264
+ while (1) switch (_context2.prev = _context2.next) {
5328
5265
  case 0:
5329
- payload = _ref3.payload;
5266
+ payload = _ref2.payload;
5330
5267
  listenerApi.cancelActiveListeners();
5331
5268
  panelId = payload.panelId, viewPreset = payload.viewPreset;
5332
- _context3.prev = 3;
5269
+ _context2.prev = 3;
5333
5270
  workspaceApi = getWorkspaceApi();
5334
- _context3.next = 7;
5271
+ _context2.next = 7;
5335
5272
  return workspaceApi.saveViewPresetAs(viewPreset);
5336
5273
  case 7:
5337
- viewPresetId = _context3.sent;
5274
+ viewPresetId = _context2.sent;
5338
5275
  listenerApi.dispatch(snackbarActions.openSnackbar(getSnackbarMessage(PresetAction.SAVE, viewPreset.title)));
5339
5276
  listenerApi.dispatch(viewPresetActions.savedViewPreset({
5340
5277
  panelId: panelId,
@@ -5345,39 +5282,39 @@ var saveViewPresetAsEffect = /*#__PURE__*/function () {
5345
5282
  viewPresetId: viewPresetId,
5346
5283
  viewPreset: viewPreset
5347
5284
  }));
5348
- return _context3.abrupt("return", Object.assign({}, viewPreset, {
5285
+ return _context2.abrupt("return", Object.assign({}, viewPreset, {
5349
5286
  id: viewPresetId
5350
5287
  }));
5351
5288
  case 14:
5352
- _context3.prev = 14;
5353
- _context3.t0 = _context3["catch"](3);
5289
+ _context2.prev = 14;
5290
+ _context2.t0 = _context2["catch"](3);
5354
5291
  listenerApi.dispatch(viewPresetActions.errorViewPreset({
5355
- error: processError(_context3.t0, ViewPresetErrorComponent.PRESET_DETAIL, 'workspace-mappreset-error-save'),
5292
+ error: processError(_context2.t0, ViewPresetErrorComponent.PRESET_DETAIL, 'workspace-mappreset-error-save'),
5356
5293
  panelId: panelId
5357
5294
  }));
5358
- return _context3.abrupt("return", _context3.t0);
5295
+ return _context2.abrupt("return", _context2.t0);
5359
5296
  case 18:
5360
5297
  case "end":
5361
- return _context3.stop();
5298
+ return _context2.stop();
5362
5299
  }
5363
- }, _callee3, null, [[3, 14]]);
5300
+ }, _callee2, null, [[3, 14]]);
5364
5301
  }));
5365
- return function saveViewPresetAsEffect(_x5, _x6) {
5366
- return _ref4.apply(this, arguments);
5302
+ return function saveViewPresetAsEffect(_x3, _x4) {
5303
+ return _ref3.apply(this, arguments);
5367
5304
  };
5368
5305
  }();
5369
5306
  var saveViewPresetEffect = /*#__PURE__*/function () {
5370
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_ref5, listenerApi) {
5307
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref4, listenerApi) {
5371
5308
  var payload, panelId, viewPreset, viewPresetId, workspaceApi;
5372
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
5373
- while (1) switch (_context4.prev = _context4.next) {
5309
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
5310
+ while (1) switch (_context3.prev = _context3.next) {
5374
5311
  case 0:
5375
- payload = _ref5.payload;
5312
+ payload = _ref4.payload;
5376
5313
  listenerApi.cancelActiveListeners();
5377
5314
  panelId = payload.panelId, viewPreset = payload.viewPreset, viewPresetId = payload.viewPresetId;
5378
- _context4.prev = 3;
5315
+ _context3.prev = 3;
5379
5316
  workspaceApi = getWorkspaceApi();
5380
- _context4.next = 7;
5317
+ _context3.next = 7;
5381
5318
  return workspaceApi.saveViewPreset(viewPresetId, viewPreset);
5382
5319
  case 7:
5383
5320
  listenerApi.dispatch(snackbarActions.openSnackbar(getSnackbarMessage(PresetAction.SAVE, viewPreset.title)));
@@ -5390,24 +5327,24 @@ var saveViewPresetEffect = /*#__PURE__*/function () {
5390
5327
  viewPresetId: viewPresetId,
5391
5328
  viewPreset: viewPreset
5392
5329
  }));
5393
- return _context4.abrupt("return", viewPreset);
5330
+ return _context3.abrupt("return", viewPreset);
5394
5331
  case 13:
5395
- _context4.prev = 13;
5396
- _context4.t0 = _context4["catch"](3);
5332
+ _context3.prev = 13;
5333
+ _context3.t0 = _context3["catch"](3);
5397
5334
  listenerApi.dispatch(viewPresetActions.errorViewPreset({
5398
- error: processError(_context4.t0, ViewPresetErrorComponent.PRESET_DETAIL, 'workspace-mappreset-error-save'),
5335
+ error: processError(_context3.t0, ViewPresetErrorComponent.PRESET_DETAIL, 'workspace-mappreset-error-save'),
5399
5336
  panelId: panelId,
5400
5337
  viewPresetId: viewPresetId
5401
5338
  }));
5402
- return _context4.abrupt("return", _context4.t0);
5339
+ return _context3.abrupt("return", _context3.t0);
5403
5340
  case 17:
5404
5341
  case "end":
5405
- return _context4.stop();
5342
+ return _context3.stop();
5406
5343
  }
5407
- }, _callee4, null, [[3, 13]]);
5344
+ }, _callee3, null, [[3, 13]]);
5408
5345
  }));
5409
- return function saveViewPresetEffect(_x7, _x8) {
5410
- return _ref6.apply(this, arguments);
5346
+ return function saveViewPresetEffect(_x5, _x6) {
5347
+ return _ref5.apply(this, arguments);
5411
5348
  };
5412
5349
  }();
5413
5350
  // save view preset
@@ -5419,12 +5356,12 @@ viewPresetsListener.startListening({
5419
5356
  viewPresetsListener.startListening({
5420
5357
  actionCreator: viewPresetActions.selectViewPreset,
5421
5358
  effect: function () {
5422
- var _effect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref7, listenerApi) {
5359
+ var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_ref6, listenerApi) {
5423
5360
  var payload, panelId, _payload$viewPresetId, viewPresetId, isMapAnimating;
5424
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
5425
- while (1) switch (_context5.prev = _context5.next) {
5361
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
5362
+ while (1) switch (_context4.prev = _context4.next) {
5426
5363
  case 0:
5427
- payload = _ref7.payload;
5364
+ payload = _ref6.payload;
5428
5365
  listenerApi.cancelActiveListeners();
5429
5366
  panelId = payload.panelId, _payload$viewPresetId = payload.viewPresetId, viewPresetId = _payload$viewPresetId === void 0 ? '' : _payload$viewPresetId;
5430
5367
  isMapAnimating = mapSelectors.isAnimating(listenerApi.getState(), panelId);
@@ -5458,12 +5395,12 @@ viewPresetsListener.startListening({
5458
5395
  }
5459
5396
  case 6:
5460
5397
  case "end":
5461
- return _context5.stop();
5398
+ return _context4.stop();
5462
5399
  }
5463
- }, _callee5);
5400
+ }, _callee4);
5464
5401
  }));
5465
- function effect(_x9, _x10) {
5466
- return _effect3.apply(this, arguments);
5402
+ function effect(_x7, _x8) {
5403
+ return _effect2.apply(this, arguments);
5467
5404
  }
5468
5405
  return effect;
5469
5406
  }()
@@ -5472,12 +5409,12 @@ viewPresetsListener.startListening({
5472
5409
  viewPresetsListener.startListening({
5473
5410
  actionCreator: viewPresetActions.onSuccessViewPresetAction,
5474
5411
  effect: function () {
5475
- var _effect4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(_ref8, listenerApi) {
5412
+ var _effect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref7, listenerApi) {
5476
5413
  var payload, action, viewPresetId, title, panelId, activeMapPresetId, hasChanges, viewPresetFilters, viewPresetSearchQuery;
5477
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
5478
- while (1) switch (_context6.prev = _context6.next) {
5414
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
5415
+ while (1) switch (_context5.prev = _context5.next) {
5479
5416
  case 0:
5480
- payload = _ref8.payload;
5417
+ payload = _ref7.payload;
5481
5418
  listenerApi.cancelActiveListeners();
5482
5419
  action = payload.action, viewPresetId = payload.viewPresetId, title = payload.title, panelId = payload.panelId;
5483
5420
  try {
@@ -5515,12 +5452,12 @@ viewPresetsListener.startListening({
5515
5452
  }
5516
5453
  case 4:
5517
5454
  case "end":
5518
- return _context6.stop();
5455
+ return _context5.stop();
5519
5456
  }
5520
- }, _callee6);
5457
+ }, _callee5);
5521
5458
  }));
5522
- function effect(_x11, _x12) {
5523
- return _effect4.apply(this, arguments);
5459
+ function effect(_x9, _x10) {
5460
+ return _effect3.apply(this, arguments);
5524
5461
  }
5525
5462
  return effect;
5526
5463
  }()
@@ -5544,15 +5481,18 @@ workspaceListListener.startListening({
5544
5481
  workspaceFilterParams = _ref.payload;
5545
5482
  listenerApi.cancelActiveListeners();
5546
5483
  _context.prev = 2;
5547
- _context.next = 5;
5548
- return getWorkspaceApi();
5549
- case 5:
5550
- workspaceApi = _context.sent;
5551
- _context.next = 8;
5484
+ workspaceApi = getWorkspaceApi();
5485
+ _context.next = 6;
5552
5486
  return workspaceApi.getWorkspacePresets(workspaceFilterParams);
5553
- case 8:
5487
+ case 6:
5554
5488
  _yield$workspaceApi$g = _context.sent;
5555
5489
  data = _yield$workspaceApi$g.data;
5490
+ if (!listenerApi.signal.aborted) {
5491
+ _context.next = 10;
5492
+ break;
5493
+ }
5494
+ return _context.abrupt("return");
5495
+ case 10:
5556
5496
  listenerApi.dispatch(workspaceListActions.fetchedWorkspaceList({
5557
5497
  workspaceList: data
5558
5498
  }));
@@ -5613,7 +5553,7 @@ workspaceListListener.startListening({
5613
5553
  // Retrieve new list with current filter
5614
5554
  workspaceFilters = getWorkspaceListFilters(listenerApi.getState());
5615
5555
  searchQuery = getWorkspaceListSearchQuery(listenerApi.getState());
5616
- listenerApi.dispatch(workspaceListActions.fetchWorkspaceList(constructFilterParams$1(workspaceFilters, searchQuery)));
5556
+ listenerApi.dispatch(workspaceListActions.fetchWorkspaceList(constructFilterParams(workspaceFilters, searchQuery)));
5617
5557
  case 9:
5618
5558
  case "end":
5619
5559
  return _context2.stop();
@@ -5753,6 +5693,8 @@ workspaceListListener.startListening({
5753
5693
  case 0:
5754
5694
  viewPresetEntity = Object.assign({}, getViewPresetToSendToBackend(listenerApi.getState(), view.mosaicNodeId), {
5755
5695
  title: view.title
5696
+ }, view["abstract"] && {
5697
+ "abstract": view["abstract"]
5756
5698
  });
5757
5699
  shouldUpdateView = view.hasChanges && view.isSelected;
5758
5700
  canUpdateView = scope === 'system' || scope === viewPresetEntity.scope; // save existing views
@@ -5905,14 +5847,7 @@ var slice = createSlice({
5905
5847
  name: 'viewPresetsList',
5906
5848
  reducers: {},
5907
5849
  extraReducers: function extraReducers(builder) {
5908
- builder.addCase(viewPresetActions.fetchedInitialViewPresets, function (draft, action) {
5909
- var viewPresets = action.payload.viewPresets;
5910
- if (!viewPresets || !viewPresets.length) {
5911
- viewPresetsListAdapter.removeAll(draft);
5912
- return;
5913
- }
5914
- viewPresetsListAdapter.setAll(draft, action.payload.viewPresets);
5915
- }).addCase(viewPresetActions.fetchedViewPresets, function (draft, action) {
5850
+ builder.addCase(viewPresetActions.fetchedViewPresets, function (draft, action) {
5916
5851
  var _action$payload = action.payload,
5917
5852
  viewPresets = _action$payload.viewPresets,
5918
5853
  filterParams = _action$payload.filterParams;
@@ -5928,8 +5863,8 @@ var slice = createSlice({
5928
5863
  });
5929
5864
  }
5930
5865
  });
5931
- var reducer = slice.reducer;
5932
- slice.actions;
5866
+ var viewPresetsListReducer = slice.reducer;
5867
+ slice.actions;
5933
5868
 
5934
5869
  /* *
5935
5870
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -5974,35 +5909,6 @@ var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getVie
5974
5909
  };
5975
5910
  }, selectorMemoizationOptions);
5976
5911
 
5977
- /* *
5978
- * Licensed under the Apache License, Version 2.0 (the "License");
5979
- * you may not use this file except in compliance with the License.
5980
- * You may obtain a copy of the License at
5981
- *
5982
- * http://www.apache.org/licenses/LICENSE-2.0
5983
- *
5984
- * Unless required by applicable law or agreed to in writing, software
5985
- * distributed under the License is distributed on an "AS IS" BASIS,
5986
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5987
- * See the License for the specific language governing permissions and
5988
- * limitations under the License.
5989
- *
5990
- * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5991
- * Copyright 2023 - Finnish Meteorological Institute (FMI)
5992
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
5993
- * */
5994
- var workspaceReducersMap = {
5995
- workspace: reducer$1,
5996
- workspaceList: reducer$3,
5997
- viewPresetsList: reducer,
5998
- viewPresets: reducer$2
5999
- };
6000
- var workspaceMiddlewares = [viewPresetsListener.middleware, workspaceListener.middleware, workspaceListListener.middleware];
6001
- var workspaceModuleConfig = {
6002
- reducersMap: workspaceReducersMap,
6003
- middlewares: workspaceMiddlewares
6004
- };
6005
-
6006
5912
  /* *
6007
5913
  * Licensed under the Apache License, Version 2.0 (the "License");
6008
5914
  * you may not use this file except in compliance with the License.
@@ -6060,32 +5966,30 @@ var useWorkspaceTranslation = function useWorkspaceTranslation() {
6060
5966
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
6061
5967
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
6062
5968
  * */
6063
- var devToolsStateSanitizer = {
6064
- stateSanitizer: function stateSanitizer(state) {
6065
- return produce(state, function (draftState) {
6066
- // @ts-ignore
6067
- if (state['services']) {
6068
- // @ts-ignore
6069
- Object.values(state['services'].byId).forEach(function (service) {
6070
- // @ts-ignore
6071
- draftState['services'].byId[service.id].layers =
6072
- // @ts-ignore
6073
- service.layers.length;
6074
- });
6075
- }
6076
- });
6077
- }
5969
+ var workspaceReducersMap = {
5970
+ webmap: mapReducer,
5971
+ services: serviceReducer,
5972
+ layers: layerReducer,
5973
+ syncGroups: syncGroupsReducer,
5974
+ loadingIndicator: loadingIndicatorReducer,
5975
+ ui: uiReducer,
5976
+ workspace: workspaceReducer,
5977
+ workspaceList: workspaceListReducer,
5978
+ viewPresetsList: viewPresetsListReducer,
5979
+ viewPresets: viewPresetsReducer,
5980
+ timeSeries: timeSeriesReducer,
5981
+ snackbar: snackbarReducer
6078
5982
  };
6079
- var rootReducer = combineReducers(Object.assign({}, coreModuleReducersMap, workspaceReducersMap, timeSeriesReducersMap, snackbarReducersMap, routerReducersMap));
6080
- var createTestWorkspaceStore = function createTestWorkspaceStore() {
6081
- var store = configureStore({
6082
- reducer: rootReducer,
5983
+ var workspaceMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, syncGroupsListener.middleware, workspaceListener.middleware, workspaceListListener.middleware, viewPresetsListener.middleware, snackbarListener.middleware];
5984
+ var workspaceRootReducer = combineReducers(workspaceReducersMap);
5985
+ var createMockStore = function createMockStore(mockState) {
5986
+ return configureStore({
5987
+ reducer: workspaceRootReducer,
5988
+ preloadedState: mockState,
6083
5989
  middleware: function middleware(getDefaultMiddleware) {
6084
- return getDefaultMiddleware().concat([].concat(coreModuleMiddlewares, workspaceMiddlewares, timeSeriesMiddlewares, snackbarMiddlewares, routerMiddlewares));
6085
- },
6086
- devTools: devToolsStateSanitizer
5990
+ return getDefaultMiddleware().concat(workspaceMiddlewares);
5991
+ }
6087
5992
  });
6088
- return store;
6089
5993
  };
6090
5994
 
6091
5995
  var queryClient = new QueryClient({
@@ -6128,7 +6032,7 @@ var defaultAuthConfig = {
6128
6032
  var WorkspaceWrapperProviderWithStore = function WorkspaceWrapperProviderWithStore(_ref3) {
6129
6033
  var children = _ref3.children,
6130
6034
  _ref3$store = _ref3.store,
6131
- store = _ref3$store === void 0 ? createTestWorkspaceStore() : _ref3$store,
6035
+ store = _ref3$store === void 0 ? createMockStore() : _ref3$store,
6132
6036
  _ref3$createApi = _ref3.createApi,
6133
6037
  createApi$1 = _ref3$createApi === void 0 ? createApi : _ref3$createApi,
6134
6038
  theme = _ref3.theme,
@@ -6182,12 +6086,12 @@ var WorkspaceModuleProvider = function WorkspaceModuleProvider(_ref) {
6182
6086
  });
6183
6087
  };
6184
6088
 
6185
- var _excluded$4 = ["component", "payload"];
6089
+ var _excluded$5 = ["component", "payload"];
6186
6090
  // takes a component and connects module methods with workspace store
6187
6091
  var ComponentsLookUpWrapper = function ComponentsLookUpWrapper(_ref) {
6188
6092
  var component = _ref.component,
6189
6093
  payload = _ref.payload,
6190
- props = _objectWithoutPropertiesLoose(_ref, _excluded$4);
6094
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$5);
6191
6095
  var RenderComponent = component;
6192
6096
  var dispatch = useDispatch();
6193
6097
  var viewId = payload.id;
@@ -6602,14 +6506,27 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
6602
6506
  var onEdit = function onEdit() {
6603
6507
  onClickWorkspacePresetOption(workspacePreset.id, WorkspacePresetAction.EDIT, workspacePreset);
6604
6508
  };
6605
- var editTitle = testIdPrefix === 'viewpreset' ? 'workspace-edit' : 'workspace-edit-both';
6509
+ var onShare = function onShare() {
6510
+ onClickWorkspacePresetOption(workspacePreset.id, WorkspacePresetAction.SHARE, workspacePreset);
6511
+ };
6606
6512
  var menuItems = [{
6607
6513
  text: t('workspace-duplicate'),
6608
6514
  action: onDuplicate
6609
- }].concat(workspacePreset.scope === 'user' || isAdmin ? [{
6610
- text: t(editTitle),
6515
+ }];
6516
+ (workspacePreset.scope === PresetScope.user || isAdmin) && menuItems.push({
6517
+ text: t('workspace-edit'),
6611
6518
  action: onEdit
6612
- }] : []);
6519
+ });
6520
+ workspacePreset.scope === PresetScope.user && menuItems.push({
6521
+ text: t('workspace-share'),
6522
+ action: onShare,
6523
+ isDisabled: true
6524
+ });
6525
+ workspacePreset.scope === PresetScope.shared && menuItems.push({
6526
+ text: t('workspace-stop-share'),
6527
+ action: onShare,
6528
+ isDisabled: true
6529
+ });
6613
6530
  return jsx(ListItem, {
6614
6531
  disablePadding: true,
6615
6532
  sx: {
@@ -6771,6 +6688,7 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6771
6688
  var panelId = _ref.panelId;
6772
6689
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
6773
6690
  t = _useWorkspaceTranslat.t;
6691
+ var dispatch = useDispatch();
6774
6692
  var _useAuthenticationCon = useAuthenticationContext(),
6775
6693
  currentRole = _useAuthenticationCon.currentRole,
6776
6694
  isLoggedIn = _useAuthenticationCon.isLoggedIn;
@@ -6797,11 +6715,9 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6797
6715
  var viewPresetListFilters = useSelector(function (store) {
6798
6716
  return getViewPresetListFiltersForView(store, panelId, scope);
6799
6717
  });
6800
- var lastViewPresetListFilters = usePrevious(viewPresetListFilters);
6801
6718
  var viewPresetListSearchQuery = useSelector(function (store) {
6802
6719
  return getViewPresetListSearchQueryForView(store, panelId);
6803
6720
  });
6804
- var lastViewPresetListSearchQuery = usePrevious(viewPresetListSearchQuery);
6805
6721
  var relatedSyncGroupIds = useSelector(function (store) {
6806
6722
  return syncGroupsSelectors.getAllTargetGroupsForSource(store, {
6807
6723
  sourceId: panelId
@@ -6813,14 +6729,6 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6813
6729
  var isViewPresetsListFetching = useSelector(function (store) {
6814
6730
  return getViewPresetsIsFetching(store, panelId);
6815
6731
  });
6816
- React.useEffect(function () {
6817
- // Only refetch list on changes to the filters if the dialog is open
6818
- if (lastViewPresetListSearchQuery !== viewPresetListSearchQuery && lastViewPresetListSearchQuery !== undefined || lastViewPresetListFilters !== viewPresetListFilters && lastViewPresetListFilters !== undefined) {
6819
- fetchViewPresets();
6820
- }
6821
- // eslint-disable-next-line react-hooks/exhaustive-deps
6822
- }, [viewPresetListFilters, viewPresetListSearchQuery, lastViewPresetListFilters, lastViewPresetListSearchQuery]);
6823
- var dispatch = useDispatch();
6824
6732
  var openViewPresetsDialog = React.useCallback(function (viewPresetDialogOptions) {
6825
6733
  dispatch(viewPresetActions.openViewPresetDialog({
6826
6734
  viewPresetDialog: viewPresetDialogOptions
@@ -6865,7 +6773,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6865
6773
  panelId: panelId,
6866
6774
  formValues: {
6867
6775
  title: preset.title,
6868
- initialProps: constructInitialProps()
6776
+ initialProps: constructInitialProps(),
6777
+ "abstract": preset["abstract"]
6869
6778
  }
6870
6779
  });
6871
6780
  break;
@@ -6879,7 +6788,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6879
6788
  panelId: panelId,
6880
6789
  viewPresetId: presetId,
6881
6790
  formValues: {
6882
- title: presetTitle
6791
+ title: presetTitle,
6792
+ "abstract": preset["abstract"]
6883
6793
  }
6884
6794
  });
6885
6795
  break;
@@ -6988,9 +6898,10 @@ var ResizeMenu = function ResizeMenu(_ref) {
6988
6898
  children = _ref.children;
6989
6899
  return jsx(Resizable, {
6990
6900
  defaultSize: {
6991
- width: 320,
6901
+ width: 380,
6992
6902
  height: '90%'
6993
6903
  },
6904
+ maxWidth: "100%",
6994
6905
  minHeight: 110,
6995
6906
  minWidth: 280,
6996
6907
  style: {
@@ -7090,7 +7001,6 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7090
7001
  }
7091
7002
  }, [isDefaultOpen, id]);
7092
7003
  var isViewPresetsOptions = id === viewPresetOptionId;
7093
- var editTitle = isViewPresetsOptions ? t('workspace-edit') : t('workspace-edit-both');
7094
7004
  var saveAsTitle = isAdmin && !isViewPresetsOptions ? t('workspace-admin-save-new-workspace') : t('workspace-save-as');
7095
7005
  var isAdminWorkspaceOptions = isAdmin && id === workspacePresetOptionId;
7096
7006
  var options = [{
@@ -7100,7 +7010,7 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7100
7010
  title: saveAsTitle,
7101
7011
  callback: handleSaveAs
7102
7012
  }].concat(!isAdminWorkspaceOptions ? [{
7103
- title: editTitle,
7013
+ title: t('workspace-edit'),
7104
7014
  callback: handleEdit
7105
7015
  }] : [], [{
7106
7016
  title: t('workspace-reset'),
@@ -7225,6 +7135,7 @@ var LoadingIndicatorConnect = function LoadingIndicatorConnect(_ref) {
7225
7135
  });
7226
7136
  };
7227
7137
 
7138
+ var _excluded$4 = ["title", "scope"];
7228
7139
  var customIconStyles = function customIconStyles(theme, isViewPresetDialogOpen) {
7229
7140
  return {
7230
7141
  marginLeft: -1,
@@ -7256,11 +7167,12 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7256
7167
  var _workspaceSelectors$g;
7257
7168
  var _ref2 = (_workspaceSelectors$g = getViewById(store, panelId)) != null ? _workspaceSelectors$g : {},
7258
7169
  title = _ref2.title,
7259
- scope = _ref2.scope;
7260
- return {
7170
+ scope = _ref2.scope,
7171
+ restProps = _objectWithoutPropertiesLoose(_ref2, _excluded$4);
7172
+ return Object.assign({
7261
7173
  title: title,
7262
7174
  scope: scope
7263
- };
7175
+ }, restProps);
7264
7176
  }, shallowEqual);
7265
7177
  var viewComponentType = useSelector(function (store) {
7266
7178
  return getViewComponentType(store, panelId);
@@ -7274,6 +7186,7 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7274
7186
  var relatedSyncGroupIds = useSelector(function (store) {
7275
7187
  return syncGroupsSelectors.getAllTargetGroupsForSource(store, panelId);
7276
7188
  });
7189
+ var presetAbstract = workspaceView == null ? void 0 : workspaceView["abstract"];
7277
7190
  var isNewActive = activeViewPresetId === '';
7278
7191
  var title = workspaceView.title || t('workspace-mappreset-new');
7279
7192
  var viewScope = workspaceView.scope;
@@ -7318,10 +7231,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7318
7231
  viewPresetId: activeViewPresetId,
7319
7232
  panelId: panelId,
7320
7233
  formValues: {
7321
- title: title
7234
+ title: title,
7235
+ "abstract": presetAbstract
7322
7236
  }
7323
7237
  });
7324
- }, [activeViewPresetId, openViewPresetsDialog, panelId, title, t]);
7238
+ }, [activeViewPresetId, openViewPresetsDialog, panelId, title, presetAbstract, t]);
7325
7239
  var onSaveAs = React.useCallback(function () {
7326
7240
  var formTitle = activeViewPresetId ? title : '';
7327
7241
  openViewPresetsDialog({
@@ -7331,10 +7245,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7331
7245
  panelId: panelId,
7332
7246
  formValues: {
7333
7247
  title: formTitle,
7334
- initialProps: constructInitialProps()
7248
+ initialProps: constructInitialProps(),
7249
+ "abstract": presetAbstract
7335
7250
  }
7336
7251
  });
7337
- }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title]);
7252
+ }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
7338
7253
  var onEdit = React.useCallback(function () {
7339
7254
  var formTitle = activeViewPresetId ? title : '';
7340
7255
  openViewPresetsDialog({
@@ -7344,10 +7259,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7344
7259
  viewPresetId: activeViewPresetId,
7345
7260
  formValues: {
7346
7261
  title: formTitle,
7347
- initialProps: constructInitialProps()
7262
+ initialProps: constructInitialProps(),
7263
+ "abstract": presetAbstract
7348
7264
  }
7349
7265
  });
7350
- }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title]);
7266
+ }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
7351
7267
  var onReset = React.useCallback(function () {
7352
7268
  openViewPresetsDialog({
7353
7269
  title: t('workspace-reset-title'),
@@ -7409,11 +7325,54 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7409
7325
  };
7410
7326
  var WorkspaceViewTitleConnect = /*#__PURE__*/React.memo(WorkspaceViewTitleConnectNoMemo);
7411
7327
 
7412
- var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
7413
- var _ref$mosaicNodeId = _ref.mosaicNodeId,
7414
- mosaicNodeId = _ref$mosaicNodeId === void 0 ? '' : _ref$mosaicNodeId,
7415
- path = _ref.path,
7416
- componentsLookUp = _ref.componentsLookUp;
7328
+ var FetchViewPresets = function FetchViewPresets(_ref) {
7329
+ var panelId = _ref.panelId;
7330
+ var dispatch = useDispatch();
7331
+ var _useAuthenticationCon = useAuthenticationContext(),
7332
+ currentRole = _useAuthenticationCon.currentRole;
7333
+ var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
7334
+ var scope = !isAdmin ? 'user' : 'system';
7335
+ var lastAdmin = usePrevious(isAdmin);
7336
+ var viewPresetListFilters = useSelector(function (store) {
7337
+ return getViewPresetListFiltersForView(store, panelId, scope);
7338
+ });
7339
+ var viewPresetListSearchQuery = useSelector(function (store) {
7340
+ return getViewPresetListSearchQueryForView(store, panelId);
7341
+ });
7342
+ var fetchViewPresets = React.useCallback(function (filterParams) {
7343
+ dispatch(viewPresetActions.fetchViewPresets({
7344
+ panelId: panelId,
7345
+ filterParams: filterParams
7346
+ }));
7347
+ }, [dispatch, panelId]);
7348
+ React.useEffect(function () {
7349
+ var filterParams = constructFilterParams(viewPresetListFilters, viewPresetListSearchQuery);
7350
+ fetchViewPresets(filterParams);
7351
+ }, [fetchViewPresets, viewPresetListFilters, viewPresetListSearchQuery]);
7352
+ React.useEffect(function () {
7353
+ if (isAdmin !== lastAdmin && lastAdmin !== undefined) {
7354
+ // reset list filter when user changes role
7355
+ var filters = [{
7356
+ id: 'system',
7357
+ isSelected: true
7358
+ }, {
7359
+ id: 'user',
7360
+ isSelected: !isAdmin
7361
+ }];
7362
+ dispatch(viewPresetActions.setFilterChips({
7363
+ panelId: panelId,
7364
+ filters: filters
7365
+ }));
7366
+ }
7367
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7368
+ }, [isAdmin]);
7369
+ return null;
7370
+ };
7371
+ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref2) {
7372
+ var _ref2$mosaicNodeId = _ref2.mosaicNodeId,
7373
+ mosaicNodeId = _ref2$mosaicNodeId === void 0 ? '' : _ref2$mosaicNodeId,
7374
+ path = _ref2.path,
7375
+ componentsLookUp = _ref2.componentsLookUp;
7417
7376
  var dispatch = useDispatch();
7418
7377
  var view = useSelector(function (store) {
7419
7378
  return getViewById(store, mosaicNodeId);
@@ -7436,23 +7395,23 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
7436
7395
  var addView = React.useCallback(function (view) {
7437
7396
  dispatch(workspaceActions.setNewWorkspaceView(view));
7438
7397
  }, [dispatch]);
7439
- var registerView = React.useCallback(function (_ref2) {
7440
- var panelId = _ref2.panelId,
7441
- mapPresetId = _ref2.mapPresetId;
7398
+ var registerView = React.useCallback(function (_ref3) {
7399
+ var panelId = _ref3.panelId,
7400
+ mapPresetId = _ref3.mapPresetId;
7442
7401
  dispatch(viewPresetActions.registerViewPreset({
7443
7402
  panelId: panelId,
7444
7403
  viewPresetId: mapPresetId
7445
7404
  }));
7446
7405
  }, [dispatch]);
7447
- var unregisterView = React.useCallback(function (_ref3) {
7448
- var panelId = _ref3.panelId;
7406
+ var unregisterView = React.useCallback(function (_ref4) {
7407
+ var panelId = _ref4.panelId;
7449
7408
  dispatch(viewPresetActions.unregisterViewPreset({
7450
7409
  panelId: panelId
7451
7410
  }));
7452
7411
  }, [dispatch]);
7453
- var toggleViewPresetDialog = React.useCallback(function (_ref4) {
7454
- var panelId = _ref4.panelId,
7455
- isViewPresetDialogOpen = _ref4.isViewPresetDialogOpen;
7412
+ var toggleViewPresetDialog = React.useCallback(function (_ref5) {
7413
+ var panelId = _ref5.panelId,
7414
+ isViewPresetDialogOpen = _ref5.isViewPresetDialogOpen;
7456
7415
  dispatch(viewPresetActions.toggleViewPresetListDialog({
7457
7416
  panelId: panelId,
7458
7417
  isViewPresetListDialogOpen: isViewPresetDialogOpen
@@ -7543,7 +7502,9 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
7543
7502
  title: errorViewPreset,
7544
7503
  shouldClose: true
7545
7504
  })
7546
- }), defaultComponentsLookupResult, genericComponentsLookupResult, isViewPresetDialogOpen && jsx(ViewPresetMenu, {
7505
+ }), defaultComponentsLookupResult, genericComponentsLookupResult, jsx(FetchViewPresets, {
7506
+ panelId: mosaicNodeId
7507
+ }), isViewPresetDialogOpen && jsx(ViewPresetMenu, {
7547
7508
  panelId: mosaicNodeId,
7548
7509
  closeMenu: function closeMenu() {
7549
7510
  toggleViewPresetDialog({
@@ -7553,7 +7514,7 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
7553
7514
  }
7554
7515
  })]
7555
7516
  });
7556
- }, _.isEqual);
7517
+ }, isEqual);
7557
7518
 
7558
7519
  var WorkspaceView = function WorkspaceView(_ref) {
7559
7520
  var screenConfig = _ref.screenConfig,
@@ -7753,11 +7714,9 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7753
7714
  var workspaceListFilters = useSelector(function (store) {
7754
7715
  return getWorkspaceListFilters(store, scope);
7755
7716
  });
7756
- var lastWorkspaceListFilters = usePrevious(workspaceListFilters);
7757
7717
  var workspaceSearchQuery = useSelector(function (store) {
7758
7718
  return getWorkspaceListSearchQuery(store);
7759
7719
  });
7760
- var lastWorkspaceSearchQuery = usePrevious(workspaceSearchQuery);
7761
7720
  var isFetching = useSelector(function (store) {
7762
7721
  return getIsWorkspaceListFetching(store);
7763
7722
  });
@@ -7770,7 +7729,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7770
7729
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
7771
7730
  t = _useWorkspaceTranslat.t;
7772
7731
  var fetchWorkspaceList = React.useCallback(function () {
7773
- var filterParams = constructFilterParams$1(workspaceListFilters, workspaceSearchQuery);
7732
+ var filterParams = constructFilterParams(workspaceListFilters, workspaceSearchQuery);
7774
7733
  dispatch(workspaceListActions.fetchWorkspaceList(filterParams));
7775
7734
  }, [dispatch, workspaceListFilters, workspaceSearchQuery]);
7776
7735
  var fetchWorkspace = React.useCallback(function (workspaceId) {
@@ -7795,13 +7754,6 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7795
7754
  searchQuery: searchQuery
7796
7755
  }));
7797
7756
  }, [dispatch]);
7798
- React.useEffect(function () {
7799
- // Only refetch list on changes to the filters if the dialog is open
7800
- if (lastWorkspaceListFilters !== workspaceListFilters && lastWorkspaceListFilters !== undefined || lastWorkspaceSearchQuery !== workspaceSearchQuery && lastWorkspaceSearchQuery !== undefined) {
7801
- fetchWorkspaceList();
7802
- }
7803
- // eslint-disable-next-line react-hooks/exhaustive-deps
7804
- }, [workspaceListFilters, workspaceSearchQuery, lastWorkspaceListFilters, lastWorkspaceSearchQuery]);
7805
7757
  // If we're loading the `New workspace` preset as defined in the FE, use this instead of retrieving from BE
7806
7758
  var onClickNewPreset = React.useCallback(function () {
7807
7759
  dispatch(routerActions.navigateToUrl({
@@ -7839,18 +7791,6 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7839
7791
  var presetTitle = affectedPreset == null ? void 0 : affectedPreset.title;
7840
7792
  switch (workspaceAction) {
7841
7793
  case WorkspacePresetAction.DUPLICATE:
7842
- {
7843
- setWorkspaceActionDialogOptions({
7844
- action: workspaceAction,
7845
- presetId: presetId,
7846
- formValues: {
7847
- title: presetTitle,
7848
- "abstract": affectedPreset["abstract"],
7849
- scope: scope
7850
- }
7851
- });
7852
- break;
7853
- }
7854
7794
  case WorkspacePresetAction.EDIT:
7855
7795
  {
7856
7796
  setWorkspaceActionDialogOptions({
@@ -7891,6 +7831,11 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7891
7831
  });
7892
7832
  break;
7893
7833
  }
7834
+ case WorkspacePresetAction.SHARE:
7835
+ {
7836
+ // TODO
7837
+ break;
7838
+ }
7894
7839
  }
7895
7840
  };
7896
7841
  var isAllSelected = workspaceListFilters.every(function (filter) {
@@ -8021,21 +7966,37 @@ var WorkspaceMenuButton = function WorkspaceMenuButton(_ref) {
8021
7966
  });
8022
7967
  };
8023
7968
 
8024
- var FetchInitialPresets$1 = function FetchInitialPresets() {
7969
+ var FetchWorkspacePresets = function FetchWorkspacePresets() {
8025
7970
  var dispatch = useDispatch();
8026
7971
  var _useAuthenticationCon = useAuthenticationContext(),
8027
7972
  currentRole = _useAuthenticationCon.currentRole;
8028
7973
  var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
8029
- var fetchInitialPresets = React__default.useCallback(function (params) {
7974
+ var scope = !isAdmin ? 'user' : 'system';
7975
+ var lastAdmin = usePrevious(isAdmin);
7976
+ var workspaceListFilters = useSelector(function (store) {
7977
+ return getWorkspaceListFilters(store, scope);
7978
+ });
7979
+ var workspaceSearchQuery = useSelector(getWorkspaceListSearchQuery);
7980
+ var fetchWorkspacePresets = React__default.useCallback(function (params) {
8030
7981
  dispatch(workspaceListActions.fetchWorkspaceList(params));
8031
7982
  }, [dispatch]);
8032
7983
  React__default.useEffect(function () {
8033
- var params = !isAdmin ? {} : {
8034
- scope: 'system'
8035
- };
8036
- fetchInitialPresets(params);
8037
- // eslint-disable-next-line react-hooks/exhaustive-deps
8038
- }, [isAdmin]);
7984
+ var filterParams = constructFilterParams(workspaceListFilters, workspaceSearchQuery);
7985
+ fetchWorkspacePresets(filterParams);
7986
+ }, [fetchWorkspacePresets, workspaceListFilters, workspaceSearchQuery]);
7987
+ React__default.useEffect(function () {
7988
+ if (isAdmin !== lastAdmin && lastAdmin !== undefined) {
7989
+ // reset list filter when user changes role
7990
+ var filters = [{
7991
+ id: 'system',
7992
+ isSelected: true
7993
+ }, {
7994
+ id: 'user',
7995
+ isSelected: !isAdmin
7996
+ }];
7997
+ dispatch(workspaceListActions.setFilterChips(filters));
7998
+ }
7999
+ }, [dispatch, isAdmin, lastAdmin]);
8039
8000
  return null;
8040
8001
  };
8041
8002
  var WorkspaceMenuButtonConnect = function WorkspaceMenuButtonConnect() {
@@ -8049,7 +8010,7 @@ var WorkspaceMenuButtonConnect = function WorkspaceMenuButtonConnect() {
8049
8010
  return getIsWorkspaceListDialogOpen(store);
8050
8011
  });
8051
8012
  return jsxs(Fragment, {
8052
- children: [jsx(FetchInitialPresets$1, {}), jsx(WorkspaceMenuButton, {
8013
+ children: [jsx(FetchWorkspacePresets, {}), jsx(WorkspaceMenuButton, {
8053
8014
  showMenu: isWorkspaceListDialogOpen,
8054
8015
  onToggleDialog: setListDialogOpen
8055
8016
  })]
@@ -8246,6 +8207,7 @@ var HelperText = function HelperText(_ref) {
8246
8207
  children: text
8247
8208
  });
8248
8209
  };
8210
+ var inputMargin = 2;
8249
8211
  var ViewPresetItem = function ViewPresetItem(_ref2) {
8250
8212
  var index = _ref2.index,
8251
8213
  viewPreset = _ref2.viewPreset,
@@ -8285,6 +8247,7 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
8285
8247
  }
8286
8248
  }, [error, fieldNameTitle, setError]);
8287
8249
  var shouldShowInput = isNew && isChecked || isChecked && !isAdmin && viewPreset.scope === 'system';
8250
+ var isInputDisabled = isLoading || !hasChanges;
8288
8251
  return jsxs(React__default.Fragment, {
8289
8252
  children: [jsx(FormControlLabel, {
8290
8253
  control: jsx(Checkbox, {}),
@@ -8315,11 +8278,23 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
8315
8278
  rules: {
8316
8279
  required: true
8317
8280
  },
8318
- disabled: isLoading || !hasChanges,
8281
+ disabled: isInputDisabled,
8319
8282
  sx: {
8320
- marginBottom: 2
8283
+ mb: inputMargin
8321
8284
  },
8322
8285
  error: error !== undefined
8286
+ }), jsx(ReactHookFormTextField, {
8287
+ name: "views." + index + ".abstract",
8288
+ label: t('workspace-dialog-abstract'),
8289
+ rules: {
8290
+ required: false
8291
+ },
8292
+ multiline: true,
8293
+ rows: 3,
8294
+ disabled: isInputDisabled,
8295
+ sx: {
8296
+ mb: inputMargin
8297
+ }
8323
8298
  }), jsx(HelperText, {
8324
8299
  text: t(getNewPresetWarningText(isAdmin, isNew))
8325
8300
  })]
@@ -8557,7 +8532,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8557
8532
  }
8558
8533
  case WorkspacePresetAction.EDIT:
8559
8534
  {
8560
- return t('workspace-edit-both');
8535
+ return t('workspace-edit');
8561
8536
  }
8562
8537
  case WorkspacePresetAction.SAVE:
8563
8538
  {
@@ -8725,6 +8700,7 @@ var validateTitle = function validateTitle(value) {
8725
8700
  // TODO: use translation from form-fields https://gitlab.com/opengeoweb/opengeoweb/-/issues/4240
8726
8701
  return !value.trim().length ? 'This field is required' : true;
8727
8702
  };
8703
+ var marginBottom = 2;
8728
8704
  var ViewPresetsForm = function ViewPresetsForm(_ref) {
8729
8705
  var viewComponentType = _ref.viewComponentType,
8730
8706
  error = _ref.error,
@@ -8755,7 +8731,7 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
8755
8731
  return jsxs(Fragment, {
8756
8732
  children: [Boolean(error) && jsx(Box, {
8757
8733
  sx: {
8758
- marginBottom: 2
8734
+ mb: marginBottom
8759
8735
  },
8760
8736
  children: jsx(AlertBanner, {
8761
8737
  title: error
@@ -8772,7 +8748,18 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
8772
8748
  validateTitle: validateTitle
8773
8749
  }
8774
8750
  },
8775
- defaultValue: title
8751
+ defaultValue: title,
8752
+ sx: {
8753
+ mb: marginBottom
8754
+ }
8755
+ }), jsx(ReactHookFormTextField, {
8756
+ name: "abstract",
8757
+ label: t('workspace-dialog-abstract'),
8758
+ rules: {
8759
+ required: false
8760
+ },
8761
+ multiline: true,
8762
+ rows: 3
8776
8763
  }), hiddenFields.map(function (_ref2) {
8777
8764
  var name = _ref2.name,
8778
8765
  value = _ref2.value;
@@ -8866,77 +8853,75 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8866
8853
  var confirmLabel = getConfirmLabel(action);
8867
8854
  var onFormSubmit = /*#__PURE__*/function () {
8868
8855
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formValues) {
8869
- var scope, newFormValues, newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, submitError, message;
8856
+ var scope, handleSuccess, newFormValues, newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, submitError, message;
8870
8857
  return _regeneratorRuntime().wrap(function _callee$(_context) {
8871
8858
  while (1) switch (_context.prev = _context.next) {
8872
8859
  case 0:
8873
8860
  scope = isAdmin ? 'system' : formValues.scope;
8861
+ handleSuccess = function handleSuccess(id) {
8862
+ setIsLoading(false);
8863
+ onClose();
8864
+ onSuccess(action, id, newFormValues.title, newFormValues["abstract"]);
8865
+ };
8874
8866
  newFormValues = Object.assign({}, formValues, {
8875
8867
  scope: scope
8876
8868
  });
8877
- _context.prev = 2;
8869
+ _context.prev = 3;
8878
8870
  setError(null);
8879
8871
  setIsLoading(true);
8880
8872
  _context.t0 = action;
8881
- _context.next = _context.t0 === PresetAction.SAVE_AS ? 8 : _context.t0 === PresetAction.DELETE ? 15 : _context.t0 === PresetAction.EDIT ? 21 : _context.t0 === PresetAction.RESET ? 32 : 37;
8873
+ _context.next = _context.t0 === PresetAction.SAVE_AS ? 9 : _context.t0 === PresetAction.DELETE ? 14 : _context.t0 === PresetAction.EDIT ? 18 : _context.t0 === PresetAction.RESET ? 27 : 30;
8882
8874
  break;
8883
- case 8:
8884
- _context.next = 10;
8875
+ case 9:
8876
+ _context.next = 11;
8885
8877
  return api.saveViewPresetAs(newFormValues);
8886
- case 10:
8878
+ case 11:
8887
8879
  newId = _context.sent;
8888
- setIsLoading(false);
8889
- onClose();
8890
- onSuccess(action, newId, newFormValues.title);
8891
- return _context.abrupt("break", 38);
8892
- case 15:
8893
- _context.next = 17;
8880
+ handleSuccess(newId);
8881
+ return _context.abrupt("break", 31);
8882
+ case 14:
8883
+ _context.next = 16;
8894
8884
  return api.deleteViewPreset(viewPresetId);
8895
- case 17:
8896
- setIsLoading(false);
8897
- onClose();
8898
- onSuccess(action, viewPresetId, newFormValues.title);
8899
- return _context.abrupt("break", 38);
8900
- case 21:
8901
- _context.next = 23;
8885
+ case 16:
8886
+ handleSuccess(viewPresetId);
8887
+ return _context.abrupt("break", 31);
8888
+ case 18:
8889
+ _context.next = 20;
8902
8890
  return api.getViewPreset(viewPresetId);
8903
- case 23:
8891
+ case 20:
8904
8892
  _yield$api$getViewPre = _context.sent;
8905
8893
  originalViewPreset = _yield$api$getViewPre.data;
8906
8894
  viewPresetEdited = Object.assign({}, originalViewPreset, {
8907
8895
  title: newFormValues.title,
8896
+ "abstract": newFormValues["abstract"],
8908
8897
  scope: scope
8909
8898
  });
8910
- _context.next = 28;
8899
+ _context.next = 25;
8911
8900
  return api.saveViewPreset(viewPresetId, viewPresetEdited);
8912
- case 28:
8913
- setIsLoading(false);
8914
- onClose();
8915
- onSuccess(action, viewPresetId, newFormValues.title);
8916
- return _context.abrupt("break", 38);
8917
- case 32:
8901
+ case 25:
8902
+ handleSuccess(viewPresetId);
8903
+ return _context.abrupt("break", 31);
8904
+ case 27:
8918
8905
  onReset(viewPresetId);
8919
- setIsLoading(false);
8920
- onClose();
8921
- onSuccess(action, viewPresetId, newFormValues.title);
8922
- return _context.abrupt("break", 38);
8923
- case 37:
8924
- return _context.abrupt("break", 38);
8925
- case 38:
8926
- _context.next = 46;
8906
+ handleSuccess(viewPresetId);
8907
+ return _context.abrupt("break", 31);
8908
+ case 30:
8909
+ return _context.abrupt("break", 31);
8910
+ case 31:
8911
+ _context.next = 39;
8927
8912
  break;
8928
- case 40:
8929
- _context.prev = 40;
8930
- _context.t1 = _context["catch"](2);
8913
+ case 33:
8914
+ _context.prev = 33;
8915
+ _context.t1 = _context["catch"](3);
8931
8916
  setIsLoading(false);
8932
8917
  submitError = _context.t1;
8933
8918
  message = isAxiosError$1(submitError) ? getAxiosErrorMessage(submitError) : submitError.message;
8934
8919
  setError(message);
8935
- case 46:
8920
+ case 39:
8936
8921
  case "end":
8937
8922
  return _context.stop();
8938
8923
  }
8939
- }, _callee, null, [[2, 40]]);
8924
+ }, _callee, null, [[3, 33]]);
8940
8925
  }));
8941
8926
  return function onFormSubmit(_x) {
8942
8927
  return _ref2.apply(this, arguments);
@@ -9035,13 +9020,14 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
9035
9020
  var onClose = function onClose() {
9036
9021
  closeDialog();
9037
9022
  };
9038
- var onSuccess = function onSuccess(action, newViewPresetId, title) {
9023
+ var onSuccess = function onSuccess(action, newViewPresetId, title, _abstract) {
9039
9024
  dispatch(viewPresetActions.onSuccessViewPresetAction({
9040
9025
  panelId: panelId,
9041
9026
  viewPresetId: newViewPresetId,
9042
9027
  action: action,
9043
9028
  title: title,
9044
- scope: scope
9029
+ scope: scope,
9030
+ "abstract": _abstract
9045
9031
  }));
9046
9032
  };
9047
9033
  var isOpen = dialogOptions !== undefined;
@@ -9059,28 +9045,13 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
9059
9045
  }));
9060
9046
  };
9061
9047
 
9062
- var FetchInitialPresets = function FetchInitialPresets(_ref) {
9063
- var isAdmin = _ref.isAdmin;
9064
- var dispatch = useDispatch();
9065
- var fetchInitialPresets = React.useCallback(function (params) {
9066
- dispatch(viewPresetActions.fetchInitialViewPresets(params));
9067
- }, [dispatch]);
9068
- React.useEffect(function () {
9069
- var params = !isAdmin ? {} : {
9070
- scope: 'system'
9071
- };
9072
- fetchInitialPresets(params);
9073
- // eslint-disable-next-line react-hooks/exhaustive-deps
9074
- }, [isAdmin]);
9075
- return null;
9076
- };
9077
- var WorkspaceDetail = function WorkspaceDetail(_ref2) {
9078
- var initialWorkspaceId = _ref2.initialWorkspaceId,
9079
- workspaceId = _ref2.workspaceId,
9080
- children = _ref2.children,
9081
- componentsLookUp = _ref2.componentsLookUp,
9082
- _ref2$isSnapshot = _ref2.isSnapshot,
9083
- isSnapshot = _ref2$isSnapshot === void 0 ? false : _ref2$isSnapshot;
9048
+ var WorkspaceDetail = function WorkspaceDetail(_ref) {
9049
+ var initialWorkspaceId = _ref.initialWorkspaceId,
9050
+ workspaceId = _ref.workspaceId,
9051
+ children = _ref.children,
9052
+ componentsLookUp = _ref.componentsLookUp,
9053
+ _ref$isSnapshot = _ref.isSnapshot,
9054
+ isSnapshot = _ref$isSnapshot === void 0 ? false : _ref$isSnapshot;
9084
9055
  var dispatch = useDispatch();
9085
9056
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
9086
9057
  t = _useWorkspaceTranslat.t;
@@ -9132,9 +9103,7 @@ var WorkspaceDetail = function WorkspaceDetail(_ref2) {
9132
9103
  width: '100%',
9133
9104
  height: '100%'
9134
9105
  },
9135
- children: [jsx(FetchInitialPresets, {
9136
- isAdmin: isAdmin
9137
- }), isLoading && jsx(LinearProgress, {
9106
+ children: [isLoading && jsx(LinearProgress, {
9138
9107
  "data-testid": "loading-bar",
9139
9108
  color: "secondary",
9140
9109
  sx: {
@@ -9193,4 +9162,4 @@ var WorkspaceDetail = function WorkspaceDetail(_ref2) {
9193
9162
  });
9194
9163
  };
9195
9164
 
9196
- export { ComponentsLookUpWrapper, DemoWrapper, PresetAction, ViewPresetErrorComponent, ViewPresetErrorType, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, workspaceActions as actions, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, getEmptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, viewPresetActions, reducer as viewPresetsListReducer, viewPresetsListener, reducer$2 as viewPresetsReducer, workspaceListActions, workspaceListListener, reducer$3 as workspaceListReducer, workspaceListener, workspaceModuleConfig, reducer$1 as workspaceReducer, routes as workspaceRoutes, workspaceTranslations };
9165
+ export { ComponentsLookUpWrapper, DemoWrapper, PresetAction, ViewPresetErrorComponent, ViewPresetErrorType, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, getEmptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, viewPresetActions, viewPresetsListReducer, viewPresetsListener, viewPresetsReducer, workspaceActions, workspaceListActions, workspaceListListener, workspaceListReducer, workspaceListener, workspaceMiddlewares, workspaceReducer, workspaceReducersMap, routes as workspaceRoutes, workspaceTranslations };