@opengeoweb/workspace 9.37.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
2
- import { syncGroupsTypes, syncGroupsActions, layerActions, mapStoreActions, uiActions, genericActions, mapActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, coreModuleReducersMap, routerReducersMap, coreModuleMiddlewares, routerMiddlewares, linkComponentTypesConstants, uiTypes, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
3
- import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext } from '@opengeoweb/api';
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';
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
4
  import _, { chunk, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
5
5
  import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, Mosaic } from 'react-mosaic-component';
6
6
  import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducersMap, timeSeriesMiddlewares } from '@opengeoweb/timeseries';
7
+ import { publicWarningActions, WARN_NAMESPACE, warningsTranslations, publicWarningsSelectors } from '@opengeoweb/warnings';
7
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';
8
9
  import { snackbarTypes, snackbarActions, snackbarReducersMap, snackbarMiddlewares, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
9
10
  import { isAxiosError } from 'axios';
@@ -12,6 +13,7 @@ import { ThemeWrapper, lightTheme, Link, LinkOff, SplitVertical, SplitHorizontal
12
13
  import { Provider, useDispatch, useSelector, useStore, shallowEqual } from 'react-redux';
13
14
  import { initReactI18next, useTranslation, I18nextProvider } from 'react-i18next';
14
15
  import { AuthenticationProvider, useAuthenticationContext, GEOWEB_ROLE_PRESETS_ADMIN } from '@opengeoweb/authentication';
16
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
15
17
  import i18n from 'i18next';
16
18
  import { WEBMAP_REACT_NAMESPACE, webmapReactTranslations } from '@opengeoweb/webmap-react';
17
19
  import { CORE_NAMESPACE, coreTranslations } from '@opengeoweb/core';
@@ -94,14 +96,16 @@ var en = {
94
96
  "workspace-admin-save-new-viewpreset": "This new viewpreset will be added to the system presets.",
95
97
  "workspace-admin-save-new-viewpreset-warning": "Saving changes to this system preset will impact other presets.",
96
98
  "workspace-admin-save-new-viewpreset-title": "Save new system viewpreset",
97
- "workspace-admin-reset-workspace": "Reset",
98
- "workspace-admin-reset-workspace-title": "Reset to original",
99
+ "workspace-reset": "Reset",
100
+ "workspace-reset-title": "Reset to original",
99
101
  "workspace-dialog-delete-system": "Delete system workspace",
100
102
  "workspace-dialog-confirm-delete-system": "The system workspace will be deleted, but all the view presets used will remain intact.",
101
103
  "workspace-dialog-confirm-delete-user": "The workspace will be deleted, but all the view presets used will remain intact.",
102
104
  "workspace-list-success-delete-system": "\"{{TITLE}}\" has been successfully removed from the system's workspaces.",
103
105
  "workspace-link-location-header": "Location",
104
- "workspace-link": "Link"
106
+ "workspace-link": "Link",
107
+ "workspace-dialog-confirm-reset-view-message": "The view will be reset and all changes will be lost. Are you sure you want to continue?",
108
+ "workspace-viewpreset-success-reset": "View preset \"{{TITLE}}\" has been reset succesfully"
105
109
  };
106
110
  var fi = {
107
111
  "workspace-menu": "Workspace menu",
@@ -171,12 +175,14 @@ var fi = {
171
175
  "workspace-admin-save-new-viewpreset": "ei käännetty",
172
176
  "workspace-admin-save-new-viewpreset-warning": "ei käännetty",
173
177
  "workspace-admin-save-new-viewpreset-title": "ei käännetty",
174
- "workspace-admin-reset-workspace": "ei käännetty",
175
- "workspace-admin-reset-workspace-title": "ei käännetty",
178
+ "workspace-reset": "Palauta alkuperäinen",
179
+ "workspace-reset-title": "ei käännetty",
176
180
  "workspace-dialog-confirm-delete-system": "ei käännetty",
177
181
  "workspace-dialog-confirm-delete-user": "Workspace poistetaan, mutta kaikki view presetit säilyvät tallennettuina.",
178
182
  "workspace-link-location-header": "Sijainti",
179
- "workspace-link": "Link"
183
+ "workspace-link": "Link",
184
+ "workspace-dialog-confirm-reset-view-message": "ei käännetty",
185
+ "workspace-viewpreset-success-reset": "ei käännetty"
180
186
  };
181
187
  var no = {
182
188
  "workspace-menu": "Arbeidsrommeny",
@@ -246,12 +252,14 @@ var no = {
246
252
  "workspace-admin-save-new-viewpreset": "Denne nye vinduet blir algt til systemets forhåndsinnstillinger.",
247
253
  "workspace-admin-save-new-viewpreset-warning": "Lagring av endringer til denne systempreset vil påvirke andre presets.",
248
254
  "workspace-admin-save-new-viewpreset-title": "Lagre ny systempreset",
249
- "workspace-admin-reset-workspace": "Tilbakestill",
250
- "workspace-admin-reset-workspace-title": "Tilbakestill til original",
255
+ "workspace-reset": "Tilbakestill",
256
+ "workspace-reset-title": "Tilbakestill til original",
251
257
  "workspace-dialog-confirm-delete-system": "Systemets arbeidsrom vil bli slettet, men alle vinduer som er brukt vil forbli intakte.",
252
258
  "workspace-dialog-confirm-delete-user": "Arbeidsrommet blir slettet, men alle vinduer som er brukt vil forbli intakte.",
253
259
  "workspace-link-location-header": "Lokasjon",
254
- "workspace-link": "Link"
260
+ "workspace-link": "Link",
261
+ "workspace-dialog-confirm-reset-view-message": "Ikke oversatt",
262
+ "workspace-viewpreset-success-reset": "Ikke oversatt"
255
263
  };
256
264
  var nl = {
257
265
  "workspace-menu": "Workspace menu",
@@ -301,7 +309,7 @@ var nl = {
301
309
  "workspace-list-success-delete": "Workspace \"{{TITLE}}\" succesvol verwijderd",
302
310
  "workspace-list-success-duplicate": "Workspace \"{{TITLE}}\" succesvol opgeslagen",
303
311
  "workspace-list-success-edit": "Workspace \"{{TITLE}}\" succesvol aangepast",
304
- "workspace-list-success-reset": "Workspace\"{{TITLE}}\" herstelt naar origineel ",
312
+ "workspace-list-success-reset": "Workspace\"{{TITLE}}\" succesvol hersteld naar origineel",
305
313
  "workspace-list-success-save": "Workspace \"{{TITLE}}\" succesvol opgeslagen",
306
314
  "workspace-save-error": "Workspace opslaan \"{{TITLE}}\" mislukt",
307
315
  "workspace-error-generic": "Er is iets mis gegaan, probeer het opnieuw",
@@ -321,15 +329,17 @@ var nl = {
321
329
  "workspace-admin-save-new-viewpreset": "Deze nieuwe viewpreset zal worden toegevoegd aan de systeem presets.",
322
330
  "workspace-admin-save-new-viewpreset-warning": "Het opslaan van wijzigingen aan systeem presets kan leiden tot veranderingen in andere presets.",
323
331
  "workspace-admin-save-new-viewpreset-title": "Opslaan als systeem viewpreset",
324
- "workspace-admin-reset-workspace": "Workspace herstellen",
325
- "workspace-admin-reset-workspace-title": "Herstellen naar origineel",
332
+ "workspace-reset": "Herstellen",
333
+ "workspace-reset-title": "Herstellen naar origineel",
326
334
  "workspace-dialog-delete-system": "Verwijder systeem workspace",
327
335
  "workspace-dialog-confirm-delete-system": "Deze systeem workspace zal worden verwijderd, maar alle gebruikte viewpresets zullen intact blijven.",
328
336
  "workspace-dialog-confirm-reset-personal-message": "De workspace zal worden hersteld en alle aanpassing zullen worden verwijderd. Weet je zeker dat je door wilt gaan?",
329
337
  "workspace-list-success-delete-system": "\"{{TITLE}}\" is succesvol verwijderd uit de systeem workspaces.",
330
338
  "workspace-dialog-confirm-delete-user": "Deze workspace zal worden verwijderd, maar alle gebruikte view presets zullen intact blijven.",
331
339
  "workspace-link-location-header": "Locatie",
332
- "workspace-link": "Link"
340
+ "workspace-link": "Link",
341
+ "workspace-dialog-confirm-reset-view-message": "De viewpreset zal worden hersteld en alle aanpassing zullen worden verwijderd. Weet je zeker dat je door wilt gaan?",
342
+ "workspace-viewpreset-success-reset": "Viewpreset \"{{TITLE}}\" succesvol hersteld naar origineel"
333
343
  };
334
344
  var workspaceTranslations = {
335
345
  en: en,
@@ -1062,6 +1072,7 @@ var PresetAction;
1062
1072
  PresetAction["SAVE_AS"] = "Save as";
1063
1073
  PresetAction["SHARE"] = "Share";
1064
1074
  PresetAction["EDIT"] = "Edit";
1075
+ PresetAction["RESET"] = "Reset";
1065
1076
  })(PresetAction || (PresetAction = {}));
1066
1077
 
1067
1078
  /* *
@@ -1101,8 +1112,9 @@ var viewPresetsAdapter = createEntityAdapter({
1101
1112
  }
1102
1113
  });
1103
1114
  var initialState$2 = viewPresetsAdapter.getInitialState();
1115
+ var warningsPresetChangeActions = [publicWarningActions.setWarningFilters];
1104
1116
  var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
1105
- var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapStoreActions.layerMoveLayer, mapStoreActions.setAutoLayerId, mapStoreActions.toggleAutoUpdate, mapStoreActions.mapStartAnimation, mapStoreActions.mapStopAnimation, mapStoreActions.toggleTimeSliderIsVisible, mapStoreActions.setTimeStep, mapStoreActions.setAnimationDelay, mapStoreActions.toggleTimestepAuto, mapStoreActions.setAnimationStartTime, mapStoreActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
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];
1106
1118
  var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle];
1107
1119
  var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
1108
1120
  var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
@@ -1399,14 +1411,28 @@ var slice$2 = createSlice({
1399
1411
  });
1400
1412
  }
1401
1413
  });
1402
- syncGroupChangeActions.map(function (syncGroupAction) {
1403
- return builder.addCase(syncGroupAction, function (draft, action) {
1414
+ warningsPresetChangeActions.map(function (warningsAction) {
1415
+ return builder.addCase(warningsAction, function (draft, action) {
1404
1416
  var _action$payload13 = action.payload,
1405
1417
  origin = _action$payload13.origin,
1406
- targetId = _action$payload13.targetId;
1418
+ panelId = _action$payload13.panelId;
1419
+ if (origin === 'user' && panelId) {
1420
+ var entity = draft.entities[panelId];
1421
+ if (entity && !(entity != null && entity.hasChanges)) {
1422
+ entity.hasChanges = true;
1423
+ viewPresetsAdapter.setOne(draft, entity);
1424
+ }
1425
+ }
1426
+ });
1427
+ });
1428
+ syncGroupChangeActions.map(function (syncGroupAction) {
1429
+ return builder.addCase(syncGroupAction, function (draft, action) {
1430
+ var _action$payload14 = action.payload,
1431
+ origin = _action$payload14.origin,
1432
+ targetId = _action$payload14.targetId;
1407
1433
  if (origin === 'user') {
1408
1434
  var entity = draft.entities[targetId];
1409
- if (entity) {
1435
+ if (entity && !(entity != null && entity.hasChanges)) {
1410
1436
  entity.hasChanges = true;
1411
1437
  viewPresetsAdapter.setOne(draft, entity);
1412
1438
  }
@@ -1415,9 +1441,9 @@ var slice$2 = createSlice({
1415
1441
  });
1416
1442
  mapPresetChangeActions.map(function (mapPresetAction) {
1417
1443
  return builder.addCase(mapPresetAction, function (draft, action) {
1418
- var _action$payload14 = action.payload,
1419
- mapId = _action$payload14.mapId,
1420
- origin = _action$payload14.origin;
1444
+ var _action$payload15 = action.payload,
1445
+ mapId = _action$payload15.mapId,
1446
+ origin = _action$payload15.origin;
1421
1447
  var isChangeOriginSupported = supportedMapActionOrigins.indexOf(origin) >= 0;
1422
1448
  if (isChangeOriginSupported && mapId) {
1423
1449
  var entity = draft.entities[mapId];
@@ -1430,9 +1456,9 @@ var slice$2 = createSlice({
1430
1456
  });
1431
1457
  timeSeriesPresetChangeActions.map(function (timeSeriesPresetAction) {
1432
1458
  return builder.addCase(timeSeriesPresetAction, function (draft, action) {
1433
- var _action$payload15 = action.payload,
1434
- panelId = _action$payload15.panelId,
1435
- origin = _action$payload15.origin;
1459
+ var _action$payload16 = action.payload,
1460
+ panelId = _action$payload16.panelId,
1461
+ origin = _action$payload16.origin;
1436
1462
  var isChangeOriginSupported = supportedTimeSeriesActionOrigins.indexOf(origin) >= 0;
1437
1463
  var changesRelevantProperties = timeSeriesPresetAction.type === timeSeriesActions.patchParameter.type ? Object.keys(action.payload.parameter).filter(function (key) {
1438
1464
  return key !== 'id' && key !== 'instanceId';
@@ -1883,23 +1909,27 @@ var slice$1 = createSlice({
1883
1909
  var _action$payload5 = action.payload,
1884
1910
  panelId = _action$payload5.panelId,
1885
1911
  title = _action$payload5.title,
1886
- presetAction = _action$payload5.action;
1912
+ presetAction = _action$payload5.action,
1913
+ scope = _action$payload5.scope;
1887
1914
  var entity = draft.views.byId[panelId];
1888
1915
  if (entity && presetAction !== PresetAction.DELETE) {
1889
1916
  entity.title = title;
1890
- entity.scope = 'user';
1917
+ entity.scope = scope || 'user';
1891
1918
  }
1892
1919
  });
1893
1920
  workspacePresetChangeActions.map(function (action) {
1894
1921
  return builder.addCase(action, function (draft, payload) {
1895
- var _payload$payload;
1896
- var hasChanges = action !== syncGroupsActions.syncGroupAddGroup && action !== syncGroupsActions.syncGroupToggleIsTimeScrollingEnabled || ((_payload$payload = payload.payload) == null ? void 0 : _payload$payload.origin) === 'user';
1922
+ var _payload$payload, _payload$payload2;
1923
+ var isResetViewPreset = action === viewPresetActions.selectViewPreset && ((_payload$payload = payload.payload) == null ? void 0 : _payload$payload.shouldReset);
1924
+ var isSyncGroupAction = action === syncGroupsActions.syncGroupAddGroup || action === syncGroupsActions.syncGroupToggleIsTimeScrollingEnabled;
1925
+ var isUserOrigin = isSyncGroupAction && ((_payload$payload2 = payload.payload) == null ? void 0 : _payload$payload2.origin) === 'user';
1926
+ var hasChanges = !isResetViewPreset && !isSyncGroupAction || isUserOrigin;
1897
1927
  draft.hasChanges = hasChanges;
1898
1928
  // reset title and scope when setting empty activeViewPresetId
1899
1929
  if (action.type === viewPresetActions.setActiveViewPresetId.type) {
1900
- var _payload$payload2 = payload.payload,
1901
- panelId = _payload$payload2.panelId,
1902
- viewPresetId = _payload$payload2.viewPresetId;
1930
+ var _payload$payload3 = payload.payload,
1931
+ panelId = _payload$payload3.panelId,
1932
+ viewPresetId = _payload$payload3.viewPresetId;
1903
1933
  var entity = draft.views.byId[panelId];
1904
1934
  if (entity && viewPresetId === '') {
1905
1935
  entity.title = '';
@@ -1910,7 +1940,6 @@ var slice$1 = createSlice({
1910
1940
  });
1911
1941
  }
1912
1942
  });
1913
- // eslint-disable-next-line prefer-destructuring
1914
1943
  var reducer$1 = slice$1.reducer;
1915
1944
  var workspaceActions = Object.assign({}, slice$1.actions);
1916
1945
 
@@ -1946,17 +1975,17 @@ var selectors$2 = viewPresetsAdapter.getSelectors(function (state) {
1946
1975
  });
1947
1976
  var getViewPresets = selectors$2.selectAll,
1948
1977
  getViewPresetById = selectors$2.selectById;
1949
- var getViewPresetsIsFetching = createSelector(getViewPresetById, function (store, panelId) {
1978
+ var getViewPresetsIsFetching = createSelector(getViewPresetById, function (_store, panelId) {
1950
1979
  return panelId;
1951
1980
  }, function (viewPreset) {
1952
1981
  return (viewPreset == null ? void 0 : viewPreset.isFetching) || false;
1953
1982
  }, selectorMemoizationOptions);
1954
- var getViewPresetsError = createSelector(getViewPresetById, function (store, panelId) {
1983
+ var getViewPresetsError = createSelector(getViewPresetById, function (_store, panelId) {
1955
1984
  return panelId;
1956
1985
  }, function (viewPreset) {
1957
1986
  return viewPreset == null ? void 0 : viewPreset.error;
1958
1987
  }, selectorMemoizationOptions);
1959
- var getViewPresetDetailError = createSelector(getViewPresetsError, function (store, panelId) {
1988
+ var getViewPresetDetailError = createSelector(getViewPresetsError, function (_store, panelId) {
1960
1989
  return panelId;
1961
1990
  }, function (error) {
1962
1991
  if (error && error.component === 'PRESET_DETAIL') {
@@ -1964,12 +1993,12 @@ var getViewPresetDetailError = createSelector(getViewPresetsError, function (sto
1964
1993
  }
1965
1994
  return undefined;
1966
1995
  }, selectorMemoizationOptions);
1967
- var getViewPresetHasChanges = createSelector(getViewPresetById, function (store, panelId) {
1996
+ var getViewPresetHasChanges = createSelector(getViewPresetById, function (_store, panelId) {
1968
1997
  return panelId;
1969
1998
  }, function (viewPreset) {
1970
1999
  return viewPreset == null ? void 0 : viewPreset.hasChanges;
1971
2000
  }, selectorMemoizationOptions);
1972
- var getViewPresetActiveId = createSelector(getViewPresetById, function (store, panelId) {
2001
+ var getViewPresetActiveId = createSelector(getViewPresetById, function (_store, panelId) {
1973
2002
  return panelId;
1974
2003
  }, function (viewPreset) {
1975
2004
  return viewPreset == null ? void 0 : viewPreset.activeViewPresetId;
@@ -1987,7 +2016,7 @@ var getDialogOptions = createSelector(getViewPresetsStore, function (store) {
1987
2016
  }, function (store) {
1988
2017
  return store.viewPresetDialog || undefined;
1989
2018
  }, selectorMemoizationOptions);
1990
- var getIsViewPresetListDialogOpen = createSelector(getViewPresetById, function (store, panelId) {
2019
+ var getIsViewPresetListDialogOpen = createSelector(getViewPresetById, function (_store, panelId) {
1991
2020
  return panelId;
1992
2021
  }, function (viewPreset) {
1993
2022
  return (viewPreset == null ? void 0 : viewPreset.isViewPresetListDialogOpen) || false;
@@ -2009,7 +2038,7 @@ var getViewPresetListFiltersForView = createSelector(getViewPresetById, function
2009
2038
  }
2010
2039
  return filters;
2011
2040
  }, selectorMemoizationOptions);
2012
- var getViewPresetListSearchQueryForView = createSelector(getViewPresetById, function (store, panelId) {
2041
+ var getViewPresetListSearchQueryForView = createSelector(getViewPresetById, function (_store, panelId) {
2013
2042
  return panelId;
2014
2043
  }, function (viewPreset) {
2015
2044
  return (viewPreset == null ? void 0 : viewPreset.searchQuery) || '';
@@ -2069,6 +2098,14 @@ var getSnackbarMessage = function getSnackbarMessage(action, title) {
2069
2098
  TITLE: trimmedTitle
2070
2099
  }
2071
2100
  };
2101
+ case PresetAction.RESET:
2102
+ return {
2103
+ key: 'workspace-viewpreset-success-reset',
2104
+ type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
2105
+ params: {
2106
+ TITLE: trimmedTitle
2107
+ }
2108
+ };
2072
2109
  default:
2073
2110
  return {
2074
2111
  key: 'workspace-viewpreset-success-save',
@@ -2101,7 +2138,8 @@ var emptyViewPreset = function emptyViewPreset(componentType) {
2101
2138
  MultiMap: undefined,
2102
2139
  ModelRunInterval: undefined,
2103
2140
  HarmonieTempAndPrecipPreset: undefined,
2104
- TimeSlider: undefined
2141
+ TimeSlider: undefined,
2142
+ WarningList: undefined
2105
2143
  };
2106
2144
  return {
2107
2145
  componentType: actualComponentType,
@@ -4624,7 +4662,7 @@ var createApi = function createApi() {
4624
4662
 
4625
4663
  var workspaceListener = createListenerMiddleware();
4626
4664
  workspaceListener.startListening({
4627
- actionCreator: mapStoreActions.registerMap,
4665
+ actionCreator: mapActions.registerMap,
4628
4666
  effect: function () {
4629
4667
  var _effect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
4630
4668
  var payload, mapId, viewType, _workspaceState$views, workspaceState, mapPresetId;
@@ -4655,7 +4693,7 @@ workspaceListener.startListening({
4655
4693
  }()
4656
4694
  });
4657
4695
  workspaceListener.startListening({
4658
- actionCreator: mapStoreActions.unregisterMap,
4696
+ actionCreator: mapActions.unregisterMap,
4659
4697
  effect: function () {
4660
4698
  var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
4661
4699
  var payload, mapId, viewType;
@@ -5072,38 +5110,119 @@ workspaceListener.startListening({
5072
5110
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
5073
5111
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
5074
5112
  * */
5075
- var viewPresetsListAdapter = createEntityAdapter();
5076
- var initialState = viewPresetsListAdapter.getInitialState();
5077
- var slice = createSlice({
5078
- initialState: initialState,
5079
- name: 'viewPresetsList',
5080
- reducers: {},
5081
- extraReducers: function extraReducers(builder) {
5082
- builder.addCase(viewPresetActions.fetchedInitialViewPresets, function (draft, action) {
5083
- var viewPresets = action.payload.viewPresets;
5084
- if (!viewPresets || !viewPresets.length) {
5085
- viewPresetsListAdapter.removeAll(draft);
5086
- return;
5087
- }
5088
- viewPresetsListAdapter.setAll(draft, action.payload.viewPresets);
5089
- }).addCase(viewPresetActions.fetchedViewPresets, function (draft, action) {
5090
- var _action$payload = action.payload,
5091
- viewPresets = _action$payload.viewPresets,
5092
- filterParams = _action$payload.filterParams;
5093
- // If there are filter params applied, don't do anything, these results are put in the specific panel filterResults
5094
- if (Object.keys(filterParams).length !== 0) {
5095
- return;
5096
- }
5097
- if (!viewPresets || !viewPresets.length) {
5098
- viewPresetsListAdapter.removeAll(draft);
5099
- return;
5100
- }
5101
- viewPresetsListAdapter.setAll(draft, action.payload.viewPresets);
5102
- });
5113
+ var WorkspaceListErrorCategory;
5114
+ (function (WorkspaceListErrorCategory) {
5115
+ WorkspaceListErrorCategory["AUTH"] = "AUTH";
5116
+ WorkspaceListErrorCategory["GENERIC"] = "GENERIC";
5117
+ })(WorkspaceListErrorCategory || (WorkspaceListErrorCategory = {}));
5118
+ var WorkspaceListErrorType;
5119
+ (function (WorkspaceListErrorType) {
5120
+ WorkspaceListErrorType["TRANSLATABLE_ERROR"] = "TRANSLATABLE_ERROR";
5121
+ WorkspaceListErrorType["VERBATIM_ERROR"] = "VERBATIM_ERROR";
5122
+ })(WorkspaceListErrorType || (WorkspaceListErrorType = {}));
5123
+
5124
+ /* *
5125
+ * Licensed under the Apache License, Version 2.0 (the "License");
5126
+ * you may not use this file except in compliance with the License.
5127
+ * You may obtain a copy of the License at
5128
+ *
5129
+ * http://www.apache.org/licenses/LICENSE-2.0
5130
+ *
5131
+ * Unless required by applicable law or agreed to in writing, software
5132
+ * distributed under the License is distributed on an "AS IS" BASIS,
5133
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5134
+ * See the License for the specific language governing permissions and
5135
+ * limitations under the License.
5136
+ *
5137
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5138
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
5139
+ * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
5140
+ * */
5141
+ var getWorkspaceListStore = function getWorkspaceListStore(store) {
5142
+ if (store && store.workspaceList) {
5143
+ return store.workspaceList;
5103
5144
  }
5145
+ return null;
5146
+ };
5147
+ var selectors = workspaceListAdapter.getSelectors(function (state) {
5148
+ var _state$workspaceList;
5149
+ return (_state$workspaceList = state == null ? void 0 : state.workspaceList) != null ? _state$workspaceList : {
5150
+ entities: {},
5151
+ ids: []
5152
+ };
5104
5153
  });
5105
- var reducer = slice.reducer;
5106
- slice.actions;
5154
+ var getWorkspaceList = selectors.selectAll;
5155
+ var getIsWorkspaceListFetching = createSelector(getWorkspaceListStore, function (store) {
5156
+ return store;
5157
+ }, function (state) {
5158
+ return (state == null ? void 0 : state.isFetching) || false;
5159
+ }, selectorMemoizationOptions);
5160
+ var getWorkspaceDialogIsSaved = createSelector(getWorkspaceListStore, function (store) {
5161
+ return store;
5162
+ }, function (state) {
5163
+ var _state$workspaceActio;
5164
+ return (state == null || (_state$workspaceActio = state.workspaceActionDialog) == null ? void 0 : _state$workspaceActio.hasSaved) || false;
5165
+ }, selectorMemoizationOptions);
5166
+ var getWorkspaceListError = createSelector(getWorkspaceListStore, function (store) {
5167
+ return store;
5168
+ }, function (state) {
5169
+ return (state == null ? void 0 : state.error) || undefined;
5170
+ }, selectorMemoizationOptions);
5171
+ var getWorkspaceActionDialogDetails = createSelector(getWorkspaceListStore, getWorkspaceState, getViewPresetsStore, function (workspaceListState, workspaceState, viewpresetState) {
5172
+ var dialog = (workspaceListState == null ? void 0 : workspaceListState.workspaceActionDialog) || false;
5173
+ if (dialog) {
5174
+ var _dialog$formValues$vi;
5175
+ var views = (_dialog$formValues$vi = dialog.formValues.views) == null ? void 0 : _dialog$formValues$vi.map(function (view) {
5176
+ var workspaceView = workspaceState.views.byId[view.mosaicNodeId];
5177
+ var viewComplete = viewpresetState.entities[view.mosaicNodeId];
5178
+ return {
5179
+ mosaicNodeId: view.mosaicNodeId,
5180
+ viewPresetId: (viewComplete == null ? void 0 : viewComplete.activeViewPresetId) || view.viewPresetId,
5181
+ isSelected: view.isSelected,
5182
+ title: view.title || workspaceView.title,
5183
+ error: viewComplete == null ? void 0 : viewComplete.error,
5184
+ isFetching: viewComplete == null ? void 0 : viewComplete.isFetching,
5185
+ hasChanges: viewComplete == null ? void 0 : viewComplete.hasChanges,
5186
+ scope: view.scope
5187
+ };
5188
+ });
5189
+ return Object.assign({}, dialog, {
5190
+ formValues: Object.assign({}, dialog.formValues, views && {
5191
+ views: views
5192
+ })
5193
+ });
5194
+ }
5195
+ return dialog;
5196
+ }, selectorMemoizationOptions);
5197
+ var getIsWorkspaceListDialogOpen = createSelector(getWorkspaceListStore, function (store) {
5198
+ return store;
5199
+ }, function (state) {
5200
+ return (state == null ? void 0 : state.isWorkspaceListDialogOpen) || false;
5201
+ }, selectorMemoizationOptions);
5202
+ var getWorkspaceListFilters = createSelector(function (store) {
5203
+ return getWorkspaceListStore(store);
5204
+ }, function (_store, scope) {
5205
+ return scope;
5206
+ }, function (state, scope) {
5207
+ var filters = (state == null ? void 0 : state.workspaceListFilters) || [];
5208
+ // no filters for system presets for now
5209
+ if (scope === 'system') {
5210
+ return filters.reduce(function (list, filter) {
5211
+ if (filter.id === 'system') {
5212
+ return list.concat(Object.assign({}, filter, {
5213
+ isDisabled: true
5214
+ }));
5215
+ }
5216
+ return list;
5217
+ }, []);
5218
+ }
5219
+ return filters;
5220
+ }, selectorMemoizationOptions);
5221
+ var getWorkspaceListSearchQuery = createSelector(getWorkspaceListStore, function (store) {
5222
+ return store;
5223
+ }, function (state) {
5224
+ return (state == null ? void 0 : state.searchQuery) || '';
5225
+ }, selectorMemoizationOptions);
5107
5226
 
5108
5227
  var processError = function processError(error, component, errorMessageKey) {
5109
5228
  var message = isAxiosError(error) ? getAxiosErrorMessage(error) : errorMessageKey;
@@ -5310,7 +5429,7 @@ viewPresetsListener.startListening({
5310
5429
  panelId = payload.panelId, _payload$viewPresetId = payload.viewPresetId, viewPresetId = _payload$viewPresetId === void 0 ? '' : _payload$viewPresetId;
5311
5430
  isMapAnimating = mapSelectors.isAnimating(listenerApi.getState(), panelId);
5312
5431
  if (isMapAnimating) {
5313
- listenerApi.dispatch(mapStoreActions.mapStopAnimation({
5432
+ listenerApi.dispatch(mapActions.mapStopAnimation({
5314
5433
  mapId: panelId
5315
5434
  }));
5316
5435
  }
@@ -5322,7 +5441,7 @@ viewPresetsListener.startListening({
5322
5441
  }));
5323
5442
  } else {
5324
5443
  // new map preset selected
5325
- listenerApi.dispatch(mapStoreActions.setMapPreset({
5444
+ listenerApi.dispatch(mapActions.setMapPreset({
5326
5445
  mapId: panelId,
5327
5446
  initialProps: emptyViewPreset('Map').initialProps
5328
5447
  }));
@@ -5407,142 +5526,11 @@ viewPresetsListener.startListening({
5407
5526
  }()
5408
5527
  });
5409
5528
 
5410
- /* *
5411
- * Licensed under the Apache License, Version 2.0 (the "License");
5412
- * you may not use this file except in compliance with the License.
5413
- * You may obtain a copy of the License at
5414
- *
5415
- * http://www.apache.org/licenses/LICENSE-2.0
5416
- *
5417
- * Unless required by applicable law or agreed to in writing, software
5418
- * distributed under the License is distributed on an "AS IS" BASIS,
5419
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5420
- * See the License for the specific language governing permissions and
5421
- * limitations under the License.
5422
- *
5423
- * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5424
- * Copyright 2023 - Finnish Meteorological Institute (FMI)
5425
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
5426
- * */
5427
- var WorkspaceListErrorCategory;
5428
- (function (WorkspaceListErrorCategory) {
5429
- WorkspaceListErrorCategory["AUTH"] = "AUTH";
5430
- WorkspaceListErrorCategory["GENERIC"] = "GENERIC";
5431
- })(WorkspaceListErrorCategory || (WorkspaceListErrorCategory = {}));
5432
- var WorkspaceListErrorType;
5433
- (function (WorkspaceListErrorType) {
5434
- WorkspaceListErrorType["TRANSLATABLE_ERROR"] = "TRANSLATABLE_ERROR";
5435
- WorkspaceListErrorType["VERBATIM_ERROR"] = "VERBATIM_ERROR";
5436
- })(WorkspaceListErrorType || (WorkspaceListErrorType = {}));
5437
-
5438
- /* *
5439
- * Licensed under the Apache License, Version 2.0 (the "License");
5440
- * you may not use this file except in compliance with the License.
5441
- * You may obtain a copy of the License at
5442
- *
5443
- * http://www.apache.org/licenses/LICENSE-2.0
5444
- *
5445
- * Unless required by applicable law or agreed to in writing, software
5446
- * distributed under the License is distributed on an "AS IS" BASIS,
5447
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5448
- * See the License for the specific language governing permissions and
5449
- * limitations under the License.
5450
- *
5451
- * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5452
- * Copyright 2023 - Finnish Meteorological Institute (FMI)
5453
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
5454
- * */
5455
- var getWorkspaceListStore = function getWorkspaceListStore(store) {
5456
- if (store && store.workspaceList) {
5457
- return store.workspaceList;
5458
- }
5459
- return null;
5460
- };
5461
- var selectors = workspaceListAdapter.getSelectors(function (state) {
5462
- var _state$workspaceList;
5463
- return (_state$workspaceList = state == null ? void 0 : state.workspaceList) != null ? _state$workspaceList : {
5464
- entities: {},
5465
- ids: []
5466
- };
5467
- });
5468
- var getWorkspaceList = selectors.selectAll;
5469
- var getIsWorkspaceListFetching = createSelector(getWorkspaceListStore, function (store) {
5470
- return store;
5471
- }, function (state) {
5472
- return (state == null ? void 0 : state.isFetching) || false;
5473
- }, selectorMemoizationOptions);
5474
- var getWorkspaceDialogIsSaved = createSelector(getWorkspaceListStore, function (store) {
5475
- return store;
5476
- }, function (state) {
5477
- var _state$workspaceActio;
5478
- return (state == null || (_state$workspaceActio = state.workspaceActionDialog) == null ? void 0 : _state$workspaceActio.hasSaved) || false;
5479
- }, selectorMemoizationOptions);
5480
- var getWorkspaceListError = createSelector(getWorkspaceListStore, function (store) {
5481
- return store;
5482
- }, function (state) {
5483
- return (state == null ? void 0 : state.error) || undefined;
5484
- }, selectorMemoizationOptions);
5485
- var getWorkspaceActionDialogDetails = createSelector(getWorkspaceListStore, getWorkspaceState, getViewPresetsStore, function (workspaceListState, workspaceState, viewpresetState) {
5486
- var dialog = (workspaceListState == null ? void 0 : workspaceListState.workspaceActionDialog) || false;
5487
- if (dialog) {
5488
- var _dialog$formValues$vi;
5489
- var views = (_dialog$formValues$vi = dialog.formValues.views) == null ? void 0 : _dialog$formValues$vi.map(function (view) {
5490
- var workspaceView = workspaceState.views.byId[view.mosaicNodeId];
5491
- var viewComplete = viewpresetState.entities[view.mosaicNodeId];
5492
- return {
5493
- mosaicNodeId: view.mosaicNodeId,
5494
- viewPresetId: (viewComplete == null ? void 0 : viewComplete.activeViewPresetId) || view.viewPresetId,
5495
- isSelected: view.isSelected,
5496
- title: view.title || workspaceView.title,
5497
- error: viewComplete == null ? void 0 : viewComplete.error,
5498
- isFetching: viewComplete == null ? void 0 : viewComplete.isFetching,
5499
- hasChanges: viewComplete == null ? void 0 : viewComplete.hasChanges,
5500
- scope: view.scope
5501
- };
5502
- });
5503
- return Object.assign({}, dialog, {
5504
- formValues: Object.assign({}, dialog.formValues, views && {
5505
- views: views
5506
- })
5507
- });
5508
- }
5509
- return dialog;
5510
- }, selectorMemoizationOptions);
5511
- var getIsWorkspaceListDialogOpen = createSelector(getWorkspaceListStore, function (store) {
5512
- return store;
5513
- }, function (state) {
5514
- return (state == null ? void 0 : state.isWorkspaceListDialogOpen) || false;
5515
- }, selectorMemoizationOptions);
5516
- var getWorkspaceListFilters = createSelector(function (store) {
5517
- return getWorkspaceListStore(store);
5518
- }, function (_store, scope) {
5519
- return scope;
5520
- }, function (state, scope) {
5521
- var filters = (state == null ? void 0 : state.workspaceListFilters) || [];
5522
- // no filters for system presets for now
5523
- if (scope === 'system') {
5524
- return filters.reduce(function (list, filter) {
5525
- if (filter.id === 'system') {
5526
- return list.concat(Object.assign({}, filter, {
5527
- isDisabled: true
5528
- }));
5529
- }
5530
- return list;
5531
- }, []);
5532
- }
5533
- return filters;
5534
- }, selectorMemoizationOptions);
5535
- var getWorkspaceListSearchQuery = createSelector(getWorkspaceListStore, function (store) {
5536
- return store;
5537
- }, function (state) {
5538
- return (state == null ? void 0 : state.searchQuery) || '';
5539
- }, selectorMemoizationOptions);
5540
-
5541
- var emptyWorkspaceBEData = Object.assign({}, getEmptyMapWorkspace(), {
5542
- views: [{
5543
- mosaicNodeId: '1_screen',
5544
- viewPresetId: 'emptyMap'
5545
- }]
5529
+ var emptyWorkspaceBEData = Object.assign({}, getEmptyMapWorkspace(), {
5530
+ views: [{
5531
+ mosaicNodeId: '1_screen',
5532
+ viewPresetId: 'emptyMap'
5533
+ }]
5546
5534
  });
5547
5535
  var workspaceListListener = createListenerMiddleware();
5548
5536
  workspaceListListener.startListening({
@@ -5893,6 +5881,99 @@ workspaceListListener.startListening({
5893
5881
  }()
5894
5882
  });
5895
5883
 
5884
+ /* *
5885
+ * Licensed under the Apache License, Version 2.0 (the "License");
5886
+ * you may not use this file except in compliance with the License.
5887
+ * You may obtain a copy of the License at
5888
+ *
5889
+ * http://www.apache.org/licenses/LICENSE-2.0
5890
+ *
5891
+ * Unless required by applicable law or agreed to in writing, software
5892
+ * distributed under the License is distributed on an "AS IS" BASIS,
5893
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5894
+ * See the License for the specific language governing permissions and
5895
+ * limitations under the License.
5896
+ *
5897
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5898
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
5899
+ * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
5900
+ * */
5901
+ var viewPresetsListAdapter = createEntityAdapter();
5902
+ var initialState = viewPresetsListAdapter.getInitialState();
5903
+ var slice = createSlice({
5904
+ initialState: initialState,
5905
+ name: 'viewPresetsList',
5906
+ reducers: {},
5907
+ 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) {
5916
+ var _action$payload = action.payload,
5917
+ viewPresets = _action$payload.viewPresets,
5918
+ filterParams = _action$payload.filterParams;
5919
+ // If there are filter params applied, don't do anything, these results are put in the specific panel filterResults
5920
+ if (Object.keys(filterParams).length !== 0) {
5921
+ return;
5922
+ }
5923
+ if (!viewPresets || !viewPresets.length) {
5924
+ viewPresetsListAdapter.removeAll(draft);
5925
+ return;
5926
+ }
5927
+ viewPresetsListAdapter.setAll(draft, action.payload.viewPresets);
5928
+ });
5929
+ }
5930
+ });
5931
+ var reducer = slice.reducer;
5932
+ slice.actions;
5933
+
5934
+ /* *
5935
+ * Licensed under the Apache License, Version 2.0 (the "License");
5936
+ * you may not use this file except in compliance with the License.
5937
+ * You may obtain a copy of the License at
5938
+ *
5939
+ * http://www.apache.org/licenses/LICENSE-2.0
5940
+ *
5941
+ * Unless required by applicable law or agreed to in writing, software
5942
+ * distributed under the License is distributed on an "AS IS" BASIS,
5943
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5944
+ * See the License for the specific language governing permissions and
5945
+ * limitations under the License.
5946
+ *
5947
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5948
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
5949
+ * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
5950
+ * */
5951
+ // Used to retrieve the unfiltered, general view preset list.
5952
+ // To ensure you retrieve the view preset list specific for your view, use getFilteredViewPresetListForView
5953
+ var _viewPresetsListAdapt = viewPresetsListAdapter.getSelectors(function (state) {
5954
+ var _state$viewPresetsLis;
5955
+ return (_state$viewPresetsLis = state == null ? void 0 : state.viewPresetsList) != null ? _state$viewPresetsLis : {
5956
+ entities: {},
5957
+ ids: []
5958
+ };
5959
+ }),
5960
+ getViewPresetsList = _viewPresetsListAdapt.selectAll;
5961
+ _viewPresetsListAdapt.selectById;
5962
+ var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getViewPresetListFilterResultsForView, getViewPresetListFiltersForView, getViewPresetListSearchQueryForView, function (fullViewPresetsList, filteredResults, appliedFilters, searchQuery) {
5963
+ // If we have a filtered results list, use this, otherwise fall back to the general unfiltered view presets list
5964
+ // If all filters are set to true we are not filtering
5965
+ var filtersApplied = !appliedFilters.every(function (filter) {
5966
+ return filter.isSelected;
5967
+ });
5968
+ if (filtersApplied || searchQuery !== '') {
5969
+ return filteredResults;
5970
+ }
5971
+ return fullViewPresetsList != null ? fullViewPresetsList : {
5972
+ entities: {},
5973
+ ids: []
5974
+ };
5975
+ }, selectorMemoizationOptions);
5976
+
5896
5977
  /* *
5897
5978
  * Licensed under the Apache License, Version 2.0 (the "License");
5898
5979
  * you may not use this file except in compliance with the License.
@@ -5918,7 +5999,6 @@ var workspaceReducersMap = {
5918
5999
  };
5919
6000
  var workspaceMiddlewares = [viewPresetsListener.middleware, workspaceListener.middleware, workspaceListListener.middleware];
5920
6001
  var workspaceModuleConfig = {
5921
- id: 'workspace-module',
5922
6002
  reducersMap: workspaceReducersMap,
5923
6003
  middlewares: workspaceMiddlewares
5924
6004
  };
@@ -5950,10 +6030,10 @@ var initWorkspaceTestI18n = function initWorkspaceTestI18n() {
5950
6030
  escapeValue: false
5951
6031
  },
5952
6032
  resources: {
5953
- en: (_en = {}, _en[WORKSPACE_NAMESPACE] = workspaceTranslations.en, _en[SHARED_NAMESPACE] = sharedTranslations.en, _en[CORE_NAMESPACE] = coreTranslations.en, _en[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.en, _en[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.en, _en),
5954
- fi: (_fi = {}, _fi[WORKSPACE_NAMESPACE] = workspaceTranslations.fi, _fi[SHARED_NAMESPACE] = sharedTranslations.fi, _fi[CORE_NAMESPACE] = coreTranslations.fi, _fi[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.fi, _fi[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.fi, _fi),
5955
- no: (_no = {}, _no[WORKSPACE_NAMESPACE] = workspaceTranslations.no, _no[SHARED_NAMESPACE] = sharedTranslations.no, _no[CORE_NAMESPACE] = coreTranslations.no, _no[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.no, _no[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.no, _no),
5956
- nl: (_nl = {}, _nl[WORKSPACE_NAMESPACE] = workspaceTranslations.nl, _nl[SHARED_NAMESPACE] = sharedTranslations.nl, _nl[CORE_NAMESPACE] = coreTranslations.nl, _nl[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.nl, _nl[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.nl, _nl)
6033
+ en: (_en = {}, _en[WORKSPACE_NAMESPACE] = workspaceTranslations.en, _en[SHARED_NAMESPACE] = sharedTranslations.en, _en[CORE_NAMESPACE] = coreTranslations.en, _en[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.en, _en[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.en, _en[WARN_NAMESPACE] = warningsTranslations.en, _en),
6034
+ fi: (_fi = {}, _fi[WORKSPACE_NAMESPACE] = workspaceTranslations.fi, _fi[SHARED_NAMESPACE] = sharedTranslations.fi, _fi[CORE_NAMESPACE] = coreTranslations.fi, _fi[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.fi, _fi[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.fi, _fi[WARN_NAMESPACE] = warningsTranslations.fi, _fi),
6035
+ no: (_no = {}, _no[WORKSPACE_NAMESPACE] = workspaceTranslations.no, _no[SHARED_NAMESPACE] = sharedTranslations.no, _no[CORE_NAMESPACE] = coreTranslations.no, _no[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.no, _no[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.no, _no[WARN_NAMESPACE] = warningsTranslations.no, _no),
6036
+ nl: (_nl = {}, _nl[WORKSPACE_NAMESPACE] = workspaceTranslations.nl, _nl[SHARED_NAMESPACE] = sharedTranslations.nl, _nl[CORE_NAMESPACE] = coreTranslations.nl, _nl[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.nl, _nl[FORM_FIELDS_NAMESPACE] = formFieldsTranslations.nl, _nl[WARN_NAMESPACE] = warningsTranslations.nl, _nl)
5957
6037
  }
5958
6038
  });
5959
6039
  };
@@ -6008,6 +6088,13 @@ var createTestWorkspaceStore = function createTestWorkspaceStore() {
6008
6088
  return store;
6009
6089
  };
6010
6090
 
6091
+ var queryClient = new QueryClient({
6092
+ defaultOptions: {
6093
+ queries: {
6094
+ retry: false
6095
+ }
6096
+ }
6097
+ });
6011
6098
  var WorkspaceThemeProvider = function WorkspaceThemeProvider(_ref) {
6012
6099
  var children = _ref.children,
6013
6100
  _ref$theme = _ref.theme,
@@ -6050,16 +6137,19 @@ var WorkspaceWrapperProviderWithStore = function WorkspaceWrapperProviderWithSto
6050
6137
  return jsx(WorkspaceI18nProvider, {
6051
6138
  children: jsx(AuthenticationProvider, {
6052
6139
  value: auth,
6053
- children: jsx(ApiProvider, {
6054
- createApi: createApi$1,
6055
- name: API_NAME,
6056
- children: jsx(Provider, {
6057
- store: store,
6058
- children: jsx(WorkspaceThemeProvider, {
6059
- theme: theme,
6060
- children: jsx(SnackbarWrapperConnect, {
6061
- children: jsx(ConfirmationServiceProvider, {
6062
- children: children
6140
+ children: jsx(QueryClientProvider, {
6141
+ client: queryClient,
6142
+ children: jsx(ApiProvider, {
6143
+ createApi: createApi$1,
6144
+ name: API_NAME,
6145
+ children: jsx(Provider, {
6146
+ store: store,
6147
+ children: jsx(WorkspaceThemeProvider, {
6148
+ theme: theme,
6149
+ children: jsx(SnackbarWrapperConnect, {
6150
+ children: jsx(ConfirmationServiceProvider, {
6151
+ children: children
6152
+ })
6063
6153
  })
6064
6154
  })
6065
6155
  })
@@ -6471,49 +6561,6 @@ var closeTimeSeriesDialogsWhenChangingPreset = function closeTimeSeriesDialogsWh
6471
6561
  }
6472
6562
  };
6473
6563
 
6474
- /* *
6475
- * Licensed under the Apache License, Version 2.0 (the "License");
6476
- * you may not use this file except in compliance with the License.
6477
- * You may obtain a copy of the License at
6478
- *
6479
- * http://www.apache.org/licenses/LICENSE-2.0
6480
- *
6481
- * Unless required by applicable law or agreed to in writing, software
6482
- * distributed under the License is distributed on an "AS IS" BASIS,
6483
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6484
- * See the License for the specific language governing permissions and
6485
- * limitations under the License.
6486
- *
6487
- * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
6488
- * Copyright 2023 - Finnish Meteorological Institute (FMI)
6489
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
6490
- * */
6491
- // Used to retrieve the unfiltered, general view preset list.
6492
- // To ensure you retrieve the view preset list specific for your view, use getFilteredViewPresetListForView
6493
- var _viewPresetsListAdapt = viewPresetsListAdapter.getSelectors(function (state) {
6494
- var _state$viewPresetsLis;
6495
- return (_state$viewPresetsLis = state == null ? void 0 : state.viewPresetsList) != null ? _state$viewPresetsLis : {
6496
- entities: {},
6497
- ids: []
6498
- };
6499
- }),
6500
- getViewPresetsList = _viewPresetsListAdapt.selectAll;
6501
- _viewPresetsListAdapt.selectById;
6502
- var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getViewPresetListFilterResultsForView, getViewPresetListFiltersForView, getViewPresetListSearchQueryForView, function (fullViewPresetsList, filteredResults, appliedFilters, searchQuery) {
6503
- // If we have a filtered results list, use this, otherwise fall back to the general unfiltered view presets list
6504
- // If all filters are set to true we are not filtering
6505
- var filtersApplied = !appliedFilters.every(function (filter) {
6506
- return filter.isSelected;
6507
- });
6508
- if (filtersApplied || searchQuery !== '') {
6509
- return filteredResults;
6510
- }
6511
- return fullViewPresetsList != null ? fullViewPresetsList : {
6512
- entities: {},
6513
- ids: []
6514
- };
6515
- }, selectorMemoizationOptions);
6516
-
6517
6564
  var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 46;
6518
6565
  var getPresetIcon = function getPresetIcon(preset) {
6519
6566
  switch (preset.viewType) {
@@ -6559,7 +6606,7 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
6559
6606
  var menuItems = [{
6560
6607
  text: t('workspace-duplicate'),
6561
6608
  action: onDuplicate
6562
- }].concat(workspacePreset.scope === 'user' ? [{
6609
+ }].concat(workspacePreset.scope === 'user' || isAdmin ? [{
6563
6610
  text: t(editTitle),
6564
6611
  action: onEdit
6565
6612
  }] : []);
@@ -6619,7 +6666,7 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
6619
6666
  marginLeft: 2
6620
6667
  },
6621
6668
  children: jsxs(Grid2, {
6622
- children: [!isAdmin && jsx(ToggleMenu, {
6669
+ children: [jsx(ToggleMenu, {
6623
6670
  buttonTestId: testIdPrefix + "-listOptionsButton",
6624
6671
  menuPosition: "right",
6625
6672
  menuItems: menuItems,
@@ -6744,6 +6791,9 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6744
6791
  var currentTimeSeriesPreset = useSelector(function (store) {
6745
6792
  return timeSeriesSelectors.getTimeSeriesPreset(store);
6746
6793
  });
6794
+ var currentWarningsPreset = useSelector(function (store) {
6795
+ return publicWarningsSelectors.getWarningsPresetById(store, panelId);
6796
+ });
6747
6797
  var viewPresetListFilters = useSelector(function (store) {
6748
6798
  return getViewPresetListFiltersForView(store, panelId, scope);
6749
6799
  });
@@ -6791,6 +6841,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6791
6841
  }, [dispatch, panelId, viewPresetListFilters, viewPresetListSearchQuery]);
6792
6842
  var constructInitialProps = function constructInitialProps() {
6793
6843
  switch (viewComponentType) {
6844
+ case 'WarningList':
6845
+ return currentWarningsPreset;
6794
6846
  case 'TimeSeries':
6795
6847
  return currentTimeSeriesPreset;
6796
6848
  case 'Map':
@@ -6832,9 +6884,7 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6832
6884
  });
6833
6885
  break;
6834
6886
  }
6835
- // case WorkspacePresetAction.SAVE: {
6836
- // break;
6837
- // }
6887
+ case WorkspacePresetAction.DELETE_SYSTEM_PRESET:
6838
6888
  case WorkspacePresetAction.DELETE:
6839
6889
  {
6840
6890
  openViewPresetsDialog({
@@ -6881,8 +6931,6 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6881
6931
  return filter.isSelected;
6882
6932
  });
6883
6933
  var shouldHideNewWorkspace = !isAllSelectedForFilters || viewPresetListSearchQuery.length > 0;
6884
- // disable edit for admin users for now
6885
- var isEditable = isLoggedIn && !isAdmin;
6886
6934
  return jsxs("div", {
6887
6935
  "data-testid": "viewpreset-selectlist-connect",
6888
6936
  style: {
@@ -6924,10 +6972,11 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6924
6972
  newPreset: Object.assign({}, getEmptyWorkspaceListItem(t), {
6925
6973
  title: t('workspace-mappreset-new')
6926
6974
  }),
6927
- isEditable: isEditable,
6928
6975
  hideNewWorkspace: shouldHideNewWorkspace,
6929
6976
  searchQuery: viewPresetListSearchQuery,
6930
- testIdPrefix: "viewpreset"
6977
+ testIdPrefix: "viewpreset",
6978
+ isAdmin: isAdmin,
6979
+ isEditable: isLoggedIn
6931
6980
  })]
6932
6981
  })]
6933
6982
  });
@@ -7005,6 +7054,8 @@ var ViewPresetMenu = function ViewPresetMenu(_ref) {
7005
7054
  });
7006
7055
  };
7007
7056
 
7057
+ var workspacePresetOptionId = 'workspace-options-toolbutton';
7058
+ var viewPresetOptionId = 'viewpreset-options-toolbutton';
7008
7059
  var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7009
7060
  var title = _ref.title,
7010
7061
  activeTab = _ref.activeTab,
@@ -7014,15 +7065,14 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7014
7065
  handleSaveAs = _ref.handleSaveAs,
7015
7066
  handleEdit = _ref.handleEdit,
7016
7067
  handleDelete = _ref.handleDelete,
7017
- handleSaveSystemPresetAs = _ref.handleSaveSystemPresetAs,
7018
- handleResetWorkspace = _ref.handleResetWorkspace,
7068
+ handleReset = _ref.handleReset,
7019
7069
  _ref$hasChanges = _ref.hasChanges,
7020
7070
  hasChanges = _ref$hasChanges === void 0 ? false : _ref$hasChanges,
7021
7071
  _ref$isDisabled = _ref.isDisabled,
7022
7072
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
7023
7073
  panelId = _ref.panelId,
7024
7074
  _ref$id = _ref.id,
7025
- id = _ref$id === void 0 ? 'workspace-options-toolbutton' : _ref$id,
7075
+ id = _ref$id === void 0 ? workspacePresetOptionId : _ref$id,
7026
7076
  _ref$isAdmin = _ref.isAdmin,
7027
7077
  isAdmin = _ref$isAdmin === void 0 ? false : _ref$isAdmin;
7028
7078
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
@@ -7039,32 +7089,23 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
7039
7089
  setAnchorEl(document.getElementById(id));
7040
7090
  }
7041
7091
  }, [isDefaultOpen, id]);
7042
- var editTitle = id === 'viewpreset-options-toolbutton' ? t('workspace-edit') : t('workspace-edit-both');
7043
- var options = !isAdmin ? [{
7092
+ var isViewPresetsOptions = id === viewPresetOptionId;
7093
+ var editTitle = isViewPresetsOptions ? t('workspace-edit') : t('workspace-edit-both');
7094
+ var saveAsTitle = isAdmin && !isViewPresetsOptions ? t('workspace-admin-save-new-workspace') : t('workspace-save-as');
7095
+ var isAdminWorkspaceOptions = isAdmin && id === workspacePresetOptionId;
7096
+ var options = [{
7044
7097
  title: t('workspace-save'),
7045
7098
  callback: handleSave
7046
7099
  }, {
7047
- title: t('workspace-save-as'),
7100
+ title: saveAsTitle,
7048
7101
  callback: handleSaveAs
7049
- }, {
7102
+ }].concat(!isAdminWorkspaceOptions ? [{
7050
7103
  title: editTitle,
7051
7104
  callback: handleEdit
7052
- }].concat(handleResetWorkspace ? [{
7053
- title: t('workspace-admin-reset-workspace'),
7054
- callback: handleResetWorkspace
7055
- }] : [], [{
7056
- title: t('workspace-delete'),
7057
- callback: handleDelete
7058
- }]) : [{
7059
- title: t('workspace-save'),
7060
- callback: handleSave
7061
- }].concat(handleSaveSystemPresetAs ? [{
7062
- title: t('workspace-admin-save-new-workspace'),
7063
- callback: handleSaveSystemPresetAs
7064
- }] : [], handleResetWorkspace ? [{
7065
- title: t('workspace-admin-reset-workspace'),
7066
- callback: handleResetWorkspace
7067
7105
  }] : [], [{
7106
+ title: t('workspace-reset'),
7107
+ callback: handleReset
7108
+ }, {
7068
7109
  title: t('workspace-delete'),
7069
7110
  callback: handleDelete
7070
7111
  }]);
@@ -7208,7 +7249,8 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7208
7249
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
7209
7250
  t = _useWorkspaceTranslat.t;
7210
7251
  var _useAuthenticationCon = useAuthenticationContext(),
7211
- currentRole = _useAuthenticationCon.currentRole;
7252
+ currentRole = _useAuthenticationCon.currentRole,
7253
+ isLoggedIn = _useAuthenticationCon.isLoggedIn;
7212
7254
  var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
7213
7255
  var workspaceView = useSelector(function (store) {
7214
7256
  var _workspaceSelectors$g;
@@ -7241,8 +7283,13 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7241
7283
  viewPresetDialog: viewPresetDialogOptions
7242
7284
  }));
7243
7285
  }, [dispatch]);
7286
+ var currentWarningsPreset = useSelector(function (store) {
7287
+ return publicWarningsSelectors.getWarningsPresetById(store, panelId);
7288
+ });
7244
7289
  var constructInitialProps = React.useCallback(function () {
7245
7290
  switch (viewComponentType) {
7291
+ case 'WarningList':
7292
+ return currentWarningsPreset;
7246
7293
  case 'TimeSeries':
7247
7294
  return timeSeriesSelectors.getTimeSeriesPreset(store.getState());
7248
7295
  case 'Map':
@@ -7253,7 +7300,7 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7253
7300
  default:
7254
7301
  return undefined;
7255
7302
  }
7256
- }, [panelId, relatedSyncGroupIds, store, viewComponentType]);
7303
+ }, [currentWarningsPreset, panelId, relatedSyncGroupIds, store, viewComponentType]);
7257
7304
  var onSave = React.useCallback(function () {
7258
7305
  dispatch(viewPresetActions.saveViewPreset({
7259
7306
  panelId: panelId,
@@ -7301,6 +7348,17 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7301
7348
  }
7302
7349
  });
7303
7350
  }, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title]);
7351
+ var onReset = React.useCallback(function () {
7352
+ openViewPresetsDialog({
7353
+ title: t('workspace-reset-title'),
7354
+ action: PresetAction.RESET,
7355
+ viewPresetId: activeViewPresetId,
7356
+ panelId: panelId,
7357
+ formValues: {
7358
+ title: title
7359
+ }
7360
+ });
7361
+ }, [activeViewPresetId, openViewPresetsDialog, panelId, t, title]);
7304
7362
  var toggleViewPresetDialog = React.useCallback(function (_ref3) {
7305
7363
  var panelId = _ref3.panelId,
7306
7364
  isViewPresetDialogOpen = _ref3.isViewPresetDialogOpen;
@@ -7322,6 +7380,8 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7322
7380
  return jsx(Preset, {});
7323
7381
  }, []);
7324
7382
  renderCounter.count(WorkspaceViewTitleConnectNoMemo.name);
7383
+ var currentViewScope = viewScope || 'system';
7384
+ var isEnabled = (currentViewScope === 'user' || isAdmin && currentViewScope === 'system') && activeViewPresetId !== '' && isLoggedIn;
7325
7385
  return jsxs(Fragment, {
7326
7386
  children: [jsx(CustomIconButton, {
7327
7387
  "data-testid": "open-viewpresets",
@@ -7335,11 +7395,12 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7335
7395
  panelId: panelId,
7336
7396
  title: fullTitle,
7337
7397
  hasChanges: hasViewPresetChanges || isNewActive,
7338
- handleSave: viewScope === 'user' ? onSave : undefined,
7339
- handleDelete: viewScope === 'user' ? onDelete : undefined,
7340
- handleSaveAs: onSaveAs,
7341
- handleEdit: viewScope === 'user' ? onEdit : undefined,
7342
- id: "viewpreset-options-toolbutton",
7398
+ handleSave: isEnabled ? onSave : undefined,
7399
+ handleDelete: isEnabled ? onDelete : undefined,
7400
+ handleSaveAs: isLoggedIn ? onSaveAs : undefined,
7401
+ handleEdit: isEnabled ? onEdit : undefined,
7402
+ handleReset: onReset,
7403
+ id: viewPresetOptionId,
7343
7404
  isAdmin: isAdmin
7344
7405
  }), jsx(LoadingIndicatorConnect, {
7345
7406
  panelId: panelId
@@ -8081,7 +8142,7 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
8081
8142
  var onSaveSystemPreset = function onSaveSystemPreset() {
8082
8143
  return onSaveAction(WorkspacePresetAction.SAVE_SYSTEM_PRESET, 'system');
8083
8144
  };
8084
- var onResetWorkspace = function onResetWorkspace() {
8145
+ var onReset = function onReset() {
8085
8146
  setWorkspaceActionDialogOptions({
8086
8147
  action: WorkspacePresetAction.RESET,
8087
8148
  presetId: workspaceId,
@@ -8118,16 +8179,18 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
8118
8179
  }
8119
8180
  return isAdmin ? onSaveSystemPreset : undefined;
8120
8181
  };
8182
+ var handleSaveAs = function handleSaveAs() {
8183
+ return isAdmin ? onSaveSystemPresetAs : onSaveAs;
8184
+ };
8121
8185
  return jsx(WorkspaceOptions, {
8122
8186
  hasChanges: hasChanges,
8123
8187
  title: fullTitle,
8124
8188
  activeTab: activeTab,
8125
8189
  handleDelete: getOnDelete(),
8126
- handleSaveAs: onSaveAs,
8190
+ handleSaveAs: handleSaveAs(),
8127
8191
  handleSave: handleSave(),
8128
8192
  handleEdit: isUserPreset ? onEdit : undefined,
8129
- handleSaveSystemPresetAs: isUserPreset ? undefined : onSaveSystemPresetAs,
8130
- handleResetWorkspace: onResetWorkspace,
8193
+ handleReset: onReset,
8131
8194
  isDisabled: !viewIds.length || !isLoggedIn,
8132
8195
  isAdmin: isAdmin
8133
8196
  });
@@ -8206,7 +8269,7 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
8206
8269
  error = viewPreset.error;
8207
8270
  var fieldNameTitle = "views." + index + ".title";
8208
8271
  React__default.useEffect(function () {
8209
- var suffix = isNew || viewPreset.scope === 'system' || isAdmin ? " " + viewPreset.mosaicNodeId : '';
8272
+ var suffix = isNew || viewPreset.scope === 'system' && !isAdmin ? " " + viewPreset.mosaicNodeId : '';
8210
8273
  var initialTitle = "" + viewPresetTitle + suffix;
8211
8274
  setValue("views." + index + ".title", initialTitle);
8212
8275
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -8470,7 +8533,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8470
8533
  }
8471
8534
  case WorkspacePresetAction.RESET:
8472
8535
  {
8473
- return t('workspace-admin-reset-workspace');
8536
+ return t('workspace-reset');
8474
8537
  }
8475
8538
  default:
8476
8539
  {
@@ -8510,7 +8573,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8510
8573
  }
8511
8574
  case WorkspacePresetAction.RESET:
8512
8575
  {
8513
- return t('workspace-admin-reset-workspace-title');
8576
+ return t('workspace-reset-title');
8514
8577
  }
8515
8578
  default:
8516
8579
  {
@@ -8729,6 +8792,20 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
8729
8792
  name: "title",
8730
8793
  defaultValue: title
8731
8794
  }, "title")]
8795
+ }), action === PresetAction.RESET && jsxs(Box, {
8796
+ children: [jsxs(Typography, {
8797
+ variant: "body1",
8798
+ children: [jsx(Exclamation, {
8799
+ sx: {
8800
+ top: '6px',
8801
+ position: 'relative',
8802
+ color: 'geowebColors.functional.warning'
8803
+ }
8804
+ }), t('workspace-dialog-confirm-reset-view-message')]
8805
+ }), jsx(ReactHookFormHiddenInput, {
8806
+ name: "title",
8807
+ defaultValue: title
8808
+ }, "title")]
8732
8809
  })]
8733
8810
  });
8734
8811
  };
@@ -8742,7 +8819,8 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8742
8819
  formValues = _ref.formValues,
8743
8820
  onSuccess = _ref.onSuccess,
8744
8821
  onClose = _ref.onClose,
8745
- title = _ref.title;
8822
+ title = _ref.title,
8823
+ onReset = _ref.onReset;
8746
8824
  var _useFormContext = useFormContext(),
8747
8825
  handleFormSubmit = _useFormContext.handleSubmit,
8748
8826
  reset = _useFormContext.reset;
@@ -8750,6 +8828,9 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8750
8828
  t = _useWorkspaceTranslat.t;
8751
8829
  var _useApiContext = useApiContext(),
8752
8830
  api = _useApiContext.api;
8831
+ var _useAuthenticationCon = useAuthenticationContext$1(),
8832
+ currentRole = _useAuthenticationCon.currentRole;
8833
+ var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN$1.name;
8753
8834
  var _React$useState = React__default.useState(),
8754
8835
  error = _React$useState[0],
8755
8836
  setError = _React$useState[1];
@@ -8774,72 +8855,88 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8774
8855
  {
8775
8856
  return t('workspace-save');
8776
8857
  }
8858
+ case PresetAction.RESET:
8859
+ {
8860
+ return t('workspace-reset');
8861
+ }
8777
8862
  default:
8778
8863
  return t('workspace-save');
8779
8864
  }
8780
8865
  };
8781
8866
  var confirmLabel = getConfirmLabel(action);
8782
8867
  var onFormSubmit = /*#__PURE__*/function () {
8783
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(newFormValues) {
8784
- var newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, message;
8868
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formValues) {
8869
+ var scope, newFormValues, newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, submitError, message;
8785
8870
  return _regeneratorRuntime().wrap(function _callee$(_context) {
8786
8871
  while (1) switch (_context.prev = _context.next) {
8787
8872
  case 0:
8788
- _context.prev = 0;
8873
+ scope = isAdmin ? 'system' : formValues.scope;
8874
+ newFormValues = Object.assign({}, formValues, {
8875
+ scope: scope
8876
+ });
8877
+ _context.prev = 2;
8789
8878
  setError(null);
8790
8879
  setIsLoading(true);
8791
8880
  _context.t0 = action;
8792
- _context.next = _context.t0 === PresetAction.SAVE_AS ? 6 : _context.t0 === PresetAction.DELETE ? 13 : _context.t0 === PresetAction.EDIT ? 19 : 30;
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;
8793
8882
  break;
8794
- case 6:
8795
- _context.next = 8;
8796
- return api.saveViewPresetAs(newFormValues);
8797
8883
  case 8:
8884
+ _context.next = 10;
8885
+ return api.saveViewPresetAs(newFormValues);
8886
+ case 10:
8798
8887
  newId = _context.sent;
8799
8888
  setIsLoading(false);
8800
8889
  onClose();
8801
8890
  onSuccess(action, newId, newFormValues.title);
8802
- return _context.abrupt("break", 31);
8803
- case 13:
8804
- _context.next = 15;
8805
- return api.deleteViewPreset(viewPresetId);
8891
+ return _context.abrupt("break", 38);
8806
8892
  case 15:
8893
+ _context.next = 17;
8894
+ return api.deleteViewPreset(viewPresetId);
8895
+ case 17:
8807
8896
  setIsLoading(false);
8808
8897
  onClose();
8809
8898
  onSuccess(action, viewPresetId, newFormValues.title);
8810
- return _context.abrupt("break", 31);
8811
- case 19:
8812
- _context.next = 21;
8813
- return api.getViewPreset(viewPresetId);
8899
+ return _context.abrupt("break", 38);
8814
8900
  case 21:
8901
+ _context.next = 23;
8902
+ return api.getViewPreset(viewPresetId);
8903
+ case 23:
8815
8904
  _yield$api$getViewPre = _context.sent;
8816
8905
  originalViewPreset = _yield$api$getViewPre.data;
8817
8906
  viewPresetEdited = Object.assign({}, originalViewPreset, {
8818
- title: newFormValues.title
8907
+ title: newFormValues.title,
8908
+ scope: scope
8819
8909
  });
8820
- _context.next = 26;
8910
+ _context.next = 28;
8821
8911
  return api.saveViewPreset(viewPresetId, viewPresetEdited);
8822
- case 26:
8912
+ case 28:
8823
8913
  setIsLoading(false);
8824
8914
  onClose();
8825
8915
  onSuccess(action, viewPresetId, newFormValues.title);
8826
- return _context.abrupt("break", 31);
8827
- case 30:
8828
- return _context.abrupt("break", 31);
8829
- case 31:
8830
- _context.next = 38;
8916
+ return _context.abrupt("break", 38);
8917
+ case 32:
8918
+ 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;
8831
8927
  break;
8832
- case 33:
8833
- _context.prev = 33;
8834
- _context.t1 = _context["catch"](0);
8928
+ case 40:
8929
+ _context.prev = 40;
8930
+ _context.t1 = _context["catch"](2);
8835
8931
  setIsLoading(false);
8836
- message = isAxiosError$1(_context.t1) ? getAxiosErrorMessage(_context.t1) : _context.t1.message;
8932
+ submitError = _context.t1;
8933
+ message = isAxiosError$1(submitError) ? getAxiosErrorMessage(submitError) : submitError.message;
8837
8934
  setError(message);
8838
- case 38:
8935
+ case 46:
8839
8936
  case "end":
8840
8937
  return _context.stop();
8841
8938
  }
8842
- }, _callee, null, [[0, 33]]);
8939
+ }, _callee, null, [[2, 40]]);
8843
8940
  }));
8844
8941
  return function onFormSubmit(_x) {
8845
8942
  return _ref2.apply(this, arguments);
@@ -8894,6 +8991,9 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
8894
8991
  onClose: onClose,
8895
8992
  onSubmit: onSubmit,
8896
8993
  isLoading: isLoading,
8994
+ sx: {
8995
+ width: '330px'
8996
+ },
8897
8997
  content: jsx(ViewPresetsForm, {
8898
8998
  viewComponentType: viewComponentType,
8899
8999
  formValues: formValues,
@@ -8911,7 +9011,9 @@ var ViewPresetsFormDialogWrapper = function ViewPresetsFormDialogWrapper(_ref5)
8911
9011
  });
8912
9012
  };
8913
9013
 
8914
- var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect() {
9014
+ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
9015
+ var _ref$scope = _ref.scope,
9016
+ scope = _ref$scope === void 0 ? 'user' : _ref$scope;
8915
9017
  var dispatch = useDispatch();
8916
9018
  var dialogOptions = useSelector(function (store) {
8917
9019
  return getDialogOptions(store);
@@ -8920,6 +9022,13 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect() {
8920
9022
  var viewComponentType = useSelector(function (store) {
8921
9023
  return getViewComponentType(store, panelId);
8922
9024
  });
9025
+ var onReset = React__default.useCallback(function (viewPresetId) {
9026
+ dispatch(viewPresetActions.selectViewPreset({
9027
+ panelId: panelId,
9028
+ viewPresetId: viewPresetId,
9029
+ shouldReset: true
9030
+ }));
9031
+ }, [dispatch, panelId]);
8923
9032
  var closeDialog = React__default.useCallback(function () {
8924
9033
  dispatch(viewPresetActions.closeViewPresetDialog());
8925
9034
  }, [dispatch]);
@@ -8931,7 +9040,8 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect() {
8931
9040
  panelId: panelId,
8932
9041
  viewPresetId: newViewPresetId,
8933
9042
  action: action,
8934
- title: title
9043
+ title: title,
9044
+ scope: scope
8935
9045
  }));
8936
9046
  };
8937
9047
  var isOpen = dialogOptions !== undefined;
@@ -8944,15 +9054,14 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect() {
8944
9054
  onSuccess: onSuccess,
8945
9055
  viewComponentType: viewComponentType
8946
9056
  }, dialogOptions, {
8947
- formValues: dialogOptions == null ? void 0 : dialogOptions.formValues
9057
+ formValues: dialogOptions == null ? void 0 : dialogOptions.formValues,
9058
+ onReset: onReset
8948
9059
  }));
8949
9060
  };
8950
9061
 
8951
- var FetchInitialPresets = function FetchInitialPresets() {
9062
+ var FetchInitialPresets = function FetchInitialPresets(_ref) {
9063
+ var isAdmin = _ref.isAdmin;
8952
9064
  var dispatch = useDispatch();
8953
- var _useAuthenticationCon = useAuthenticationContext(),
8954
- currentRole = _useAuthenticationCon.currentRole;
8955
- var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
8956
9065
  var fetchInitialPresets = React.useCallback(function (params) {
8957
9066
  dispatch(viewPresetActions.fetchInitialViewPresets(params));
8958
9067
  }, [dispatch]);
@@ -8965,16 +9074,19 @@ var FetchInitialPresets = function FetchInitialPresets() {
8965
9074
  }, [isAdmin]);
8966
9075
  return null;
8967
9076
  };
8968
- var WorkspaceDetail = function WorkspaceDetail(_ref) {
8969
- var initialWorkspaceId = _ref.initialWorkspaceId,
8970
- workspaceId = _ref.workspaceId,
8971
- children = _ref.children,
8972
- componentsLookUp = _ref.componentsLookUp,
8973
- _ref$isSnapshot = _ref.isSnapshot,
8974
- isSnapshot = _ref$isSnapshot === void 0 ? false : _ref$isSnapshot;
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;
8975
9084
  var dispatch = useDispatch();
8976
9085
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
8977
9086
  t = _useWorkspaceTranslat.t;
9087
+ var _useAuthenticationCon = useAuthenticationContext(),
9088
+ currentRole = _useAuthenticationCon.currentRole;
9089
+ var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
8978
9090
  var error = useSelector(function (store) {
8979
9091
  return getWorkspaceError(store);
8980
9092
  });
@@ -9020,7 +9132,9 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
9020
9132
  width: '100%',
9021
9133
  height: '100%'
9022
9134
  },
9023
- children: [jsx(FetchInitialPresets, {}), isLoading && jsx(LinearProgress, {
9135
+ children: [jsx(FetchInitialPresets, {
9136
+ isAdmin: isAdmin
9137
+ }), isLoading && jsx(LinearProgress, {
9024
9138
  "data-testid": "loading-bar",
9025
9139
  color: "secondary",
9026
9140
  sx: {
@@ -9073,8 +9187,10 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
9073
9187
  componentsLookUp: componentsLookUp
9074
9188
  })
9075
9189
  })]
9076
- }), jsx(ViewPresetsFormDialogConnect, {})]
9190
+ }), jsx(ViewPresetsFormDialogConnect, {
9191
+ scope: isAdmin ? 'system' : 'user'
9192
+ })]
9077
9193
  });
9078
9194
  };
9079
9195
 
9080
- 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, workspaceListActions, workspaceListener, workspaceModuleConfig, reducer$1 as workspaceReducer, routes as workspaceRoutes, workspaceTranslations };
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 };