@opengeoweb/workspace 14.5.2 → 15.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.
package/index.esm.js CHANGED
@@ -3,11 +3,11 @@ import { createApiInstance, createNonAuthApiInstance, getApi, getHeaders, handle
3
3
  import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, createViewObjectForNewMap, mapListener, serviceListener, layersListener, syncGroupsListener, openlayersListener, uiReducer, loadingIndicatorReducer, syncGroupsReducer, layerReducer, serviceReducer, mapReducer, uiTypes, linkComponentTypesConstants, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
4
4
  import { chunk, union, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
5
5
  import { getLeaves, createBalancedTreeFromLeaves, MosaicContext, getAndAssertNodeAtPathExists, MosaicWindow, Mosaic } from 'react-mosaic-component';
6
+ import { queryOptions, useMutation, useQuery } from '@tanstack/react-query';
7
+ import { sessionStorageProvider, getAxiosErrorMessage, isAxiosError, isAxiosAuthError, safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, usePrevious, AlertBanner, CustomAccordion, CustomTooltip, dateUtils, SystemScope, SearchHighlight, ToggleMenu, SearchField, Filter, LastUpdateTime, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, ConfirmationButtons } from '@opengeoweb/shared';
6
8
  import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/time-series';
7
9
  import { publicWarningActions, publicWarningsSelectors, warningsTranslations, WARN_NAMESPACE } from '@opengeoweb/warnings';
8
10
  import { snackbarTypes, snackbarActions, snackbarListener, snackbarReducer, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
9
- import { queryOptions, useQuery, useMutation } from '@tanstack/react-query';
10
- import { sessionStorageProvider, getAxiosErrorMessage, isAxiosError, isAxiosAuthError, safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, usePrevious, AlertBanner, CustomAccordion, CustomTooltip, dateUtils, SystemScope, SearchHighlight, ToggleMenu, SearchField, Filter, LastUpdateTime, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, ConfirmationButtons } from '@opengeoweb/shared';
11
11
  import { isAxiosError as isAxiosError$1 } from 'axios';
12
12
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
13
13
  import { useTranslation, I18nextProvider } from 'react-i18next';
@@ -143,7 +143,10 @@ var en = {
143
143
  "workspace-labels-dataSource": "Data Source",
144
144
  "workspace-labels-viewType": "View Type",
145
145
  "workspace-presets-form-active-labels": "Active labels ({{count}})",
146
- "workspace-label-active": "ACTIVE"
146
+ "workspace-label-active": "ACTIVE",
147
+ "fetch-config-error-retry": "Retry",
148
+ "fetch-config-error-title": "An error has occured whilst fetching the label configuration",
149
+ "fetch-config-no-labels-available": "There are no labels available, please contact your administrator"
147
150
  };
148
151
  var fi = {
149
152
  "workspace-menu": "Workspace menu",
@@ -492,7 +495,10 @@ var nl = {
492
495
  "workspace-labels-dataSource": "niet vertaald",
493
496
  "workspace-labels-viewType": "niet vertaald",
494
497
  "workspace-presets-form-active-labels": "niet vertaald ({{count}})",
495
- "workspace-label-active": "ACTIVE"
498
+ "workspace-label-active": "ACTIVE",
499
+ "fetch-config-error-retry": "Opnieuw proberen",
500
+ "fetch-config-error-title": "Het ophalen van de label configuratie is mislukt",
501
+ "fetch-config-no-labels-available": "Er zijn geen labels beschikbaar, neem contact op met de administrator"
496
502
  };
497
503
  var workspaceTranslations = {
498
504
  en: en,
@@ -504,11 +510,6 @@ var workspaceTranslations = {
504
510
  function _OverloadYield(e, d) {
505
511
  this.v = e, this.k = d;
506
512
  }
507
- function _arrayLikeToArray(r, a) {
508
- (null == a || a > r.length) && (a = r.length);
509
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
510
- return n;
511
- }
512
513
  function asyncGeneratorStep(n, t, e, r, o, a, c) {
513
514
  try {
514
515
  var i = n[a](c),
@@ -534,23 +535,6 @@ function _asyncToGenerator(n) {
534
535
  });
535
536
  };
536
537
  }
537
- function _createForOfIteratorHelperLoose(r, e) {
538
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
539
- if (t) return (t = t.call(r)).next.bind(t);
540
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {
541
- t && (r = t);
542
- var o = 0;
543
- return function () {
544
- return o >= r.length ? {
545
- done: true
546
- } : {
547
- done: false,
548
- value: r[o++]
549
- };
550
- };
551
- }
552
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
553
- }
554
538
  function _objectDestructuringEmpty(t) {
555
539
  if (null == t) throw new TypeError("Cannot destructure " + t);
556
540
  }
@@ -738,13 +722,6 @@ function _regeneratorValues(e) {
738
722
  }
739
723
  throw new TypeError(typeof e + " is not iterable");
740
724
  }
741
- function _unsupportedIterableToArray(r, a) {
742
- if (r) {
743
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
744
- var t = {}.toString.call(r).slice(8, -1);
745
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
746
- }
747
- }
748
725
  function _regeneratorRuntime() {
749
726
 
750
727
  var r = _regenerator(),
@@ -857,88 +834,71 @@ var getApiRoutes$1 = function getApiRoutes(axiosInstance) {
857
834
  }
858
835
  return getWorkspacePreset;
859
836
  }(),
860
- saveWorkspacePreset: function () {
861
- var _saveWorkspacePreset = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(workspacePresetId, data) {
837
+ saveWorkspacePresetAs: function () {
838
+ var _saveWorkspacePresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {
862
839
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
863
840
  while (1) switch (_context3.prev = _context3.next) {
864
841
  case 0:
865
- return _context3.abrupt("return", axiosInstance.put("/workspacepreset/" + workspacePresetId + "/", data));
866
- case 1:
867
- case "end":
868
- return _context3.stop();
869
- }
870
- }, _callee3);
871
- }));
872
- function saveWorkspacePreset(_x3, _x4) {
873
- return _saveWorkspacePreset.apply(this, arguments);
874
- }
875
- return saveWorkspacePreset;
876
- }(),
877
- saveWorkspacePresetAs: function () {
878
- var _saveWorkspacePresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(data) {
879
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
880
- while (1) switch (_context4.prev = _context4.next) {
881
- case 0:
882
- return _context4.abrupt("return", axiosInstance.post("/workspacepreset/", data).then(function (response) {
842
+ return _context3.abrupt("return", axiosInstance.post("/workspacepreset/", data).then(function (response) {
883
843
  var headerLocation = response == null ? void 0 : response.request.getResponseHeader('Location');
884
844
  return getIdFromUrl(headerLocation);
885
845
  }));
886
846
  case 1:
887
847
  case "end":
888
- return _context4.stop();
848
+ return _context3.stop();
889
849
  }
890
- }, _callee4);
850
+ }, _callee3);
891
851
  }));
892
- function saveWorkspacePresetAs(_x5) {
852
+ function saveWorkspacePresetAs(_x3) {
893
853
  return _saveWorkspacePresetAs.apply(this, arguments);
894
854
  }
895
855
  return saveWorkspacePresetAs;
896
856
  }(),
897
857
  // view presets
898
858
  getViewPresets: function () {
899
- var _getViewPresets = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(params) {
900
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
901
- while (1) switch (_context5.prev = _context5.next) {
859
+ var _getViewPresets = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
860
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
861
+ while (1) switch (_context4.prev = _context4.next) {
902
862
  case 0:
903
- return _context5.abrupt("return", axiosInstance.get('/viewpreset', {
863
+ return _context4.abrupt("return", axiosInstance.get('/viewpreset', {
904
864
  params: params
905
865
  }));
906
866
  case 1:
907
867
  case "end":
908
- return _context5.stop();
868
+ return _context4.stop();
909
869
  }
910
- }, _callee5);
870
+ }, _callee4);
911
871
  }));
912
- function getViewPresets(_x6) {
872
+ function getViewPresets(_x4) {
913
873
  return _getViewPresets.apply(this, arguments);
914
874
  }
915
875
  return getViewPresets;
916
876
  }(),
917
877
  saveViewPreset: function () {
918
- var _saveViewPreset = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(viewPresetId, data) {
919
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
920
- while (1) switch (_context6.prev = _context6.next) {
878
+ var _saveViewPreset = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(viewPresetId, data) {
879
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
880
+ while (1) switch (_context5.prev = _context5.next) {
921
881
  case 0:
922
- return _context6.abrupt("return", axiosInstance.put("/viewpreset/" + viewPresetId + "/", data.initialProps === null ? Object.assign({}, data, {
882
+ return _context5.abrupt("return", axiosInstance.put("/viewpreset/" + viewPresetId + "/", data.initialProps === null ? Object.assign({}, data, {
923
883
  initialProps: {}
924
884
  }) : data));
925
885
  case 1:
926
886
  case "end":
927
- return _context6.stop();
887
+ return _context5.stop();
928
888
  }
929
- }, _callee6);
889
+ }, _callee5);
930
890
  }));
931
- function saveViewPreset(_x7, _x8) {
891
+ function saveViewPreset(_x5, _x6) {
932
892
  return _saveViewPreset.apply(this, arguments);
933
893
  }
934
894
  return saveViewPreset;
935
895
  }(),
936
896
  saveViewPresetAs: function () {
937
- var _saveViewPresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(data) {
938
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
939
- while (1) switch (_context7.prev = _context7.next) {
897
+ var _saveViewPresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(data) {
898
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
899
+ while (1) switch (_context6.prev = _context6.next) {
940
900
  case 0:
941
- return _context7.abrupt("return", axiosInstance.post("/viewpreset/", data.initialProps === null ? Object.assign({}, data, {
901
+ return _context6.abrupt("return", axiosInstance.post("/viewpreset/", data.initialProps === null ? Object.assign({}, data, {
942
902
  initialProps: {}
943
903
  }) : data).then(function (response) {
944
904
  var headerLocation = response == null ? void 0 : response.request.getResponseHeader('Location');
@@ -946,11 +906,11 @@ var getApiRoutes$1 = function getApiRoutes(axiosInstance) {
946
906
  }));
947
907
  case 1:
948
908
  case "end":
949
- return _context7.stop();
909
+ return _context6.stop();
950
910
  }
951
- }, _callee7);
911
+ }, _callee6);
952
912
  }));
953
- function saveViewPresetAs(_x9) {
913
+ function saveViewPresetAs(_x7) {
954
914
  return _saveViewPresetAs.apply(this, arguments);
955
915
  }
956
916
  return saveViewPresetAs;
@@ -1088,6 +1048,121 @@ var toViewsArray = function toViewsArray(wsViews) {
1088
1048
  });
1089
1049
  };
1090
1050
 
1051
+ /* *
1052
+ * Licensed under the Apache License, Version 2.0 (the "License");
1053
+ * you may not use this file except in compliance with the License.
1054
+ * You may obtain a copy of the License at
1055
+ *
1056
+ * http://www.apache.org/licenses/LICENSE-2.0
1057
+ *
1058
+ * Unless required by applicable law or agreed to in writing, software
1059
+ * distributed under the License is distributed on an "AS IS" BASIS,
1060
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1061
+ * See the License for the specific language governing permissions and
1062
+ * limitations under the License.
1063
+ *
1064
+ * Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
1065
+ * Copyright 2026 - Finnish Meteorological Institute (FMI)
1066
+ * Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
1067
+ * */
1068
+ /*
1069
+ configureLibraryDefaults([LIB_KEY], {
1070
+ staleTime: 5 * 60 * 1000,
1071
+ });
1072
+ */
1073
+ var LIB_KEY = 'workspace-lib';
1074
+ var getPresetBaseUrl = function getPresetBaseUrl() {
1075
+ var config = sessionStorageProvider.getConfig();
1076
+ return (config == null ? void 0 : config.GW_PRESET_BACKEND_URL) || '';
1077
+ };
1078
+
1079
+ var getViewPreset = /*#__PURE__*/function () {
1080
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(viewpresetId, auth) {
1081
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1082
+ while (1) switch (_context.prev = _context.next) {
1083
+ case 0:
1084
+ return _context.abrupt("return", fetch(getPresetBaseUrl() + "/viewpreset/" + viewpresetId, {
1085
+ headers: getHeaders(auth)
1086
+ }).then(handleResponse));
1087
+ case 1:
1088
+ case "end":
1089
+ return _context.stop();
1090
+ }
1091
+ }, _callee);
1092
+ }));
1093
+ return function getViewPreset(_x, _x2) {
1094
+ return _ref.apply(this, arguments);
1095
+ };
1096
+ }();
1097
+ var updateViewPreset = /*#__PURE__*/function () {
1098
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(viewpresetId, data, auth) {
1099
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1100
+ while (1) switch (_context2.prev = _context2.next) {
1101
+ case 0:
1102
+ return _context2.abrupt("return", fetch(getPresetBaseUrl() + "/viewpreset/" + viewpresetId, {
1103
+ headers: getHeaders(auth),
1104
+ method: 'PUT',
1105
+ body: JSON.stringify(data)
1106
+ }).then(handleResponse));
1107
+ case 1:
1108
+ case "end":
1109
+ return _context2.stop();
1110
+ }
1111
+ }, _callee2);
1112
+ }));
1113
+ return function updateViewPreset(_x3, _x4, _x5) {
1114
+ return _ref2.apply(this, arguments);
1115
+ };
1116
+ }();
1117
+ var deleteViewPreset = /*#__PURE__*/function () {
1118
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(viewPresetId, auth) {
1119
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
1120
+ while (1) switch (_context3.prev = _context3.next) {
1121
+ case 0:
1122
+ return _context3.abrupt("return", fetch(getPresetBaseUrl() + "/viewpreset/" + viewPresetId, {
1123
+ method: 'DELETE',
1124
+ headers: getHeaders(auth)
1125
+ }).then(handleResponse));
1126
+ case 1:
1127
+ case "end":
1128
+ return _context3.stop();
1129
+ }
1130
+ }, _callee3);
1131
+ }));
1132
+ return function deleteViewPreset(_x6, _x7) {
1133
+ return _ref3.apply(this, arguments);
1134
+ };
1135
+ }();
1136
+
1137
+ var API_KEY$1 = 'viewpresets-api';
1138
+ var generateViewPresetsQueryKeys = function generateViewPresetsQueryKeys(queryKeys) {
1139
+ return [LIB_KEY, API_KEY$1].concat(queryKeys);
1140
+ };
1141
+ var viewpresetsQueryOptions = {
1142
+ getViewPreset: function getViewPreset$1(id, credentials) {
1143
+ return queryOptions({
1144
+ queryKey: generateViewPresetsQueryKeys([id]),
1145
+ queryFn: function () {
1146
+ var _queryFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
1147
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1148
+ while (1) switch (_context.prev = _context.next) {
1149
+ case 0:
1150
+ return _context.abrupt("return", getViewPreset(id, credentials));
1151
+ case 1:
1152
+ case "end":
1153
+ return _context.stop();
1154
+ }
1155
+ }, _callee);
1156
+ }));
1157
+ function queryFn() {
1158
+ return _queryFn.apply(this, arguments);
1159
+ }
1160
+ return queryFn;
1161
+ }()
1162
+ });
1163
+ }
1164
+ };
1165
+
1091
1166
  /* *
1092
1167
  * Licensed under the Apache License, Version 2.0 (the "License");
1093
1168
  * you may not use this file except in compliance with the License.
@@ -1443,7 +1518,7 @@ var viewPresetsAdapter = createEntityAdapter({
1443
1518
  var initialState$2 = viewPresetsAdapter.getInitialState();
1444
1519
  var warningsPresetChangeActions = [publicWarningActions.setWarningFilters];
1445
1520
  var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
1446
- var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, layerActions.layerChangeAcceptanceTime, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.setAutoTimestepLayerId, mapActions.setAutoUpdateLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setTimeSliderSpan, mapActions.toggleTimeSpanAuto, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, mapActions.changeOverlayer, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
1521
+ var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, layerActions.layerChangeAcceptanceTime, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.setAutoTimestepLayerId, mapActions.setAutoUpdateLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setTimeSliderSpan, mapActions.toggleTimeSpanAuto, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, mapActions.changeOverlayer, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox, mapActions.toggleClock];
1447
1522
  var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle];
1448
1523
  var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
1449
1524
  var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
@@ -1857,6 +1932,23 @@ var slice$2 = createSlice({
1857
1932
  var viewPresetsReducer = slice$2.reducer,
1858
1933
  viewPresetActions = slice$2.actions;
1859
1934
 
1935
+ /* *
1936
+ * Licensed under the Apache License, Version 2.0 (the "License");
1937
+ * you may not use this file except in compliance with the License.
1938
+ * You may obtain a copy of the License at
1939
+ *
1940
+ * http://www.apache.org/licenses/LICENSE-2.0
1941
+ *
1942
+ * Unless required by applicable law or agreed to in writing, software
1943
+ * distributed under the License is distributed on an "AS IS" BASIS,
1944
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1945
+ * See the License for the specific language governing permissions and
1946
+ * limitations under the License.
1947
+ *
1948
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
1949
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
1950
+ * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
1951
+ * */
1860
1952
  var getCleanSearchQuery = function getCleanSearchQuery(searchQuery) {
1861
1953
  return searchQuery.trim().split(/\s+/).join();
1862
1954
  };
@@ -1918,33 +2010,15 @@ var filterAndSortPresets = function filterAndSortPresets(presets, selectedFilter
1918
2010
  var matchesLabelFilters = function matchesLabelFilters(preset) {
1919
2011
  var _preset$labels;
1920
2012
  var presetLabels = (_preset$labels = preset.labels) != null ? _preset$labels : {};
1921
- var _loop = function _loop() {
1922
- var _presetLabels$key;
1923
- var _step$value = _step.value,
1924
- key = _step$value.key,
1925
- selectedValues = _step$value.values;
1926
- var presetValues = (_presetLabels$key = presetLabels[key]) != null ? _presetLabels$key : [];
1927
- // If user filtered on this group but preset has no labels in it → exclude
1928
- if (!presetValues.length) {
1929
- return {
1930
- v: false
1931
- };
1932
- }
1933
- var hasAllSelectedValues = selectedValues.every(function (label) {
1934
- return presetValues.includes(label);
1935
- });
1936
- if (!hasAllSelectedValues) {
1937
- return {
1938
- v: false
1939
- };
1940
- }
1941
- },
1942
- _ret;
1943
- for (var _iterator = _createForOfIteratorHelperLoose(activeGroups), _step; !(_step = _iterator()).done;) {
1944
- _ret = _loop();
1945
- if (_ret) return _ret.v;
1946
- }
1947
- return true;
2013
+ return activeGroups.some(function (_ref2) {
2014
+ var _presetLabels$key;
2015
+ var key = _ref2.key,
2016
+ selectedValues = _ref2.values;
2017
+ var presetValues = (_presetLabels$key = presetLabels[key]) != null ? _presetLabels$key : [];
2018
+ return selectedValues.some(function (label) {
2019
+ return presetValues.includes(label);
2020
+ });
2021
+ });
1948
2022
  };
1949
2023
  return scopeFiltered.filter(matchesLabelFilters);
1950
2024
  }();
@@ -2879,16 +2953,12 @@ var getViewPresetLabelFilters = createSelector(getViewPresetById, function (_sto
2879
2953
  return viewPreset == null ? void 0 : viewPreset.labelFilters;
2880
2954
  }, selectorMemoizationOptions);
2881
2955
 
2882
- var getPresetBaseUrl = function getPresetBaseUrl() {
2883
- var config = sessionStorageProvider.getConfig();
2884
- return (config == null ? void 0 : config.GW_PRESET_BACKEND_URL) || '';
2885
- };
2886
- var getViewPreset = /*#__PURE__*/function () {
2887
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(viewpresetId, auth) {
2956
+ var getWorkspaceLabelsConfig = /*#__PURE__*/function () {
2957
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(auth) {
2888
2958
  return _regeneratorRuntime().wrap(function _callee$(_context) {
2889
2959
  while (1) switch (_context.prev = _context.next) {
2890
2960
  case 0:
2891
- return _context.abrupt("return", fetch(getPresetBaseUrl() + "/viewpreset/" + viewpresetId, {
2961
+ return _context.abrupt("return", fetch(getPresetBaseUrl() + "/workspace-labels-config", {
2892
2962
  headers: getHeaders(auth)
2893
2963
  }).then(handleResponse));
2894
2964
  case 1:
@@ -2897,19 +2967,17 @@ var getViewPreset = /*#__PURE__*/function () {
2897
2967
  }
2898
2968
  }, _callee);
2899
2969
  }));
2900
- return function getViewPreset(_x, _x2) {
2970
+ return function getWorkspaceLabelsConfig(_x) {
2901
2971
  return _ref.apply(this, arguments);
2902
2972
  };
2903
2973
  }();
2904
- var updateViewPreset = /*#__PURE__*/function () {
2905
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(viewpresetId, data, auth) {
2974
+ var getWorkspace = /*#__PURE__*/function () {
2975
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(workspaceId, auth) {
2906
2976
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
2907
2977
  while (1) switch (_context2.prev = _context2.next) {
2908
2978
  case 0:
2909
- return _context2.abrupt("return", fetch(getPresetBaseUrl() + "/viewpreset/" + viewpresetId, {
2910
- headers: getHeaders(auth),
2911
- method: 'PUT',
2912
- body: JSON.stringify(data)
2979
+ return _context2.abrupt("return", fetch(getPresetBaseUrl() + "/workspacepreset/" + workspaceId, {
2980
+ headers: getHeaders(auth)
2913
2981
  }).then(handleResponse));
2914
2982
  case 1:
2915
2983
  case "end":
@@ -2917,18 +2985,18 @@ var updateViewPreset = /*#__PURE__*/function () {
2917
2985
  }
2918
2986
  }, _callee2);
2919
2987
  }));
2920
- return function updateViewPreset(_x3, _x4, _x5) {
2988
+ return function getWorkspace(_x2, _x3) {
2921
2989
  return _ref2.apply(this, arguments);
2922
2990
  };
2923
2991
  }();
2924
- var deleteViewPreset = /*#__PURE__*/function () {
2925
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(viewPresetId, auth) {
2992
+ var deleteWorkspace = /*#__PURE__*/function () {
2993
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(workspaceId, auth) {
2926
2994
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
2927
2995
  while (1) switch (_context3.prev = _context3.next) {
2928
2996
  case 0:
2929
- return _context3.abrupt("return", fetch(getPresetBaseUrl() + "/viewpreset/" + viewPresetId, {
2930
- method: 'DELETE',
2931
- headers: getHeaders(auth)
2997
+ return _context3.abrupt("return", fetch(getPresetBaseUrl() + "/workspacepreset/" + workspaceId, {
2998
+ headers: getHeaders(auth),
2999
+ method: 'DELETE'
2932
3000
  }).then(handleResponse));
2933
3001
  case 1:
2934
3002
  case "end":
@@ -2936,49 +3004,92 @@ var deleteViewPreset = /*#__PURE__*/function () {
2936
3004
  }
2937
3005
  }, _callee3);
2938
3006
  }));
2939
- return function deleteViewPreset(_x6, _x7) {
3007
+ return function deleteWorkspace(_x4, _x5) {
2940
3008
  return _ref3.apply(this, arguments);
2941
3009
  };
2942
3010
  }();
3011
+ var updateWorkspace = /*#__PURE__*/function () {
3012
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(workspaceId, data, auth) {
3013
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
3014
+ while (1) switch (_context4.prev = _context4.next) {
3015
+ case 0:
3016
+ return _context4.abrupt("return", fetch(getPresetBaseUrl() + "/workspacepreset/" + workspaceId, {
3017
+ headers: getHeaders(auth),
3018
+ method: 'PUT',
3019
+ body: JSON.stringify(data)
3020
+ }).then(handleResponse));
3021
+ case 1:
3022
+ case "end":
3023
+ return _context4.stop();
3024
+ }
3025
+ }, _callee4);
3026
+ }));
3027
+ return function updateWorkspace(_x6, _x7, _x8) {
3028
+ return _ref4.apply(this, arguments);
3029
+ };
3030
+ }();
3031
+ var saveWorkspacePreset = /*#__PURE__*/function () {
3032
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(workspaceId, data, auth) {
3033
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
3034
+ while (1) switch (_context5.prev = _context5.next) {
3035
+ case 0:
3036
+ return _context5.abrupt("return", fetch(getPresetBaseUrl() + "/workspacepreset/" + workspaceId + "/", {
3037
+ headers: getHeaders(auth),
3038
+ method: 'PUT',
3039
+ body: JSON.stringify(data)
3040
+ }).then(handleResponse));
3041
+ case 1:
3042
+ case "end":
3043
+ return _context5.stop();
3044
+ }
3045
+ }, _callee5);
3046
+ }));
3047
+ return function saveWorkspacePreset(_x9, _x0, _x1) {
3048
+ return _ref5.apply(this, arguments);
3049
+ };
3050
+ }();
3051
+ var createWorkspace = /*#__PURE__*/function () {
3052
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(data, auth) {
3053
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
3054
+ while (1) switch (_context6.prev = _context6.next) {
3055
+ case 0:
3056
+ return _context6.abrupt("return", fetch(getPresetBaseUrl() + "/workspacepreset", {
3057
+ headers: getHeaders(auth),
3058
+ method: 'POST',
3059
+ body: JSON.stringify(data)
3060
+ }).then(handleResponse));
3061
+ case 1:
3062
+ case "end":
3063
+ return _context6.stop();
3064
+ }
3065
+ }, _callee6);
3066
+ }));
3067
+ return function createWorkspace(_x10, _x11) {
3068
+ return _ref6.apply(this, arguments);
3069
+ };
3070
+ }();
2943
3071
 
2944
- /* *
2945
- * Licensed under the Apache License, Version 2.0 (the "License");
2946
- * you may not use this file except in compliance with the License.
2947
- * You may obtain a copy of the License at
2948
- *
2949
- * http://www.apache.org/licenses/LICENSE-2.0
2950
- *
2951
- * Unless required by applicable law or agreed to in writing, software
2952
- * distributed under the License is distributed on an "AS IS" BASIS,
2953
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2954
- * See the License for the specific language governing permissions and
2955
- * limitations under the License.
2956
- *
2957
- * Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
2958
- * Copyright 2026 - Finnish Meteorological Institute (FMI)
2959
- * Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
2960
- * */
3072
+ var API_KEY = 'workspaces-api';
3073
+ // set default query options for this API
2961
3074
  /*
2962
- configureLibraryDefaults([LIB_KEY], {
3075
+ configureLibraryDefaults([LIB_KEY, API_KEY], {
2963
3076
  staleTime: 5 * 60 * 1000,
2964
3077
  });
2965
3078
  */
2966
- var LIB_KEY = 'workspace-lib';
2967
-
2968
- var API_KEY = 'viewpresets-api';
2969
- var generateViewPresetsQueryKeys = function generateViewPresetsQueryKeys(queryKeys) {
3079
+ var generateWorkspaceQueryKeys = function generateWorkspaceQueryKeys(queryKeys) {
2970
3080
  return [LIB_KEY, API_KEY].concat(queryKeys);
2971
3081
  };
2972
- var viewpresetsQueryOptions = {
2973
- getViewPreset: function getViewPreset$1(id, credentials) {
3082
+ var workspaceQueryOptions = {
3083
+ saveWorkspacePreset: function saveWorkspacePreset$1(id, data, credentials) {
2974
3084
  return queryOptions({
2975
- queryKey: generateViewPresetsQueryKeys([id]),
3085
+ queryKey: generateWorkspaceQueryKeys([id]),
3086
+ staleTime: 0,
2976
3087
  queryFn: function () {
2977
3088
  var _queryFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
2978
3089
  return _regeneratorRuntime().wrap(function _callee$(_context) {
2979
3090
  while (1) switch (_context.prev = _context.next) {
2980
3091
  case 0:
2981
- return _context.abrupt("return", getViewPreset(id, credentials));
3092
+ return _context.abrupt("return", saveWorkspacePreset(id, data, credentials));
2982
3093
  case 1:
2983
3094
  case "end":
2984
3095
  return _context.stop();
@@ -4596,53 +4707,34 @@ var getApiRoutes = function getApiRoutes(axiosInstance) {
4596
4707
  }
4597
4708
  return getWorkspacePreset;
4598
4709
  }(),
4599
- saveWorkspacePreset: function () {
4600
- var _saveWorkspacePreset = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(workspacePresetId, data) {
4710
+ saveWorkspacePresetAs: function () {
4711
+ var _saveWorkspacePresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {
4601
4712
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
4602
4713
  while (1) switch (_context3.prev = _context3.next) {
4603
- case 0:
4604
- // eslint-disable-next-line no-console
4605
- console.log('api: save workspace preset', workspacePresetId, data);
4606
- return _context3.abrupt("return", axiosInstance.put("/workspacepreset/" + workspacePresetId + "/", data));
4607
- case 2:
4608
- case "end":
4609
- return _context3.stop();
4610
- }
4611
- }, _callee3);
4612
- }));
4613
- function saveWorkspacePreset(_x3, _x4) {
4614
- return _saveWorkspacePreset.apply(this, arguments);
4615
- }
4616
- return saveWorkspacePreset;
4617
- }(),
4618
- saveWorkspacePresetAs: function () {
4619
- var _saveWorkspacePresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(data) {
4620
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
4621
- while (1) switch (_context4.prev = _context4.next) {
4622
4714
  case 0:
4623
4715
  // eslint-disable-next-line no-console
4624
4716
  console.log('api: save workspace preset as', data);
4625
- return _context4.abrupt("return", axiosInstance.post("/workspacepreset/", data).then(function () {
4717
+ return _context3.abrupt("return", axiosInstance.post("/workspacepreset/", data).then(function () {
4626
4718
  return null;
4627
4719
  }));
4628
4720
  case 2:
4629
4721
  case "end":
4630
- return _context4.stop();
4722
+ return _context3.stop();
4631
4723
  }
4632
- }, _callee4);
4724
+ }, _callee3);
4633
4725
  }));
4634
- function saveWorkspacePresetAs(_x5) {
4726
+ function saveWorkspacePresetAs(_x3) {
4635
4727
  return _saveWorkspacePresetAs.apply(this, arguments);
4636
4728
  }
4637
4729
  return saveWorkspacePresetAs;
4638
4730
  }(),
4639
4731
  // view presets
4640
4732
  getViewPresets: function () {
4641
- var _getViewPresets = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(params) {
4642
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
4643
- while (1) switch (_context5.prev = _context5.next) {
4733
+ var _getViewPresets = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
4734
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
4735
+ while (1) switch (_context4.prev = _context4.next) {
4644
4736
  case 0:
4645
- return _context5.abrupt("return", axiosInstance.get('/viewpreset', {
4737
+ return _context4.abrupt("return", axiosInstance.get('/viewpreset', {
4646
4738
  params: params
4647
4739
  }).then(function () {
4648
4740
  var data = filterViewPresetList(params);
@@ -4652,51 +4744,51 @@ var getApiRoutes = function getApiRoutes(axiosInstance) {
4652
4744
  }));
4653
4745
  case 1:
4654
4746
  case "end":
4655
- return _context5.stop();
4747
+ return _context4.stop();
4656
4748
  }
4657
- }, _callee5);
4749
+ }, _callee4);
4658
4750
  }));
4659
- function getViewPresets(_x6) {
4751
+ function getViewPresets(_x4) {
4660
4752
  return _getViewPresets.apply(this, arguments);
4661
4753
  }
4662
4754
  return getViewPresets;
4663
4755
  }(),
4664
4756
  saveViewPreset: function () {
4665
- var _saveViewPreset = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(presetId, data) {
4666
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
4667
- while (1) switch (_context6.prev = _context6.next) {
4757
+ var _saveViewPreset = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(presetId, data) {
4758
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
4759
+ while (1) switch (_context5.prev = _context5.next) {
4668
4760
  case 0:
4669
4761
  // eslint-disable-next-line no-console
4670
4762
  console.log('api: save view preset', presetId, data);
4671
- return _context6.abrupt("return", axiosInstance.put("/viewpreset/" + presetId + "/", data));
4763
+ return _context5.abrupt("return", axiosInstance.put("/viewpreset/" + presetId + "/", data));
4672
4764
  case 2:
4673
4765
  case "end":
4674
- return _context6.stop();
4766
+ return _context5.stop();
4675
4767
  }
4676
- }, _callee6);
4768
+ }, _callee5);
4677
4769
  }));
4678
- function saveViewPreset(_x7, _x8) {
4770
+ function saveViewPreset(_x5, _x6) {
4679
4771
  return _saveViewPreset.apply(this, arguments);
4680
4772
  }
4681
4773
  return saveViewPreset;
4682
4774
  }(),
4683
4775
  saveViewPresetAs: function () {
4684
- var _saveViewPresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(data) {
4685
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
4686
- while (1) switch (_context7.prev = _context7.next) {
4776
+ var _saveViewPresetAs = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(data) {
4777
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
4778
+ while (1) switch (_context6.prev = _context6.next) {
4687
4779
  case 0:
4688
4780
  // eslint-disable-next-line no-console
4689
4781
  console.log('api: save view preset as', data);
4690
- return _context7.abrupt("return", axiosInstance.post("/viewpreset/", data).then(function () {
4782
+ return _context6.abrupt("return", axiosInstance.post("/viewpreset/", data).then(function () {
4691
4783
  return null;
4692
4784
  }));
4693
4785
  case 2:
4694
4786
  case "end":
4695
- return _context7.stop();
4787
+ return _context6.stop();
4696
4788
  }
4697
- }, _callee7);
4789
+ }, _callee6);
4698
4790
  }));
4699
- function saveViewPresetAs(_x9) {
4791
+ function saveViewPresetAs(_x7) {
4700
4792
  return _saveViewPresetAs.apply(this, arguments);
4701
4793
  }
4702
4794
  return saveViewPresetAs;
@@ -4945,7 +5037,7 @@ workspaceListListener.startListening({
4945
5037
  actionCreator: workspaceListActions.submitFormWorkspaceActionDialogOptions,
4946
5038
  effect: function () {
4947
5039
  var _effect3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref3, listenerApi) {
4948
- var payload, workspaceApi, workspaceState, presetId, presetAction, data, emptyMapPresetTitle, emptyWorkspacePresetTitle, scope, _yield$workspaceApi$g2, originalData, workspaceDataNewTitle, _originalData$views, _data$views2, _yield$workspaceApi$g3, _originalData, mergedViews, payloadToSave, isSaveWorkspaceAction, isSaveAsWorkspaceAction, hasWorkspaceAlreadyBeenSaved, workspaceId, workspaceData, viewsWithInitialProps, newWorkspace, message, category;
5040
+ var payload, workspaceApi, workspaceState, presetId, presetAction, data, emptyMapPresetTitle, emptyWorkspacePresetTitle, scope, _listenerApi$getState, _yield$workspaceApi$g2, originalData, workspaceDataNewTitle, credentials, _originalData$views, _listenerApi$getState2, _data$views2, _yield$workspaceApi$g3, _originalData, mergedViews, payloadToSave, _credentials, isSaveWorkspaceAction, isSaveAsWorkspaceAction, hasWorkspaceAlreadyBeenSaved, workspaceId, workspaceData, viewsWithInitialProps, newWorkspace, hasChanges, _listenerApi$getState3, _credentials2, message, category;
4949
5041
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
4950
5042
  while (1) switch (_context3.prev = _context3.next) {
4951
5043
  case 0:
@@ -4961,7 +5053,7 @@ workspaceListListener.startListening({
4961
5053
  if (presetAction === WorkspacePresetAction.DELETE || presetAction === WorkspacePresetAction.DELETE_SYSTEM_PRESET) ;
4962
5054
  // edit
4963
5055
  if (!(presetAction === WorkspacePresetAction.EDIT)) {
4964
- _context3.next = 18;
5056
+ _context3.next = 19;
4965
5057
  break;
4966
5058
  }
4967
5059
  _context3.next = 12;
@@ -4977,9 +5069,10 @@ workspaceListListener.startListening({
4977
5069
  updated: data.updated,
4978
5070
  updatedBy: data.updatedBy
4979
5071
  });
4980
- _context3.next = 17;
4981
- return workspaceApi.saveWorkspacePreset(presetId, workspaceDataNewTitle);
4982
- case 17:
5072
+ credentials = (_listenerApi$getState = listenerApi.getState().common) == null || (_listenerApi$getState = _listenerApi$getState.auth) == null ? void 0 : _listenerApi$getState.credentials;
5073
+ _context3.next = 18;
5074
+ return getQueryClient().fetchQuery(workspaceQueryOptions.saveWorkspacePreset(presetId, workspaceDataNewTitle, credentials));
5075
+ case 18:
4983
5076
  listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
4984
5077
  workspaceId: presetId,
4985
5078
  action: presetAction,
@@ -4991,14 +5084,14 @@ workspaceListListener.startListening({
4991
5084
  updatedBy: data.updatedBy,
4992
5085
  scope: scope
4993
5086
  }));
4994
- case 18:
5087
+ case 19:
4995
5088
  if (!(presetAction === WorkspacePresetAction.EDIT_TITLE)) {
4996
- _context3.next = 28;
5089
+ _context3.next = 30;
4997
5090
  break;
4998
5091
  }
4999
- _context3.next = 21;
5092
+ _context3.next = 22;
5000
5093
  return workspaceApi.getWorkspacePreset(presetId);
5001
- case 21:
5094
+ case 22:
5002
5095
  _yield$workspaceApi$g3 = _context3.sent;
5003
5096
  _originalData = _yield$workspaceApi$g3.data;
5004
5097
  // 2) Merge the single (or few) edited view titles from `data.views`
@@ -5014,9 +5107,10 @@ workspaceListListener.startListening({
5014
5107
  payloadToSave = Object.assign({}, _originalData, {
5015
5108
  views: mergedViews
5016
5109
  });
5017
- _context3.next = 27;
5018
- return workspaceApi.saveWorkspacePreset(presetId, payloadToSave);
5019
- case 27:
5110
+ _credentials = (_listenerApi$getState2 = listenerApi.getState().common) == null || (_listenerApi$getState2 = _listenerApi$getState2.auth) == null ? void 0 : _listenerApi$getState2.credentials;
5111
+ _context3.next = 29;
5112
+ return getQueryClient().fetchQuery(workspaceQueryOptions.saveWorkspacePreset(presetId, payloadToSave, _credentials));
5113
+ case 29:
5020
5114
  // 4) Notify success so reducer updates local state
5021
5115
  listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
5022
5116
  workspaceId: presetId,
@@ -5029,12 +5123,12 @@ workspaceListListener.startListening({
5029
5123
  // Reducer uses mosaicNodeId+title from `views` to patch state.
5030
5124
  views: (_data$views2 = data.views) != null ? _data$views2 : []
5031
5125
  }));
5032
- case 28:
5126
+ case 30:
5033
5127
  // save (as) user/system presets
5034
5128
  isSaveWorkspaceAction = presetAction === WorkspacePresetAction.SAVE_SYSTEM_PRESET || presetAction === WorkspacePresetAction.SAVE;
5035
5129
  isSaveAsWorkspaceAction = presetAction === WorkspacePresetAction.SAVE_SYSTEM_PRESET_AS || presetAction === WorkspacePresetAction.SAVE_AS;
5036
5130
  if (!(isSaveWorkspaceAction || isSaveAsWorkspaceAction)) {
5037
- _context3.next = 47;
5131
+ _context3.next = 52;
5038
5132
  break;
5039
5133
  }
5040
5134
  hasWorkspaceAlreadyBeenSaved = getWorkspaceDialogIsSaved(workspaceState);
@@ -5058,27 +5152,33 @@ workspaceListListener.startListening({
5058
5152
  views: viewsWithInitialProps
5059
5153
  });
5060
5154
  if (!(!hasWorkspaceAlreadyBeenSaved && isSaveAsWorkspaceAction)) {
5061
- _context3.next = 41;
5155
+ _context3.next = 43;
5062
5156
  break;
5063
5157
  }
5064
- _context3.next = 39;
5158
+ _context3.next = 41;
5065
5159
  return workspaceApi.saveWorkspacePresetAs(newWorkspace);
5066
- case 39:
5160
+ case 41:
5067
5161
  workspaceId = _context3.sent;
5068
5162
  newWorkspace = Object.assign({}, newWorkspace, {
5069
5163
  id: workspaceId
5070
5164
  });
5071
- case 41:
5165
+ case 43:
5072
5166
  listenerApi.dispatch(workspaceListActions.onSuccessWorkspaceSaveDialog({
5073
5167
  presetId: workspaceId
5074
5168
  }));
5075
5169
  if (isSaveAsWorkspaceAction) {
5076
- _context3.next = 45;
5170
+ _context3.next = 50;
5077
5171
  break;
5078
5172
  }
5079
- _context3.next = 45;
5080
- return workspaceApi.saveWorkspacePreset(workspaceId, newWorkspace);
5081
- case 45:
5173
+ hasChanges = hasWorkspaceChanges(listenerApi.getState());
5174
+ if (!hasChanges) {
5175
+ _context3.next = 50;
5176
+ break;
5177
+ }
5178
+ _credentials2 = (_listenerApi$getState3 = listenerApi.getState().common) == null || (_listenerApi$getState3 = _listenerApi$getState3.auth) == null ? void 0 : _listenerApi$getState3.credentials;
5179
+ _context3.next = 50;
5180
+ return getQueryClient().fetchQuery(workspaceQueryOptions.saveWorkspacePreset(workspaceId, newWorkspace, _credentials2));
5181
+ case 50:
5082
5182
  listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
5083
5183
  action: presetAction,
5084
5184
  workspaceId: workspaceId,
@@ -5091,7 +5191,7 @@ workspaceListListener.startListening({
5091
5191
  listenerApi.dispatch(routerActions.navigateToUrl({
5092
5192
  url: getWorkspaceRouteUrl(workspaceId)
5093
5193
  }));
5094
- case 47:
5194
+ case 52:
5095
5195
  // Reset
5096
5196
  if (presetAction === WorkspacePresetAction.RESET) {
5097
5197
  // In case we're resetting the `New workspace` preset
@@ -5116,10 +5216,10 @@ workspaceListListener.startListening({
5116
5216
  scope: scope
5117
5217
  }));
5118
5218
  }
5119
- _context3.next = 55;
5219
+ _context3.next = 60;
5120
5220
  break;
5121
- case 50:
5122
- _context3.prev = 50;
5221
+ case 55:
5222
+ _context3.prev = 55;
5123
5223
  _context3.t0 = _context3["catch"](4);
5124
5224
  message = isAxiosError(_context3.t0) ? getAxiosErrorMessage(_context3.t0) : _context3.t0.message;
5125
5225
  category = isAxiosAuthError(_context3.t0) ? WorkspaceListErrorCategory.AUTH : WorkspaceListErrorCategory.GENERIC;
@@ -5130,11 +5230,11 @@ workspaceListListener.startListening({
5130
5230
  message: message
5131
5231
  }
5132
5232
  }));
5133
- case 55:
5233
+ case 60:
5134
5234
  case "end":
5135
5235
  return _context3.stop();
5136
5236
  }
5137
- }, _callee3, null, [[4, 50]]);
5237
+ }, _callee3, null, [[4, 55]]);
5138
5238
  }));
5139
5239
  function effect(_x5, _x6) {
5140
5240
  return _effect3.apply(this, arguments);
@@ -5215,7 +5315,6 @@ workspaceListener.startListening({
5215
5315
  payload = _ref3.payload;
5216
5316
  // Cancel any in-progress instances of this listener
5217
5317
  listenerApi.cancelActiveListeners();
5218
- // see https://gitlab.com/opengeoweb/geoweb-assets/-/issues/4413
5219
5318
  _context4.next = 4;
5220
5319
  return listenerApi.condition(function (_action, currentState) {
5221
5320
  var _currentState$workspa;
@@ -5420,10 +5519,17 @@ workspaceListener.startListening({
5420
5519
  listenerApi.dispatch(workspaceActions.changePreset({
5421
5520
  workspacePreset: fullLoadingWorkspace
5422
5521
  }));
5522
+ // wait for teardown of previous workspace to finish
5523
+ _context9.next = 19;
5524
+ return listenerApi.condition(function (_action, currentState) {
5525
+ var _currentState$workspa2;
5526
+ return ((_currentState$workspa2 = currentState.workspace) == null ? void 0 : _currentState$workspa2.id) === fullLoadingWorkspace.id;
5527
+ }, 500);
5528
+ case 19:
5423
5529
  // fetch all individual view presets in batches and collect all actions
5424
5530
  workspaceIdsInBatches = getListInChunks(workspaceData.views);
5425
5531
  actionsToDispatch = [];
5426
- _context9.next = 21;
5532
+ _context9.next = 23;
5427
5533
  return Promise.all(workspaceIdsInBatches.map(/*#__PURE__*/function () {
5428
5534
  var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(batchCall) {
5429
5535
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
@@ -5441,9 +5547,7 @@ workspaceListener.startListening({
5441
5547
  }
5442
5548
  return _context7.abrupt("return");
5443
5549
  case 2:
5444
- return _context7.abrupt("return", fetchWorkspaceViewPreset(function (thunkAction) {
5445
- actionsToDispatch.push(thunkAction);
5446
- }, view.viewPresetId, view.mosaicNodeId, common == null ? void 0 : common.auth.credentials));
5550
+ return _context7.abrupt("return", fetchWorkspaceViewPreset(listenerApi.dispatch, view.viewPresetId, view.mosaicNodeId, common == null ? void 0 : common.auth.credentials));
5447
5551
  case 3:
5448
5552
  case "end":
5449
5553
  return _context7.stop();
@@ -5464,13 +5568,13 @@ workspaceListener.startListening({
5464
5568
  return _ref7.apply(this, arguments);
5465
5569
  };
5466
5570
  }()));
5467
- case 21:
5571
+ case 23:
5468
5572
  // Trigger all actions at once
5469
5573
  actionsToDispatch.map(listenerApi.dispatch);
5470
- _context9.next = 28;
5574
+ _context9.next = 30;
5471
5575
  break;
5472
- case 24:
5473
- _context9.prev = 24;
5576
+ case 26:
5577
+ _context9.prev = 26;
5474
5578
  _context9.t0 = _context9["catch"](4);
5475
5579
  errorType = _context9.t0.message === ERROR_NOT_FOUND ? WorkspaceErrorType.NOT_FOUND : WorkspaceErrorType.GENERIC;
5476
5580
  listenerApi.dispatch(workspaceActions.errorWorkspace({
@@ -5480,11 +5584,11 @@ workspaceListener.startListening({
5480
5584
  type: errorType
5481
5585
  }
5482
5586
  }));
5483
- case 28:
5587
+ case 30:
5484
5588
  case "end":
5485
5589
  return _context9.stop();
5486
5590
  }
5487
- }, _callee9, null, [[4, 24]]);
5591
+ }, _callee9, null, [[4, 26]]);
5488
5592
  }));
5489
5593
  function effect(_x12, _x13) {
5490
5594
  return _effect5.apply(this, arguments);
@@ -5496,7 +5600,7 @@ workspaceListener.startListening({
5496
5600
  actionCreator: workspaceActions.saveWorkspacePreset,
5497
5601
  effect: function () {
5498
5602
  var _effect6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee0(_ref9, listenerApi) {
5499
- var payload, workspace, _workspace$scope, workspaceApi;
5603
+ var payload, workspace, _listenerApi$getState3, _workspace$scope, credentials;
5500
5604
  return _regeneratorRuntime().wrap(function _callee0$(_context0) {
5501
5605
  while (1) switch (_context0.prev = _context0.next) {
5502
5606
  case 0:
@@ -5505,9 +5609,9 @@ workspaceListener.startListening({
5505
5609
  listenerApi.cancelActiveListeners();
5506
5610
  workspace = payload.workspace;
5507
5611
  _context0.prev = 3;
5508
- workspaceApi = getWorkspaceApi();
5612
+ credentials = (_listenerApi$getState3 = listenerApi.getState().common) == null || (_listenerApi$getState3 = _listenerApi$getState3.auth) == null ? void 0 : _listenerApi$getState3.credentials;
5509
5613
  _context0.next = 7;
5510
- return workspaceApi.saveWorkspacePreset(workspace.id, workspace);
5614
+ return getQueryClient().fetchQuery(workspaceQueryOptions.saveWorkspacePreset(workspace.id, workspace, credentials));
5511
5615
  case 7:
5512
5616
  listenerApi.dispatch(workspaceActions.loadedWorkspace(undefined));
5513
5617
  listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
@@ -6730,280 +6834,46 @@ var ViewLoading = function ViewLoading(_ref) {
6730
6834
  })]
6731
6835
  });
6732
6836
  };
6733
- var ViewError = function ViewError(_ref2) {
6734
- var viewPresetId = _ref2.viewPresetId,
6735
- mosaicNodeId = _ref2.mosaicNodeId;
6736
- var dispatch = useDispatch();
6737
- var _useWorkspaceTranslat2 = useWorkspaceTranslation(),
6738
- t = _useWorkspaceTranslat2.t;
6739
- var fetchWorkspaceViewPreset = React.useCallback(function () {
6740
- dispatch(workspaceActions.fetchWorkspaceViewPreset({
6741
- viewPresetId: viewPresetId,
6742
- mosaicNodeId: mosaicNodeId
6743
- }));
6744
- }, [dispatch, viewPresetId, mosaicNodeId]);
6745
- return jsx(AlertBanner, {
6746
- actionButtonProps: {
6747
- title: t('workspace-retry'),
6748
- onClick: fetchWorkspaceViewPreset
6749
- },
6750
- shouldClose: true,
6751
- title: t('workspace-viewpresets-fail-fetch', {
6752
- VIEWPRESET_ID: viewPresetId
6753
- })
6754
- });
6755
- };
6756
- var defaultComponentsLookUp = function defaultComponentsLookUp(_ref3) {
6757
- var componentType = _ref3.componentType,
6758
- viewPresetId = _ref3.viewPresetId,
6759
- mosaicNodeId = _ref3.mosaicNodeId;
6760
- switch (componentType) {
6761
- case 'ViewLoading':
6762
- return jsx(ViewLoading, {
6763
- viewPresetId: viewPresetId
6764
- });
6765
- case 'ViewError':
6766
- return jsx(ViewError, {
6767
- mosaicNodeId: mosaicNodeId,
6768
- viewPresetId: viewPresetId
6769
- });
6770
- default:
6771
- return null;
6772
- }
6773
- };
6774
-
6775
- var config = sessionStorageProvider.getConfig();
6776
- var presetBaseUrl = (config == null ? void 0 : config.GW_PRESET_BACKEND_URL) || '';
6777
- var labelsConfigUrl = '/assets/workspaceLabelsConfig.json';
6778
- var getWorkspaceLabelsConfig = /*#__PURE__*/function () {
6779
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
6780
- return _regeneratorRuntime().wrap(function _callee$(_context) {
6781
- while (1) switch (_context.prev = _context.next) {
6782
- case 0:
6783
- return _context.abrupt("return", fetch(labelsConfigUrl).then(handleResponse));
6784
- case 1:
6785
- case "end":
6786
- return _context.stop();
6787
- }
6788
- }, _callee);
6789
- }));
6790
- return function getWorkspaceLabelsConfig() {
6791
- return _ref.apply(this, arguments);
6792
- };
6793
- }();
6794
- var getWorkspace = /*#__PURE__*/function () {
6795
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(workspaceId, auth) {
6796
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
6797
- while (1) switch (_context2.prev = _context2.next) {
6798
- case 0:
6799
- return _context2.abrupt("return", fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
6800
- headers: getHeaders(auth)
6801
- }).then(handleResponse));
6802
- case 1:
6803
- case "end":
6804
- return _context2.stop();
6805
- }
6806
- }, _callee2);
6807
- }));
6808
- return function getWorkspace(_x, _x2) {
6809
- return _ref2.apply(this, arguments);
6810
- };
6811
- }();
6812
- var deleteWorkspace = /*#__PURE__*/function () {
6813
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(workspaceId, auth) {
6814
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
6815
- while (1) switch (_context3.prev = _context3.next) {
6816
- case 0:
6817
- return _context3.abrupt("return", fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
6818
- headers: getHeaders(auth),
6819
- method: 'DELETE'
6820
- }).then(handleResponse));
6821
- case 1:
6822
- case "end":
6823
- return _context3.stop();
6824
- }
6825
- }, _callee3);
6826
- }));
6827
- return function deleteWorkspace(_x3, _x4) {
6828
- return _ref3.apply(this, arguments);
6829
- };
6830
- }();
6831
- var updateWorkspace = /*#__PURE__*/function () {
6832
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(workspaceId, data, auth) {
6833
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
6834
- while (1) switch (_context4.prev = _context4.next) {
6835
- case 0:
6836
- return _context4.abrupt("return", fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
6837
- headers: getHeaders(auth),
6838
- method: 'PUT',
6839
- body: JSON.stringify(data)
6840
- }).then(handleResponse));
6841
- case 1:
6842
- case "end":
6843
- return _context4.stop();
6844
- }
6845
- }, _callee4);
6846
- }));
6847
- return function updateWorkspace(_x5, _x6, _x7) {
6848
- return _ref4.apply(this, arguments);
6849
- };
6850
- }();
6851
- var createWorkspace = /*#__PURE__*/function () {
6852
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(data, auth) {
6853
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
6854
- while (1) switch (_context5.prev = _context5.next) {
6855
- case 0:
6856
- return _context5.abrupt("return", fetch(presetBaseUrl + "/workspacepreset", {
6857
- headers: getHeaders(auth),
6858
- method: 'POST',
6859
- body: JSON.stringify(data)
6860
- }).then(handleResponse));
6861
- case 1:
6862
- case "end":
6863
- return _context5.stop();
6864
- }
6865
- }, _callee5);
6866
- }));
6867
- return function createWorkspace(_x8, _x9) {
6868
- return _ref5.apply(this, arguments);
6869
- };
6870
- }();
6871
-
6872
- var useWorkspaceLabelsConfig = function useWorkspaceLabelsConfig() {
6873
- return useQuery({
6874
- queryKey: ['workspace-labels-config'],
6875
- queryFn: getWorkspaceLabelsConfig
6876
- });
6877
- };
6878
- var onWorkspaceApiError = function onWorkspaceApiError(dispatch, error, t) {
6879
- dispatch(workspaceListActions.onErrorWorkspacePresetAction({
6880
- error: {
6881
- message: error.message + " " + t('workspace-error-generic'),
6882
- type: WorkspaceListErrorType.VERBATIM_ERROR,
6883
- category: error.message === 'Authentication context not found' ? WorkspaceListErrorCategory.AUTH : WorkspaceListErrorCategory.GENERIC
6884
- }
6885
- }));
6886
- };
6887
- var useDeleteWorkspacePreset = function useDeleteWorkspacePreset() {
6888
- var _useAuthenticationCon = useAuthenticationContext(),
6889
- auth = _useAuthenticationCon.auth;
6890
- var _useSelector = useSelector(getWorkspaceActionFormValues),
6891
- title = _useSelector.title;
6892
- var _useWorkspaceTranslat = useWorkspaceTranslation(),
6893
- t = _useWorkspaceTranslat.t;
6894
- var dispatch = useDispatch();
6895
- return useMutation({
6896
- mutationFn: function () {
6897
- var _mutationFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
6898
- var id;
6899
- return _regeneratorRuntime().wrap(function _callee$(_context) {
6900
- while (1) switch (_context.prev = _context.next) {
6901
- case 0:
6902
- id = _ref.id;
6903
- if (auth) {
6904
- _context.next = 3;
6905
- break;
6906
- }
6907
- throw new Error('Authentication context not found');
6908
- case 3:
6909
- return _context.abrupt("return", deleteWorkspace(id, auth));
6910
- case 4:
6911
- case "end":
6912
- return _context.stop();
6913
- }
6914
- }, _callee);
6915
- }));
6916
- function mutationFn(_x) {
6917
- return _mutationFn.apply(this, arguments);
6918
- }
6919
- return mutationFn;
6920
- }(),
6921
- onSuccess: function onSuccess(data, variables) {
6922
- dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
6923
- workspaceId: variables.id,
6924
- action: WorkspacePresetAction.DELETE,
6925
- emptyWorkspacePresetTitle: t('workspace-new'),
6926
- title: title
6927
- }));
6928
- },
6929
- onError: function onError(error) {
6930
- onWorkspaceApiError(dispatch, error, t);
6931
- }
6932
- });
6933
- };
6934
- var useCreateWorkspacePreset = function useCreateWorkspacePreset() {
6935
- var _useAuthenticationCon2 = useAuthenticationContext(),
6936
- auth = _useAuthenticationCon2.auth;
6837
+ var ViewError = function ViewError(_ref2) {
6838
+ var viewPresetId = _ref2.viewPresetId,
6839
+ mosaicNodeId = _ref2.mosaicNodeId;
6840
+ var dispatch = useDispatch();
6937
6841
  var _useWorkspaceTranslat2 = useWorkspaceTranslation(),
6938
6842
  t = _useWorkspaceTranslat2.t;
6939
- var dispatch = useDispatch();
6940
- return useMutation({
6941
- mutationFn: function () {
6942
- var _mutationFn2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
6943
- var data;
6944
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
6945
- while (1) switch (_context2.prev = _context2.next) {
6946
- case 0:
6947
- data = _ref2.data;
6948
- if (auth) {
6949
- _context2.next = 3;
6950
- break;
6951
- }
6952
- throw new Error('Authentication context not found');
6953
- case 3:
6954
- return _context2.abrupt("return", createWorkspace(data, auth));
6955
- case 4:
6956
- case "end":
6957
- return _context2.stop();
6958
- }
6959
- }, _callee2);
6960
- }));
6961
- function mutationFn(_x2) {
6962
- return _mutationFn2.apply(this, arguments);
6963
- }
6964
- return mutationFn;
6965
- }(),
6966
- onSuccess: function onSuccess(data, variables) {
6967
- var location = data == null ? void 0 : data.get('location');
6968
- var newId = getIdFromUrl(location);
6969
- var scope = variables.data.scope || 'user';
6970
- dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
6971
- workspaceId: newId,
6972
- action: variables.action || WorkspacePresetAction.SAVE_AS,
6973
- title: variables.data.title,
6974
- scope: scope
6975
- }));
6843
+ var fetchWorkspaceViewPreset = React.useCallback(function () {
6844
+ dispatch(workspaceActions.fetchWorkspaceViewPreset({
6845
+ viewPresetId: viewPresetId,
6846
+ mosaicNodeId: mosaicNodeId
6847
+ }));
6848
+ }, [dispatch, viewPresetId, mosaicNodeId]);
6849
+ return jsx(AlertBanner, {
6850
+ actionButtonProps: {
6851
+ title: t('workspace-retry'),
6852
+ onClick: fetchWorkspaceViewPreset
6976
6853
  },
6977
- onError: function onError(error) {
6978
- onWorkspaceApiError(dispatch, error, t);
6979
- }
6854
+ shouldClose: true,
6855
+ title: t('workspace-viewpresets-fail-fetch', {
6856
+ VIEWPRESET_ID: viewPresetId
6857
+ })
6980
6858
  });
6981
6859
  };
6982
-
6983
- /* *
6984
- * Licensed under the Apache License, Version 2.0 (the "License");
6985
- * you may not use this file except in compliance with the License.
6986
- * You may obtain a copy of the License at
6987
- *
6988
- * http://www.apache.org/licenses/LICENSE-2.0
6989
- *
6990
- * Unless required by applicable law or agreed to in writing, software
6991
- * distributed under the License is distributed on an "AS IS" BASIS,
6992
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6993
- * See the License for the specific language governing permissions and
6994
- * limitations under the License.
6995
- *
6996
- * Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
6997
- * Copyright 2025 - Finnish Meteorological Institute (FMI)
6998
- * Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
6999
- * */
7000
- var LABELS_CONFIG_DEFAULT = {
7001
- purpose: ['Aviation', 'Monitor', 'Public', 'Maritime', 'Warning', 'Media', 'Nowcasting (0–12h)'],
7002
- parameters: ['Pressure', 'Temperature', 'Wind', 'Humidity', 'Water vapour', 'Visibility', 'Geopotential', 'Snow', 'Cloud', 'Waves', 'Index', 'Precipitation'],
7003
- phenomena: ['Turbulence', 'MTW', 'CAT', 'Icing', 'Freezing rain', 'FlashFlood', 'Wind gust', 'Rain', 'Snow', 'Road ice', 'Lightning strike', 'Drifting snow', 'Wave height + water level', 'Forest fire', 'Polar Low', 'Heat wave', 'Gale warning'],
7004
- viewType: [].concat(ALL_COMPONENT_TYPES),
7005
- dataType: ['observation', 'forecast', 'archive'],
7006
- dataSource: ['Meps', 'Arome Arctic', 'Ecmwf', 'Ensemble', 'AIFS', 'BRIS', 'radar', 'satellite', 'synop']
6860
+ var defaultComponentsLookUp = function defaultComponentsLookUp(_ref3) {
6861
+ var componentType = _ref3.componentType,
6862
+ viewPresetId = _ref3.viewPresetId,
6863
+ mosaicNodeId = _ref3.mosaicNodeId;
6864
+ switch (componentType) {
6865
+ case 'ViewLoading':
6866
+ return jsx(ViewLoading, {
6867
+ viewPresetId: viewPresetId
6868
+ });
6869
+ case 'ViewError':
6870
+ return jsx(ViewError, {
6871
+ mosaicNodeId: mosaicNodeId,
6872
+ viewPresetId: viewPresetId
6873
+ });
6874
+ default:
6875
+ return null;
6876
+ }
7007
6877
  };
7008
6878
 
7009
6879
  var VIEW_TYPE_KEY = 'viewType';
@@ -7037,13 +6907,12 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
7037
6907
  control: control,
7038
6908
  name: 'views'
7039
6909
  });
7040
- var availableLabels = labelsConfig != null ? labelsConfig : LABELS_CONFIG_DEFAULT;
7041
6910
  var labels = React.useMemo(function () {
7042
- return normalizeLabels(watchedLabels, availableLabels);
7043
- }, [watchedLabels, availableLabels]);
6911
+ return normalizeLabels(watchedLabels, labelsConfig);
6912
+ }, [watchedLabels, labelsConfig]);
7044
6913
  var groupKeys = React.useMemo(function () {
7045
- return Array.from(new Set([VIEW_TYPE_KEY].concat(Object.keys(availableLabels != null ? availableLabels : {}), watchedLabels ? Object.keys(watchedLabels) : [])));
7046
- }, [availableLabels, watchedLabels]);
6914
+ return Array.from(new Set([VIEW_TYPE_KEY].concat(Object.keys(labelsConfig != null ? labelsConfig : {}), watchedLabels ? Object.keys(watchedLabels) : [])));
6915
+ }, [labelsConfig, watchedLabels]);
7047
6916
  var orderedGroupKeys = React.useMemo(function () {
7048
6917
  var withoutViewType = groupKeys.filter(function (key) {
7049
6918
  return key !== VIEW_TYPE_KEY;
@@ -7105,9 +6974,9 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
7105
6974
  return (_labels$VIEW_TYPE_KEY = labels[VIEW_TYPE_KEY]) != null ? _labels$VIEW_TYPE_KEY : [];
7106
6975
  }, [labels]);
7107
6976
  var viewTypeConfigItems = React.useMemo(function () {
7108
- var _availableLabels$VIEW;
7109
- return ((_availableLabels$VIEW = availableLabels == null ? void 0 : availableLabels[VIEW_TYPE_KEY]) != null ? _availableLabels$VIEW : []).slice();
7110
- }, [availableLabels]);
6977
+ var _labelsConfig$VIEW_TY;
6978
+ return ((_labelsConfig$VIEW_TY = labelsConfig == null ? void 0 : labelsConfig[VIEW_TYPE_KEY]) != null ? _labelsConfig$VIEW_TY : []).slice();
6979
+ }, [labelsConfig]);
7111
6980
  var viewTypeItems = React.useMemo(function () {
7112
6981
  if (isMenuFilterMode) {
7113
6982
  if (viewTypeConfigItems.length > 0) {
@@ -7194,9 +7063,9 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
7194
7063
  };
7195
7064
  var groups = React.useMemo(function () {
7196
7065
  return orderedGroupKeys.map(function (key) {
7197
- var _availableLabels$key;
7066
+ var _labelsConfig$key;
7198
7067
  var isViewType = key === VIEW_TYPE_KEY;
7199
- var items = isViewType ? viewTypeItems : (_availableLabels$key = availableLabels[key]) != null ? _availableLabels$key : [];
7068
+ var items = isViewType ? viewTypeItems : (_labelsConfig$key = labelsConfig[key]) != null ? _labelsConfig$key : [];
7200
7069
  var locked = !isMenuFilterMode && isViewType;
7201
7070
  return {
7202
7071
  key: key,
@@ -7205,7 +7074,7 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
7205
7074
  locked: locked
7206
7075
  };
7207
7076
  });
7208
- }, [orderedGroupKeys, availableLabels, viewTypeItems, isMenuFilterMode, titleForGroup]);
7077
+ }, [orderedGroupKeys, labelsConfig, viewTypeItems, isMenuFilterMode, titleForGroup]);
7209
7078
  var _React$useState = React.useState(false),
7210
7079
  expandAll = _React$useState[0],
7211
7080
  setExpandAll = _React$useState[1];
@@ -7397,11 +7266,183 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
7397
7266
  });
7398
7267
  };
7399
7268
 
7269
+ var useWorkspaceLabelsConfig = function useWorkspaceLabelsConfig() {
7270
+ var _useAuthenticationCon = useAuthenticationContext(),
7271
+ auth = _useAuthenticationCon.auth;
7272
+ return useQuery({
7273
+ queryKey: ['workspace-labels-config'],
7274
+ queryFn: function () {
7275
+ var _queryFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
7276
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
7277
+ while (1) switch (_context.prev = _context.next) {
7278
+ case 0:
7279
+ return _context.abrupt("return", getWorkspaceLabelsConfig(auth));
7280
+ case 1:
7281
+ case "end":
7282
+ return _context.stop();
7283
+ }
7284
+ }, _callee);
7285
+ }));
7286
+ function queryFn() {
7287
+ return _queryFn.apply(this, arguments);
7288
+ }
7289
+ return queryFn;
7290
+ }()
7291
+ });
7292
+ };
7293
+ var onWorkspaceApiError = function onWorkspaceApiError(dispatch, error, t) {
7294
+ dispatch(workspaceListActions.onErrorWorkspacePresetAction({
7295
+ error: {
7296
+ message: error.message + " " + t('workspace-error-generic'),
7297
+ type: WorkspaceListErrorType.VERBATIM_ERROR,
7298
+ category: error.message === 'Authentication context not found' ? WorkspaceListErrorCategory.AUTH : WorkspaceListErrorCategory.GENERIC
7299
+ }
7300
+ }));
7301
+ };
7302
+ var useDeleteWorkspacePreset = function useDeleteWorkspacePreset() {
7303
+ var _useAuthenticationCon2 = useAuthenticationContext(),
7304
+ auth = _useAuthenticationCon2.auth;
7305
+ var _useSelector = useSelector(getWorkspaceActionFormValues),
7306
+ title = _useSelector.title;
7307
+ var _useWorkspaceTranslat = useWorkspaceTranslation(),
7308
+ t = _useWorkspaceTranslat.t;
7309
+ var dispatch = useDispatch();
7310
+ return useMutation({
7311
+ mutationFn: function () {
7312
+ var _mutationFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref) {
7313
+ var id;
7314
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
7315
+ while (1) switch (_context2.prev = _context2.next) {
7316
+ case 0:
7317
+ id = _ref.id;
7318
+ if (auth) {
7319
+ _context2.next = 3;
7320
+ break;
7321
+ }
7322
+ throw new Error('Authentication context not found');
7323
+ case 3:
7324
+ return _context2.abrupt("return", deleteWorkspace(id, auth));
7325
+ case 4:
7326
+ case "end":
7327
+ return _context2.stop();
7328
+ }
7329
+ }, _callee2);
7330
+ }));
7331
+ function mutationFn(_x) {
7332
+ return _mutationFn.apply(this, arguments);
7333
+ }
7334
+ return mutationFn;
7335
+ }(),
7336
+ onSuccess: function onSuccess(data, variables) {
7337
+ dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
7338
+ workspaceId: variables.id,
7339
+ action: WorkspacePresetAction.DELETE,
7340
+ emptyWorkspacePresetTitle: t('workspace-new'),
7341
+ title: title
7342
+ }));
7343
+ },
7344
+ onError: function onError(error) {
7345
+ onWorkspaceApiError(dispatch, error, t);
7346
+ }
7347
+ });
7348
+ };
7349
+ var useCreateWorkspacePreset = function useCreateWorkspacePreset() {
7350
+ var _useAuthenticationCon3 = useAuthenticationContext(),
7351
+ auth = _useAuthenticationCon3.auth;
7352
+ var _useWorkspaceTranslat2 = useWorkspaceTranslation(),
7353
+ t = _useWorkspaceTranslat2.t;
7354
+ var dispatch = useDispatch();
7355
+ return useMutation({
7356
+ mutationFn: function () {
7357
+ var _mutationFn2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref2) {
7358
+ var data;
7359
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
7360
+ while (1) switch (_context3.prev = _context3.next) {
7361
+ case 0:
7362
+ data = _ref2.data;
7363
+ if (auth) {
7364
+ _context3.next = 3;
7365
+ break;
7366
+ }
7367
+ throw new Error('Authentication context not found');
7368
+ case 3:
7369
+ return _context3.abrupt("return", createWorkspace(data, auth));
7370
+ case 4:
7371
+ case "end":
7372
+ return _context3.stop();
7373
+ }
7374
+ }, _callee3);
7375
+ }));
7376
+ function mutationFn(_x2) {
7377
+ return _mutationFn2.apply(this, arguments);
7378
+ }
7379
+ return mutationFn;
7380
+ }(),
7381
+ onSuccess: function onSuccess(data, variables) {
7382
+ var location = data == null ? void 0 : data.get('location');
7383
+ var newId = getIdFromUrl(location);
7384
+ var scope = variables.data.scope || 'user';
7385
+ dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
7386
+ workspaceId: newId,
7387
+ action: variables.action || WorkspacePresetAction.SAVE_AS,
7388
+ title: variables.data.title,
7389
+ scope: scope
7390
+ }));
7391
+ },
7392
+ onError: function onError(error) {
7393
+ onWorkspaceApiError(dispatch, error, t);
7394
+ }
7395
+ });
7396
+ };
7397
+
7398
+ var PresetLabelsPanelWrapper = function PresetLabelsPanelWrapper(_ref) {
7399
+ var viewComponentType = _ref.viewComponentType,
7400
+ onLabelsChange = _ref.onLabelsChange,
7401
+ menuLabels = _ref.menuLabels,
7402
+ _ref$isMenuFilterMode = _ref.isMenuFilterMode,
7403
+ isMenuFilterMode = _ref$isMenuFilterMode === void 0 ? false : _ref$isMenuFilterMode;
7404
+ var _useWorkspaceTranslat = useWorkspaceTranslation(),
7405
+ t = _useWorkspaceTranslat.t;
7406
+ var _useWorkspaceLabelsCo = useWorkspaceLabelsConfig(),
7407
+ labelsConfig = _useWorkspaceLabelsCo.data,
7408
+ isLoading = _useWorkspaceLabelsCo.isFetching,
7409
+ labelsError = _useWorkspaceLabelsCo.error,
7410
+ refetchLabelsConfig = _useWorkspaceLabelsCo.refetch;
7411
+ if (isLoading) {
7412
+ return jsx(LinearProgress, {
7413
+ color: "secondary",
7414
+ "data-testid": "labelspanel-loading-bar",
7415
+ sx: {
7416
+ marginBottom: '-4px'
7417
+ }
7418
+ });
7419
+ }
7420
+ if (labelsError || labelsConfig === undefined) {
7421
+ return jsx(AlertBanner, {
7422
+ actionButtonProps: {
7423
+ title: t('fetch-config-error-retry'),
7424
+ onClick: function onClick() {
7425
+ void refetchLabelsConfig();
7426
+ }
7427
+ },
7428
+ info: labelsError ? labelsError.message : t('fetch-config-no-labels-available'),
7429
+ severity: "error",
7430
+ title: t('fetch-config-error-title')
7431
+ });
7432
+ }
7433
+ return jsx(PresetLabelsPanel, {
7434
+ isMenuFilterMode: isMenuFilterMode,
7435
+ labelsConfig: labelsConfig,
7436
+ menuLabels: menuLabels,
7437
+ onLabelsChange: onLabelsChange,
7438
+ viewComponentType: viewComponentType
7439
+ });
7440
+ };
7441
+
7400
7442
  var WorkspaceMenuLabelsPanel = function WorkspaceMenuLabelsPanel(_ref) {
7401
7443
  var value = _ref.value,
7402
7444
  onChange = _ref.onChange,
7403
- menuLabels = _ref.menuLabels,
7404
- labelsConfig = _ref.labelsConfig;
7445
+ menuLabels = _ref.menuLabels;
7405
7446
  var methods = useForm({
7406
7447
  defaultValues: {
7407
7448
  labels: value != null ? value : {},
@@ -7409,10 +7450,9 @@ var WorkspaceMenuLabelsPanel = function WorkspaceMenuLabelsPanel(_ref) {
7409
7450
  }
7410
7451
  });
7411
7452
  return jsx(FormProvider, Object.assign({}, methods, {
7412
- children: jsx(PresetLabelsPanel, {
7453
+ children: jsx(PresetLabelsPanelWrapper, {
7413
7454
  "data-testid": "workspace-menu-labels-panel",
7414
7455
  isMenuFilterMode: true,
7415
- labelsConfig: labelsConfig,
7416
7456
  menuLabels: menuLabels,
7417
7457
  onLabelsChange: onChange
7418
7458
  })
@@ -7783,7 +7823,7 @@ var WorkspacePresetInfo = function WorkspacePresetInfo(_ref) {
7783
7823
  });
7784
7824
  };
7785
7825
 
7786
- var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 46;
7826
+ var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 41;
7787
7827
  var getPresetIcon = function getPresetIcon(preset, currentUsername) {
7788
7828
  if (preset.scope === 'system') {
7789
7829
  return jsx(WorkspacePresetsSystemIcon, {
@@ -7903,12 +7943,13 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
7903
7943
  disablePadding: true,
7904
7944
  sx: {
7905
7945
  mb: 0.5,
7946
+ ml: 0.5,
7906
7947
  borderRadius: 1.5,
7907
7948
  backgroundColor: 'geowebColors.cards.cardContainer',
7908
- boxShadow: '0px 1px 3px rgba(15, 23, 42, 0.12)',
7949
+ boxShadow: '0px 4px 4px rgba(15, 23, 42, 0.2), 2px 2px 6px rgba(15, 23, 42, 0.12)',
7909
7950
  transition: 'box-shadow 0.15s ease-out, transform 0.15s ease-out',
7910
7951
  ' .MuiListItemText-primary': {
7911
- fontSize: '12px',
7952
+ fontSize: '16px',
7912
7953
  fontWeight: 500,
7913
7954
  textOverflow: 'ellipsis',
7914
7955
  overflow: 'hidden',
@@ -7938,7 +7979,9 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
7938
7979
  role: "listitem",
7939
7980
  selected: isSelected,
7940
7981
  sx: {
7941
- padding: 1,
7982
+ pl: 2,
7983
+ pr: 1,
7984
+ py: 1,
7942
7985
  height: WORKSPACE_SELECT_LIST_ROW_HEIGHT + "px"
7943
7986
  },
7944
7987
  children: [jsx(ListItemIcon, {
@@ -8032,7 +8075,7 @@ var MIN_HEIGHT_SCROLLABLE_LIST = 88; // Slightly less than 2 rows
8032
8075
  var LIST_PADDING_TOP = 8;
8033
8076
  var DEFAULT_RESULTS_HEIGHT = 22;
8034
8077
  // row height = height + margin
8035
- var rowHeight = WORKSPACE_SELECT_LIST_ROW_HEIGHT + 4;
8078
+ var rowHeight = WORKSPACE_SELECT_LIST_ROW_HEIGHT + 12;
8036
8079
  var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
8037
8080
  var workspacePresets = _ref.workspacePresets,
8038
8081
  currentSelectedId = _ref.currentSelectedId,
@@ -8063,7 +8106,8 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
8063
8106
  children: [jsxs(Box, {
8064
8107
  sx: {
8065
8108
  marginBottom: '4px',
8066
- fontSize: '12px'
8109
+ fontSize: '12px',
8110
+ ml: 0.5
8067
8111
  },
8068
8112
  children: [workspacePresets.length, " ", t('workspace-results')]
8069
8113
  }), jsx(AutoSizer, {
@@ -8086,7 +8130,9 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
8086
8130
  style = _ref3.style;
8087
8131
  var preset = items[index];
8088
8132
  return jsx("div", {
8089
- style: style,
8133
+ style: Object.assign({}, style, {
8134
+ paddingRight: '8px'
8135
+ }),
8090
8136
  children: jsx(WorkspaceSelectListRow, {
8091
8137
  infoOpenPresetId: infoOpenPresetId,
8092
8138
  isAdmin: isAdmin,
@@ -8119,8 +8165,6 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
8119
8165
  t = _useWorkspaceTranslat.t;
8120
8166
  var dispatch = useDispatch();
8121
8167
  var store = useStore();
8122
- var _useWorkspaceLabelsCo = useWorkspaceLabelsConfig(),
8123
- labelsConfig = _useWorkspaceLabelsCo.data;
8124
8168
  var _useAuthenticationCon = useAuthenticationContext(),
8125
8169
  currentRole = _useAuthenticationCon.currentRole,
8126
8170
  isLoggedIn = _useAuthenticationCon.isLoggedIn,
@@ -8148,6 +8192,12 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
8148
8192
  return Array.isArray(group) && group.length > 0;
8149
8193
  });
8150
8194
  }, [viewPresetLabelFilters]);
8195
+ var activeLabelFilterCount = React.useMemo(function () {
8196
+ if (!viewPresetLabelFilters) {
8197
+ return 0;
8198
+ }
8199
+ return Object.values(viewPresetLabelFilters).flat().length;
8200
+ }, [viewPresetLabelFilters]);
8151
8201
  var filteredPresets = React.useMemo(function () {
8152
8202
  return filterAndSortPresets(viewPresets, viewPresetListFilters, username, isAdmin, viewPresetLabelFilters != null ? viewPresetLabelFilters : undefined);
8153
8203
  }, [viewPresets, viewPresetListFilters, username, isAdmin, viewPresetLabelFilters]);
@@ -8422,16 +8472,9 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
8422
8472
  title: t('workspace-retry'),
8423
8473
  onClick: fetchViewPresets
8424
8474
  }
8425
- })), !error && jsx(Box, {
8426
- sx: {
8427
- padding: 1,
8428
- pt: 1,
8429
- flexShrink: 0
8430
- },
8431
- children: jsx(SearchField, {
8432
- searchFilter: viewPresetListSearchQuery,
8433
- setSearchFilter: onSearchFilter
8434
- })
8475
+ })), !error && jsx(SearchField, {
8476
+ searchFilter: viewPresetListSearchQuery,
8477
+ setSearchFilter: onSearchFilter
8435
8478
  }), jsxs(Box, {
8436
8479
  sx: {
8437
8480
  display: 'grid',
@@ -8452,7 +8495,6 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
8452
8495
  },
8453
8496
  children: jsx(FormProvider, Object.assign({}, labelsFormMethods, {
8454
8497
  children: jsx(WorkspaceMenuLabelsPanel, {
8455
- labelsConfig: labelsConfig,
8456
8498
  menuLabels: viewPresetLabelFilters,
8457
8499
  onChange: onLabelsFilterChange
8458
8500
  })
@@ -8482,6 +8524,7 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
8482
8524
  width: '100%'
8483
8525
  },
8484
8526
  children: jsx(Filter, {
8527
+ activeLabelFilterCount: activeLabelFilterCount,
8485
8528
  filters: viewPresetListFilters,
8486
8529
  isAllSelected: isAllSelectedForFilters,
8487
8530
  isLabelFilterOpen: isLabelFilterOpen,
@@ -8638,8 +8681,6 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8638
8681
  var dispatch = useDispatch();
8639
8682
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
8640
8683
  t = _useWorkspaceTranslat.t;
8641
- var _useWorkspaceLabelsCo = useWorkspaceLabelsConfig(),
8642
- labelsConfig = _useWorkspaceLabelsCo.data;
8643
8684
  var _useAuthenticationCon = useAuthenticationContext(),
8644
8685
  currentRole = _useAuthenticationCon.currentRole,
8645
8686
  isLoggedIn = _useAuthenticationCon.isLoggedIn,
@@ -8662,6 +8703,12 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8662
8703
  return Array.isArray(group) && group.length > 0;
8663
8704
  });
8664
8705
  }, [labelFilters]);
8706
+ var activeLabelFilterCount = React.useMemo(function () {
8707
+ if (!labelFilters) {
8708
+ return 0;
8709
+ }
8710
+ return Object.values(labelFilters).flat().length;
8711
+ }, [labelFilters]);
8665
8712
  var filteredPresets = React.useMemo(function () {
8666
8713
  return filterAndSortPresets(workspacePresets, selectedFilters, username, isAdmin, labelFilters != null ? labelFilters : undefined);
8667
8714
  }, [workspacePresets, selectedFilters, username, isAdmin, labelFilters]);
@@ -8982,15 +9029,9 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8982
9029
  }
8983
9030
  }
8984
9031
  }))
8985
- }), !error && jsx(Box, {
8986
- sx: {
8987
- padding: 1,
8988
- pt: 1
8989
- },
8990
- children: jsx(SearchField, {
8991
- searchFilter: workspaceSearchQuery,
8992
- setSearchFilter: searchFilter
8993
- })
9032
+ }), !error && jsx(SearchField, {
9033
+ searchFilter: workspaceSearchQuery,
9034
+ setSearchFilter: searchFilter
8994
9035
  }), jsxs(Box, {
8995
9036
  sx: {
8996
9037
  display: 'grid',
@@ -9008,7 +9049,6 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
9008
9049
  },
9009
9050
  children: jsx(FormProvider, Object.assign({}, labelsFormMethods, {
9010
9051
  children: jsx(WorkspaceMenuLabelsPanel, {
9011
- labelsConfig: labelsConfig,
9012
9052
  menuLabels: labelFilters,
9013
9053
  onChange: onLabelsFilterChange
9014
9054
  })
@@ -9024,7 +9064,8 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
9024
9064
  },
9025
9065
  children: [!error && jsxs(Box, {
9026
9066
  sx: {
9027
- marginBottom: 1
9067
+ marginBottom: 1,
9068
+ mx: 0.5
9028
9069
  },
9029
9070
  children: [jsx(Box, {
9030
9071
  sx: {
@@ -9032,6 +9073,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
9032
9073
  width: '100%'
9033
9074
  },
9034
9075
  children: jsx(Filter, {
9076
+ activeLabelFilterCount: activeLabelFilterCount,
9035
9077
  filters: workspaceListFilters,
9036
9078
  isAllSelected: isAllSelected,
9037
9079
  isLabelFilterOpen: isLabelFilterOpen,
@@ -9049,6 +9091,9 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
9049
9091
  },
9050
9092
  children: jsx(LastUpdateTime, {
9051
9093
  hideLabel: true,
9094
+ iconButtonSx: {
9095
+ marginLeft: 0
9096
+ },
9052
9097
  onPressRefresh: function onPressRefresh() {
9053
9098
  return fetchWorkspaceList();
9054
9099
  }
@@ -9098,7 +9143,7 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
9098
9143
  return !prev;
9099
9144
  });
9100
9145
  }, []);
9101
- var dialogWidth = isLabelFilterOpen ? 700 : 380;
9146
+ var dialogWidth = isLabelFilterOpen ? 700 : 483;
9102
9147
  return jsx(CustomDialog, {
9103
9148
  "data-testid": "workspace-menu",
9104
9149
  hasLayout: false,
@@ -10359,8 +10404,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
10359
10404
  confirmLabel = _ref.confirmLabel,
10360
10405
  cancelLabel = _ref.cancelLabel,
10361
10406
  onClose = _ref.onClose,
10362
- dialogTitle = _ref.dialogTitle,
10363
- labelsConfig = _ref.labelsConfig;
10407
+ dialogTitle = _ref.dialogTitle;
10364
10408
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
10365
10409
  t = _useWorkspaceTranslat.t;
10366
10410
  var _useFormContext = useFormContext(),
@@ -10490,9 +10534,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
10490
10534
  bgcolor: 'geowebColors.background.surface',
10491
10535
  maxWidth: '80%'
10492
10536
  },
10493
- children: jsx(PresetLabelsPanel, {
10494
- labelsConfig: labelsConfig
10495
- })
10537
+ children: jsx(PresetLabelsPanelWrapper, {})
10496
10538
  }), jsxs(Box, {
10497
10539
  sx: {
10498
10540
  pl: {
@@ -10639,8 +10681,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
10639
10681
  isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
10640
10682
  error = _ref.error,
10641
10683
  _ref$isWorkspaceSaved = _ref.isWorkspaceSaved,
10642
- isWorkspaceSaved = _ref$isWorkspaceSaved === void 0 ? false : _ref$isWorkspaceSaved,
10643
- labelsConfig = _ref.labelsConfig;
10684
+ isWorkspaceSaved = _ref$isWorkspaceSaved === void 0 ? false : _ref$isWorkspaceSaved;
10644
10685
  var _useFormContext = useFormContext(),
10645
10686
  handleFormSubmit = _useFormContext.handleSubmit,
10646
10687
  reset = _useFormContext.reset;
@@ -10817,7 +10858,6 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
10817
10858
  formValues: formValues,
10818
10859
  hasSavedWorkspace: isWorkspaceSaved,
10819
10860
  isLoading: isLoading,
10820
- labelsConfig: labelsConfig,
10821
10861
  onClose: onClose,
10822
10862
  onSubmit: onSubmit,
10823
10863
  showInlineActions: withLabelsPanel
@@ -10849,8 +10889,6 @@ var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
10849
10889
  deleteWorkspace = _useDeleteWorkspacePr.mutate;
10850
10890
  var _useCreateWorkspacePr = useCreateWorkspacePreset(),
10851
10891
  createWorkspace = _useCreateWorkspacePr.mutate;
10852
- var _useWorkspaceLabelsCo = useWorkspaceLabelsConfig(),
10853
- labelsConfig = _useWorkspaceLabelsCo.data;
10854
10892
  var title = useSelector(function (store) {
10855
10893
  return getSelectedWorkspaceTitle(store);
10856
10894
  });
@@ -10991,7 +11029,6 @@ var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
10991
11029
  isLoading: isFetching,
10992
11030
  isOpen: Boolean(dialogDetails),
10993
11031
  isWorkspaceSaved: hasSavedWorkspace,
10994
- labelsConfig: labelsConfig,
10995
11032
  onClose: closeWorkspaceActionDialog,
10996
11033
  onFormSubmit: onSubmitForm,
10997
11034
  presetId: presetId || undefined
@@ -11045,8 +11082,7 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
11045
11082
  confirmLabel = _ref.confirmLabel,
11046
11083
  cancelLabel = _ref.cancelLabel,
11047
11084
  onClose = _ref.onClose,
11048
- dialogTitle = _ref.dialogTitle,
11049
- labelsConfig = _ref.labelsConfig;
11085
+ dialogTitle = _ref.dialogTitle;
11050
11086
  var fieldName = 'title';
11051
11087
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
11052
11088
  t = _useWorkspaceTranslat.t;
@@ -11114,8 +11150,7 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
11114
11150
  bgcolor: 'geowebColors.background.surface',
11115
11151
  maxWidth: '80%'
11116
11152
  },
11117
- children: jsx(PresetLabelsPanel, {
11118
- labelsConfig: labelsConfig,
11153
+ children: jsx(PresetLabelsPanelWrapper, {
11119
11154
  viewComponentType: viewComponentType
11120
11155
  })
11121
11156
  }), jsxs(Box, {
@@ -11255,7 +11290,6 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
11255
11290
  viewPresetId = _ref.viewPresetId,
11256
11291
  viewComponentType = _ref.viewComponentType,
11257
11292
  formValues = _ref.formValues,
11258
- labelsConfig = _ref.labelsConfig,
11259
11293
  onSuccess = _ref.onSuccess,
11260
11294
  onClose = _ref.onClose,
11261
11295
  title = _ref.title,
@@ -11469,7 +11503,6 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
11469
11503
  error: error,
11470
11504
  formValues: formValues,
11471
11505
  isLoading: isLoading,
11472
- labelsConfig: labelsConfig,
11473
11506
  onClose: onClose,
11474
11507
  onSubmit: onSubmit,
11475
11508
  showInlineActions: withLabelsPanel,
@@ -11520,8 +11553,7 @@ var useDeleteViewPreset = function useDeleteViewPreset() {
11520
11553
  var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
11521
11554
  var _dialogOptions$formVa;
11522
11555
  var _ref$scope = _ref.scope,
11523
- scope = _ref$scope === void 0 ? 'user' : _ref$scope,
11524
- labelsConfig = _ref.labelsConfig;
11556
+ scope = _ref$scope === void 0 ? 'user' : _ref$scope;
11525
11557
  var dispatch = useDispatch();
11526
11558
  var dialogOptions = useSelector(function (store) {
11527
11559
  return getDialogOptions(store);
@@ -11563,7 +11595,6 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
11563
11595
  action: (dialogOptions == null ? void 0 : dialogOptions.action) || PresetAction.SAVE,
11564
11596
  formValues: dialogOptions == null ? void 0 : dialogOptions.formValues,
11565
11597
  isOpen: isOpen,
11566
- labelsConfig: labelsConfig,
11567
11598
  onClose: onClose,
11568
11599
  onDelete: deleteViewPreset,
11569
11600
  onReset: onReset,
@@ -11586,8 +11617,6 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
11586
11617
  t = _useWorkspaceTranslat.t;
11587
11618
  var _useAuthenticationCon = useAuthenticationContext(),
11588
11619
  currentRole = _useAuthenticationCon.currentRole;
11589
- var _useWorkspaceLabelsCo = useWorkspaceLabelsConfig(),
11590
- labelsConfig = _useWorkspaceLabelsCo.data;
11591
11620
  var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
11592
11621
  var error = useSelector(function (store) {
11593
11622
  return getWorkspaceError(store);
@@ -11688,7 +11717,6 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
11688
11717
  })
11689
11718
  })]
11690
11719
  }), jsx(ViewPresetsFormDialogConnect, {
11691
- labelsConfig: labelsConfig,
11692
11720
  scope: isAdmin ? 'system' : 'user'
11693
11721
  })]
11694
11722
  });