@opengeoweb/workspace 14.5.1 → 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, 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;
5171
+ break;
5172
+ }
5173
+ hasChanges = hasWorkspaceChanges(listenerApi.getState());
5174
+ if (!hasChanges) {
5175
+ _context3.next = 50;
5077
5176
  break;
5078
5177
  }
5079
- _context3.next = 45;
5080
- return workspaceApi.saveWorkspacePreset(workspaceId, newWorkspace);
5081
- case 45:
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,6 +5315,12 @@ workspaceListener.startListening({
5215
5315
  payload = _ref3.payload;
5216
5316
  // Cancel any in-progress instances of this listener
5217
5317
  listenerApi.cancelActiveListeners();
5318
+ _context4.next = 4;
5319
+ return listenerApi.condition(function (_action, currentState) {
5320
+ var _currentState$workspa;
5321
+ return ((_currentState$workspa = currentState.workspace) == null ? void 0 : _currentState$workspa.mosaicNode) === '';
5322
+ }, 500);
5323
+ case 4:
5218
5324
  listenerApi.dispatch(syncGroupsActions.syncGroupClear());
5219
5325
  listenerApi.dispatch(workspaceActions.setPreset(payload));
5220
5326
  allSyncGroups = getSyncGroups(payload.workspacePreset.syncGroups);
@@ -5229,7 +5335,7 @@ workspaceListener.startListening({
5229
5335
  isTimeScrollingEnabled: isTimeScrollingEnabled
5230
5336
  }));
5231
5337
  views = toViewsArray(payload.workspacePreset.views);
5232
- _context4.next = 12;
5338
+ _context4.next = 14;
5233
5339
  return Promise.all(views.map(/*#__PURE__*/function () {
5234
5340
  var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(view) {
5235
5341
  var _view$initialProps$sy, _view$initialProps;
@@ -5261,7 +5367,7 @@ workspaceListener.startListening({
5261
5367
  return _ref4.apply(this, arguments);
5262
5368
  };
5263
5369
  }()));
5264
- case 12:
5370
+ case 14:
5265
5371
  views.forEach(function (view) {
5266
5372
  var panelId = view.mosaicNodeId;
5267
5373
  if (!panelId) {
@@ -5273,7 +5379,7 @@ workspaceListener.startListening({
5273
5379
  isInline: hasInlineConfig
5274
5380
  }));
5275
5381
  });
5276
- case 13:
5382
+ case 15:
5277
5383
  case "end":
5278
5384
  return _context4.stop();
5279
5385
  }
@@ -5413,10 +5519,17 @@ workspaceListener.startListening({
5413
5519
  listenerApi.dispatch(workspaceActions.changePreset({
5414
5520
  workspacePreset: fullLoadingWorkspace
5415
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:
5416
5529
  // fetch all individual view presets in batches and collect all actions
5417
5530
  workspaceIdsInBatches = getListInChunks(workspaceData.views);
5418
5531
  actionsToDispatch = [];
5419
- _context9.next = 21;
5532
+ _context9.next = 23;
5420
5533
  return Promise.all(workspaceIdsInBatches.map(/*#__PURE__*/function () {
5421
5534
  var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(batchCall) {
5422
5535
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
@@ -5434,9 +5547,7 @@ workspaceListener.startListening({
5434
5547
  }
5435
5548
  return _context7.abrupt("return");
5436
5549
  case 2:
5437
- return _context7.abrupt("return", fetchWorkspaceViewPreset(function (thunkAction) {
5438
- actionsToDispatch.push(thunkAction);
5439
- }, 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));
5440
5551
  case 3:
5441
5552
  case "end":
5442
5553
  return _context7.stop();
@@ -5457,13 +5568,13 @@ workspaceListener.startListening({
5457
5568
  return _ref7.apply(this, arguments);
5458
5569
  };
5459
5570
  }()));
5460
- case 21:
5571
+ case 23:
5461
5572
  // Trigger all actions at once
5462
5573
  actionsToDispatch.map(listenerApi.dispatch);
5463
- _context9.next = 28;
5574
+ _context9.next = 30;
5464
5575
  break;
5465
- case 24:
5466
- _context9.prev = 24;
5576
+ case 26:
5577
+ _context9.prev = 26;
5467
5578
  _context9.t0 = _context9["catch"](4);
5468
5579
  errorType = _context9.t0.message === ERROR_NOT_FOUND ? WorkspaceErrorType.NOT_FOUND : WorkspaceErrorType.GENERIC;
5469
5580
  listenerApi.dispatch(workspaceActions.errorWorkspace({
@@ -5473,11 +5584,11 @@ workspaceListener.startListening({
5473
5584
  type: errorType
5474
5585
  }
5475
5586
  }));
5476
- case 28:
5587
+ case 30:
5477
5588
  case "end":
5478
5589
  return _context9.stop();
5479
5590
  }
5480
- }, _callee9, null, [[4, 24]]);
5591
+ }, _callee9, null, [[4, 26]]);
5481
5592
  }));
5482
5593
  function effect(_x12, _x13) {
5483
5594
  return _effect5.apply(this, arguments);
@@ -5489,7 +5600,7 @@ workspaceListener.startListening({
5489
5600
  actionCreator: workspaceActions.saveWorkspacePreset,
5490
5601
  effect: function () {
5491
5602
  var _effect6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee0(_ref9, listenerApi) {
5492
- var payload, workspace, _workspace$scope, workspaceApi;
5603
+ var payload, workspace, _listenerApi$getState3, _workspace$scope, credentials;
5493
5604
  return _regeneratorRuntime().wrap(function _callee0$(_context0) {
5494
5605
  while (1) switch (_context0.prev = _context0.next) {
5495
5606
  case 0:
@@ -5498,9 +5609,9 @@ workspaceListener.startListening({
5498
5609
  listenerApi.cancelActiveListeners();
5499
5610
  workspace = payload.workspace;
5500
5611
  _context0.prev = 3;
5501
- workspaceApi = getWorkspaceApi();
5612
+ credentials = (_listenerApi$getState3 = listenerApi.getState().common) == null || (_listenerApi$getState3 = _listenerApi$getState3.auth) == null ? void 0 : _listenerApi$getState3.credentials;
5502
5613
  _context0.next = 7;
5503
- return workspaceApi.saveWorkspacePreset(workspace.id, workspace);
5614
+ return getQueryClient().fetchQuery(workspaceQueryOptions.saveWorkspacePreset(workspace.id, workspace, credentials));
5504
5615
  case 7:
5505
5616
  listenerApi.dispatch(workspaceActions.loadedWorkspace(undefined));
5506
5617
  listenerApi.dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
@@ -6765,32 +6876,6 @@ var defaultComponentsLookUp = function defaultComponentsLookUp(_ref3) {
6765
6876
  }
6766
6877
  };
6767
6878
 
6768
- /* *
6769
- * Licensed under the Apache License, Version 2.0 (the "License");
6770
- * you may not use this file except in compliance with the License.
6771
- * You may obtain a copy of the License at
6772
- *
6773
- * http://www.apache.org/licenses/LICENSE-2.0
6774
- *
6775
- * Unless required by applicable law or agreed to in writing, software
6776
- * distributed under the License is distributed on an "AS IS" BASIS,
6777
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6778
- * See the License for the specific language governing permissions and
6779
- * limitations under the License.
6780
- *
6781
- * Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
6782
- * Copyright 2025 - Finnish Meteorological Institute (FMI)
6783
- * Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
6784
- * */
6785
- var LABELS_CONFIG_DEFAULT = {
6786
- purpose: ['Aviation', 'Monitor', 'Public', 'Maritime', 'Warning', 'Media', 'Nowcasting (0–12h)'],
6787
- parameters: ['Pressure', 'Temperature', 'Wind', 'Humidity', 'Water vapour', 'Visibility', 'Geopotential', 'Snow', 'Cloud', 'Waves', 'Index', 'Precipitation'],
6788
- 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'],
6789
- viewType: [].concat(ALL_COMPONENT_TYPES),
6790
- dataType: ['observation', 'forecast', 'archive'],
6791
- dataSource: ['Meps', 'Arome Arctic', 'Ecmwf', 'Ensemble', 'AIFS', 'BRIS', 'radar', 'satellite', 'synop']
6792
- };
6793
-
6794
6879
  var VIEW_TYPE_KEY = 'viewType';
6795
6880
  var normalizeLabels = function normalizeLabels(labels, available) {
6796
6881
  var result = {};
@@ -6822,13 +6907,12 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
6822
6907
  control: control,
6823
6908
  name: 'views'
6824
6909
  });
6825
- var availableLabels = labelsConfig != null ? labelsConfig : LABELS_CONFIG_DEFAULT;
6826
6910
  var labels = React.useMemo(function () {
6827
- return normalizeLabels(watchedLabels, availableLabels);
6828
- }, [watchedLabels, availableLabels]);
6911
+ return normalizeLabels(watchedLabels, labelsConfig);
6912
+ }, [watchedLabels, labelsConfig]);
6829
6913
  var groupKeys = React.useMemo(function () {
6830
- return Array.from(new Set([VIEW_TYPE_KEY].concat(Object.keys(availableLabels != null ? availableLabels : {}), watchedLabels ? Object.keys(watchedLabels) : [])));
6831
- }, [availableLabels, watchedLabels]);
6914
+ return Array.from(new Set([VIEW_TYPE_KEY].concat(Object.keys(labelsConfig != null ? labelsConfig : {}), watchedLabels ? Object.keys(watchedLabels) : [])));
6915
+ }, [labelsConfig, watchedLabels]);
6832
6916
  var orderedGroupKeys = React.useMemo(function () {
6833
6917
  var withoutViewType = groupKeys.filter(function (key) {
6834
6918
  return key !== VIEW_TYPE_KEY;
@@ -6890,9 +6974,9 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
6890
6974
  return (_labels$VIEW_TYPE_KEY = labels[VIEW_TYPE_KEY]) != null ? _labels$VIEW_TYPE_KEY : [];
6891
6975
  }, [labels]);
6892
6976
  var viewTypeConfigItems = React.useMemo(function () {
6893
- var _availableLabels$VIEW;
6894
- return ((_availableLabels$VIEW = availableLabels == null ? void 0 : availableLabels[VIEW_TYPE_KEY]) != null ? _availableLabels$VIEW : []).slice();
6895
- }, [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]);
6896
6980
  var viewTypeItems = React.useMemo(function () {
6897
6981
  if (isMenuFilterMode) {
6898
6982
  if (viewTypeConfigItems.length > 0) {
@@ -6979,9 +7063,9 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
6979
7063
  };
6980
7064
  var groups = React.useMemo(function () {
6981
7065
  return orderedGroupKeys.map(function (key) {
6982
- var _availableLabels$key;
7066
+ var _labelsConfig$key;
6983
7067
  var isViewType = key === VIEW_TYPE_KEY;
6984
- var items = isViewType ? viewTypeItems : (_availableLabels$key = availableLabels[key]) != null ? _availableLabels$key : [];
7068
+ var items = isViewType ? viewTypeItems : (_labelsConfig$key = labelsConfig[key]) != null ? _labelsConfig$key : [];
6985
7069
  var locked = !isMenuFilterMode && isViewType;
6986
7070
  return {
6987
7071
  key: key,
@@ -6990,7 +7074,7 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
6990
7074
  locked: locked
6991
7075
  };
6992
7076
  });
6993
- }, [orderedGroupKeys, availableLabels, viewTypeItems, isMenuFilterMode, titleForGroup]);
7077
+ }, [orderedGroupKeys, labelsConfig, viewTypeItems, isMenuFilterMode, titleForGroup]);
6994
7078
  var _React$useState = React.useState(false),
6995
7079
  expandAll = _React$useState[0],
6996
7080
  setExpandAll = _React$useState[1];
@@ -7182,6 +7266,179 @@ var PresetLabelsPanel = function PresetLabelsPanel(_ref) {
7182
7266
  });
7183
7267
  };
7184
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
+
7185
7442
  var WorkspaceMenuLabelsPanel = function WorkspaceMenuLabelsPanel(_ref) {
7186
7443
  var value = _ref.value,
7187
7444
  onChange = _ref.onChange,
@@ -7193,7 +7450,7 @@ var WorkspaceMenuLabelsPanel = function WorkspaceMenuLabelsPanel(_ref) {
7193
7450
  }
7194
7451
  });
7195
7452
  return jsx(FormProvider, Object.assign({}, methods, {
7196
- children: jsx(PresetLabelsPanel, {
7453
+ children: jsx(PresetLabelsPanelWrapper, {
7197
7454
  "data-testid": "workspace-menu-labels-panel",
7198
7455
  isMenuFilterMode: true,
7199
7456
  menuLabels: menuLabels,
@@ -7566,7 +7823,7 @@ var WorkspacePresetInfo = function WorkspacePresetInfo(_ref) {
7566
7823
  });
7567
7824
  };
7568
7825
 
7569
- var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 46;
7826
+ var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 41;
7570
7827
  var getPresetIcon = function getPresetIcon(preset, currentUsername) {
7571
7828
  if (preset.scope === 'system') {
7572
7829
  return jsx(WorkspacePresetsSystemIcon, {
@@ -7686,12 +7943,13 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
7686
7943
  disablePadding: true,
7687
7944
  sx: {
7688
7945
  mb: 0.5,
7946
+ ml: 0.5,
7689
7947
  borderRadius: 1.5,
7690
7948
  backgroundColor: 'geowebColors.cards.cardContainer',
7691
- 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)',
7692
7950
  transition: 'box-shadow 0.15s ease-out, transform 0.15s ease-out',
7693
7951
  ' .MuiListItemText-primary': {
7694
- fontSize: '12px',
7952
+ fontSize: '16px',
7695
7953
  fontWeight: 500,
7696
7954
  textOverflow: 'ellipsis',
7697
7955
  overflow: 'hidden',
@@ -7721,7 +7979,9 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
7721
7979
  role: "listitem",
7722
7980
  selected: isSelected,
7723
7981
  sx: {
7724
- padding: 1,
7982
+ pl: 2,
7983
+ pr: 1,
7984
+ py: 1,
7725
7985
  height: WORKSPACE_SELECT_LIST_ROW_HEIGHT + "px"
7726
7986
  },
7727
7987
  children: [jsx(ListItemIcon, {
@@ -7815,7 +8075,7 @@ var MIN_HEIGHT_SCROLLABLE_LIST = 88; // Slightly less than 2 rows
7815
8075
  var LIST_PADDING_TOP = 8;
7816
8076
  var DEFAULT_RESULTS_HEIGHT = 22;
7817
8077
  // row height = height + margin
7818
- var rowHeight = WORKSPACE_SELECT_LIST_ROW_HEIGHT + 4;
8078
+ var rowHeight = WORKSPACE_SELECT_LIST_ROW_HEIGHT + 12;
7819
8079
  var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
7820
8080
  var workspacePresets = _ref.workspacePresets,
7821
8081
  currentSelectedId = _ref.currentSelectedId,
@@ -7846,7 +8106,8 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
7846
8106
  children: [jsxs(Box, {
7847
8107
  sx: {
7848
8108
  marginBottom: '4px',
7849
- fontSize: '12px'
8109
+ fontSize: '12px',
8110
+ ml: 0.5
7850
8111
  },
7851
8112
  children: [workspacePresets.length, " ", t('workspace-results')]
7852
8113
  }), jsx(AutoSizer, {
@@ -7869,7 +8130,9 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref) {
7869
8130
  style = _ref3.style;
7870
8131
  var preset = items[index];
7871
8132
  return jsx("div", {
7872
- style: style,
8133
+ style: Object.assign({}, style, {
8134
+ paddingRight: '8px'
8135
+ }),
7873
8136
  children: jsx(WorkspaceSelectListRow, {
7874
8137
  infoOpenPresetId: infoOpenPresetId,
7875
8138
  isAdmin: isAdmin,
@@ -7929,6 +8192,12 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
7929
8192
  return Array.isArray(group) && group.length > 0;
7930
8193
  });
7931
8194
  }, [viewPresetLabelFilters]);
8195
+ var activeLabelFilterCount = React.useMemo(function () {
8196
+ if (!viewPresetLabelFilters) {
8197
+ return 0;
8198
+ }
8199
+ return Object.values(viewPresetLabelFilters).flat().length;
8200
+ }, [viewPresetLabelFilters]);
7932
8201
  var filteredPresets = React.useMemo(function () {
7933
8202
  return filterAndSortPresets(viewPresets, viewPresetListFilters, username, isAdmin, viewPresetLabelFilters != null ? viewPresetLabelFilters : undefined);
7934
8203
  }, [viewPresets, viewPresetListFilters, username, isAdmin, viewPresetLabelFilters]);
@@ -8203,16 +8472,9 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
8203
8472
  title: t('workspace-retry'),
8204
8473
  onClick: fetchViewPresets
8205
8474
  }
8206
- })), !error && jsx(Box, {
8207
- sx: {
8208
- padding: 1,
8209
- pt: 1,
8210
- flexShrink: 0
8211
- },
8212
- children: jsx(SearchField, {
8213
- searchFilter: viewPresetListSearchQuery,
8214
- setSearchFilter: onSearchFilter
8215
- })
8475
+ })), !error && jsx(SearchField, {
8476
+ searchFilter: viewPresetListSearchQuery,
8477
+ setSearchFilter: onSearchFilter
8216
8478
  }), jsxs(Box, {
8217
8479
  sx: {
8218
8480
  display: 'grid',
@@ -8262,6 +8524,7 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
8262
8524
  width: '100%'
8263
8525
  },
8264
8526
  children: jsx(Filter, {
8527
+ activeLabelFilterCount: activeLabelFilterCount,
8265
8528
  filters: viewPresetListFilters,
8266
8529
  isAllSelected: isAllSelectedForFilters,
8267
8530
  isLabelFilterOpen: isLabelFilterOpen,
@@ -8410,103 +8673,6 @@ var ViewPresetMenu = function ViewPresetMenu(_ref) {
8410
8673
  });
8411
8674
  };
8412
8675
 
8413
- var config = sessionStorageProvider.getConfig();
8414
- var presetBaseUrl = (config == null ? void 0 : config.GW_PRESET_BACKEND_URL) || '';
8415
- var labelsConfigUrl = '/assets/workspaceLabelsConfig.json';
8416
- var getWorkspaceLabelsConfig = /*#__PURE__*/function () {
8417
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
8418
- return _regeneratorRuntime().wrap(function _callee$(_context) {
8419
- while (1) switch (_context.prev = _context.next) {
8420
- case 0:
8421
- return _context.abrupt("return", fetch(labelsConfigUrl).then(handleResponse));
8422
- case 1:
8423
- case "end":
8424
- return _context.stop();
8425
- }
8426
- }, _callee);
8427
- }));
8428
- return function getWorkspaceLabelsConfig() {
8429
- return _ref.apply(this, arguments);
8430
- };
8431
- }();
8432
- var getWorkspace = /*#__PURE__*/function () {
8433
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(workspaceId, auth) {
8434
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
8435
- while (1) switch (_context2.prev = _context2.next) {
8436
- case 0:
8437
- return _context2.abrupt("return", fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
8438
- headers: getHeaders(auth)
8439
- }).then(handleResponse));
8440
- case 1:
8441
- case "end":
8442
- return _context2.stop();
8443
- }
8444
- }, _callee2);
8445
- }));
8446
- return function getWorkspace(_x, _x2) {
8447
- return _ref2.apply(this, arguments);
8448
- };
8449
- }();
8450
- var deleteWorkspace = /*#__PURE__*/function () {
8451
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(workspaceId, auth) {
8452
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
8453
- while (1) switch (_context3.prev = _context3.next) {
8454
- case 0:
8455
- return _context3.abrupt("return", fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
8456
- headers: getHeaders(auth),
8457
- method: 'DELETE'
8458
- }).then(handleResponse));
8459
- case 1:
8460
- case "end":
8461
- return _context3.stop();
8462
- }
8463
- }, _callee3);
8464
- }));
8465
- return function deleteWorkspace(_x3, _x4) {
8466
- return _ref3.apply(this, arguments);
8467
- };
8468
- }();
8469
- var updateWorkspace = /*#__PURE__*/function () {
8470
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(workspaceId, data, auth) {
8471
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
8472
- while (1) switch (_context4.prev = _context4.next) {
8473
- case 0:
8474
- return _context4.abrupt("return", fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
8475
- headers: getHeaders(auth),
8476
- method: 'PUT',
8477
- body: JSON.stringify(data)
8478
- }).then(handleResponse));
8479
- case 1:
8480
- case "end":
8481
- return _context4.stop();
8482
- }
8483
- }, _callee4);
8484
- }));
8485
- return function updateWorkspace(_x5, _x6, _x7) {
8486
- return _ref4.apply(this, arguments);
8487
- };
8488
- }();
8489
- var createWorkspace = /*#__PURE__*/function () {
8490
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(data, auth) {
8491
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
8492
- while (1) switch (_context5.prev = _context5.next) {
8493
- case 0:
8494
- return _context5.abrupt("return", fetch(presetBaseUrl + "/workspacepreset", {
8495
- headers: getHeaders(auth),
8496
- method: 'POST',
8497
- body: JSON.stringify(data)
8498
- }).then(handleResponse));
8499
- case 1:
8500
- case "end":
8501
- return _context5.stop();
8502
- }
8503
- }, _callee5);
8504
- }));
8505
- return function createWorkspace(_x8, _x9) {
8506
- return _ref5.apply(this, arguments);
8507
- };
8508
- }();
8509
-
8510
8676
  var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8511
8677
  var _GENERIC$AUTH$error$c;
8512
8678
  var _ref$isLabelFilterOpe = _ref.isLabelFilterOpen,
@@ -8537,6 +8703,12 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8537
8703
  return Array.isArray(group) && group.length > 0;
8538
8704
  });
8539
8705
  }, [labelFilters]);
8706
+ var activeLabelFilterCount = React.useMemo(function () {
8707
+ if (!labelFilters) {
8708
+ return 0;
8709
+ }
8710
+ return Object.values(labelFilters).flat().length;
8711
+ }, [labelFilters]);
8540
8712
  var filteredPresets = React.useMemo(function () {
8541
8713
  return filterAndSortPresets(workspacePresets, selectedFilters, username, isAdmin, labelFilters != null ? labelFilters : undefined);
8542
8714
  }, [workspacePresets, selectedFilters, username, isAdmin, labelFilters]);
@@ -8857,15 +9029,9 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8857
9029
  }
8858
9030
  }
8859
9031
  }))
8860
- }), !error && jsx(Box, {
8861
- sx: {
8862
- padding: 1,
8863
- pt: 1
8864
- },
8865
- children: jsx(SearchField, {
8866
- searchFilter: workspaceSearchQuery,
8867
- setSearchFilter: searchFilter
8868
- })
9032
+ }), !error && jsx(SearchField, {
9033
+ searchFilter: workspaceSearchQuery,
9034
+ setSearchFilter: searchFilter
8869
9035
  }), jsxs(Box, {
8870
9036
  sx: {
8871
9037
  display: 'grid',
@@ -8898,7 +9064,8 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8898
9064
  },
8899
9065
  children: [!error && jsxs(Box, {
8900
9066
  sx: {
8901
- marginBottom: 1
9067
+ marginBottom: 1,
9068
+ mx: 0.5
8902
9069
  },
8903
9070
  children: [jsx(Box, {
8904
9071
  sx: {
@@ -8906,6 +9073,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8906
9073
  width: '100%'
8907
9074
  },
8908
9075
  children: jsx(Filter, {
9076
+ activeLabelFilterCount: activeLabelFilterCount,
8909
9077
  filters: workspaceListFilters,
8910
9078
  isAllSelected: isAllSelected,
8911
9079
  isLabelFilterOpen: isLabelFilterOpen,
@@ -8923,6 +9091,9 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect(_ref) {
8923
9091
  },
8924
9092
  children: jsx(LastUpdateTime, {
8925
9093
  hideLabel: true,
9094
+ iconButtonSx: {
9095
+ marginLeft: 0
9096
+ },
8926
9097
  onPressRefresh: function onPressRefresh() {
8927
9098
  return fetchWorkspaceList();
8928
9099
  }
@@ -8972,7 +9143,7 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
8972
9143
  return !prev;
8973
9144
  });
8974
9145
  }, []);
8975
- var dialogWidth = isLabelFilterOpen ? 700 : 380;
9146
+ var dialogWidth = isLabelFilterOpen ? 700 : 483;
8976
9147
  return jsx(CustomDialog, {
8977
9148
  "data-testid": "workspace-menu",
8978
9149
  hasLayout: false,
@@ -10203,117 +10374,6 @@ var WorkspaceTab = function WorkspaceTab(_ref) {
10203
10374
  });
10204
10375
  };
10205
10376
 
10206
- var useWorkspaceLabelsConfig = function useWorkspaceLabelsConfig() {
10207
- return useQuery({
10208
- queryKey: ['workspace-labels-config'],
10209
- queryFn: getWorkspaceLabelsConfig
10210
- });
10211
- };
10212
- var onWorkspaceApiError = function onWorkspaceApiError(dispatch, error, t) {
10213
- dispatch(workspaceListActions.onErrorWorkspacePresetAction({
10214
- error: {
10215
- message: error.message + " " + t('workspace-error-generic'),
10216
- type: WorkspaceListErrorType.VERBATIM_ERROR,
10217
- category: error.message === 'Authentication context not found' ? WorkspaceListErrorCategory.AUTH : WorkspaceListErrorCategory.GENERIC
10218
- }
10219
- }));
10220
- };
10221
- var useDeleteWorkspacePreset = function useDeleteWorkspacePreset() {
10222
- var _useAuthenticationCon = useAuthenticationContext(),
10223
- auth = _useAuthenticationCon.auth;
10224
- var _useSelector = useSelector(getWorkspaceActionFormValues),
10225
- title = _useSelector.title;
10226
- var _useWorkspaceTranslat = useWorkspaceTranslation(),
10227
- t = _useWorkspaceTranslat.t;
10228
- var dispatch = useDispatch();
10229
- return useMutation({
10230
- mutationFn: function () {
10231
- var _mutationFn = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
10232
- var id;
10233
- return _regeneratorRuntime().wrap(function _callee$(_context) {
10234
- while (1) switch (_context.prev = _context.next) {
10235
- case 0:
10236
- id = _ref.id;
10237
- if (auth) {
10238
- _context.next = 3;
10239
- break;
10240
- }
10241
- throw new Error('Authentication context not found');
10242
- case 3:
10243
- return _context.abrupt("return", deleteWorkspace(id, auth));
10244
- case 4:
10245
- case "end":
10246
- return _context.stop();
10247
- }
10248
- }, _callee);
10249
- }));
10250
- function mutationFn(_x) {
10251
- return _mutationFn.apply(this, arguments);
10252
- }
10253
- return mutationFn;
10254
- }(),
10255
- onSuccess: function onSuccess(data, variables) {
10256
- dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
10257
- workspaceId: variables.id,
10258
- action: WorkspacePresetAction.DELETE,
10259
- emptyWorkspacePresetTitle: t('workspace-new'),
10260
- title: title
10261
- }));
10262
- },
10263
- onError: function onError(error) {
10264
- onWorkspaceApiError(dispatch, error, t);
10265
- }
10266
- });
10267
- };
10268
- var useCreateWorkspacePreset = function useCreateWorkspacePreset() {
10269
- var _useAuthenticationCon2 = useAuthenticationContext(),
10270
- auth = _useAuthenticationCon2.auth;
10271
- var _useWorkspaceTranslat2 = useWorkspaceTranslation(),
10272
- t = _useWorkspaceTranslat2.t;
10273
- var dispatch = useDispatch();
10274
- return useMutation({
10275
- mutationFn: function () {
10276
- var _mutationFn2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
10277
- var data;
10278
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
10279
- while (1) switch (_context2.prev = _context2.next) {
10280
- case 0:
10281
- data = _ref2.data;
10282
- if (auth) {
10283
- _context2.next = 3;
10284
- break;
10285
- }
10286
- throw new Error('Authentication context not found');
10287
- case 3:
10288
- return _context2.abrupt("return", createWorkspace(data, auth));
10289
- case 4:
10290
- case "end":
10291
- return _context2.stop();
10292
- }
10293
- }, _callee2);
10294
- }));
10295
- function mutationFn(_x2) {
10296
- return _mutationFn2.apply(this, arguments);
10297
- }
10298
- return mutationFn;
10299
- }(),
10300
- onSuccess: function onSuccess(data, variables) {
10301
- var location = data == null ? void 0 : data.get('location');
10302
- var newId = getIdFromUrl(location);
10303
- var scope = variables.data.scope || 'user';
10304
- dispatch(workspaceListActions.onSuccessWorkspacePresetAction({
10305
- workspaceId: newId,
10306
- action: variables.action || WorkspacePresetAction.SAVE_AS,
10307
- title: variables.data.title,
10308
- scope: scope
10309
- }));
10310
- },
10311
- onError: function onError(error) {
10312
- onWorkspaceApiError(dispatch, error, t);
10313
- }
10314
- });
10315
- };
10316
-
10317
10377
  var _excluded$3 = ["title", "description", "abstract"];
10318
10378
  var ERROR_DUPLICATE_TITLE_BE = 'Preset title already in use, please choose a different title';
10319
10379
  var ERROR_LONG_TITLE_BE = 'Preset title cannot exceed 100 characters';
@@ -10344,8 +10404,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
10344
10404
  confirmLabel = _ref.confirmLabel,
10345
10405
  cancelLabel = _ref.cancelLabel,
10346
10406
  onClose = _ref.onClose,
10347
- dialogTitle = _ref.dialogTitle,
10348
- labelsConfig = _ref.labelsConfig;
10407
+ dialogTitle = _ref.dialogTitle;
10349
10408
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
10350
10409
  t = _useWorkspaceTranslat.t;
10351
10410
  var _useFormContext = useFormContext(),
@@ -10475,9 +10534,7 @@ var WorkspacePresetsForm = function WorkspacePresetsForm(_ref) {
10475
10534
  bgcolor: 'geowebColors.background.surface',
10476
10535
  maxWidth: '80%'
10477
10536
  },
10478
- children: jsx(PresetLabelsPanel, {
10479
- labelsConfig: labelsConfig
10480
- })
10537
+ children: jsx(PresetLabelsPanelWrapper, {})
10481
10538
  }), jsxs(Box, {
10482
10539
  sx: {
10483
10540
  pl: {
@@ -10624,8 +10681,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
10624
10681
  isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
10625
10682
  error = _ref.error,
10626
10683
  _ref$isWorkspaceSaved = _ref.isWorkspaceSaved,
10627
- isWorkspaceSaved = _ref$isWorkspaceSaved === void 0 ? false : _ref$isWorkspaceSaved,
10628
- labelsConfig = _ref.labelsConfig;
10684
+ isWorkspaceSaved = _ref$isWorkspaceSaved === void 0 ? false : _ref$isWorkspaceSaved;
10629
10685
  var _useFormContext = useFormContext(),
10630
10686
  handleFormSubmit = _useFormContext.handleSubmit,
10631
10687
  reset = _useFormContext.reset;
@@ -10802,7 +10858,6 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
10802
10858
  formValues: formValues,
10803
10859
  hasSavedWorkspace: isWorkspaceSaved,
10804
10860
  isLoading: isLoading,
10805
- labelsConfig: labelsConfig,
10806
10861
  onClose: onClose,
10807
10862
  onSubmit: onSubmit,
10808
10863
  showInlineActions: withLabelsPanel
@@ -10834,8 +10889,6 @@ var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
10834
10889
  deleteWorkspace = _useDeleteWorkspacePr.mutate;
10835
10890
  var _useCreateWorkspacePr = useCreateWorkspacePreset(),
10836
10891
  createWorkspace = _useCreateWorkspacePr.mutate;
10837
- var _useWorkspaceLabelsCo = useWorkspaceLabelsConfig(),
10838
- labelsConfig = _useWorkspaceLabelsCo.data;
10839
10892
  var title = useSelector(function (store) {
10840
10893
  return getSelectedWorkspaceTitle(store);
10841
10894
  });
@@ -10976,7 +11029,6 @@ var WorkspaceTabConnect = function WorkspaceTabConnect(_ref) {
10976
11029
  isLoading: isFetching,
10977
11030
  isOpen: Boolean(dialogDetails),
10978
11031
  isWorkspaceSaved: hasSavedWorkspace,
10979
- labelsConfig: labelsConfig,
10980
11032
  onClose: closeWorkspaceActionDialog,
10981
11033
  onFormSubmit: onSubmitForm,
10982
11034
  presetId: presetId || undefined
@@ -11030,8 +11082,7 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
11030
11082
  confirmLabel = _ref.confirmLabel,
11031
11083
  cancelLabel = _ref.cancelLabel,
11032
11084
  onClose = _ref.onClose,
11033
- dialogTitle = _ref.dialogTitle,
11034
- labelsConfig = _ref.labelsConfig;
11085
+ dialogTitle = _ref.dialogTitle;
11035
11086
  var fieldName = 'title';
11036
11087
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
11037
11088
  t = _useWorkspaceTranslat.t;
@@ -11099,8 +11150,7 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
11099
11150
  bgcolor: 'geowebColors.background.surface',
11100
11151
  maxWidth: '80%'
11101
11152
  },
11102
- children: jsx(PresetLabelsPanel, {
11103
- labelsConfig: labelsConfig,
11153
+ children: jsx(PresetLabelsPanelWrapper, {
11104
11154
  viewComponentType: viewComponentType
11105
11155
  })
11106
11156
  }), jsxs(Box, {
@@ -11240,7 +11290,6 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
11240
11290
  viewPresetId = _ref.viewPresetId,
11241
11291
  viewComponentType = _ref.viewComponentType,
11242
11292
  formValues = _ref.formValues,
11243
- labelsConfig = _ref.labelsConfig,
11244
11293
  onSuccess = _ref.onSuccess,
11245
11294
  onClose = _ref.onClose,
11246
11295
  title = _ref.title,
@@ -11454,7 +11503,6 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
11454
11503
  error: error,
11455
11504
  formValues: formValues,
11456
11505
  isLoading: isLoading,
11457
- labelsConfig: labelsConfig,
11458
11506
  onClose: onClose,
11459
11507
  onSubmit: onSubmit,
11460
11508
  showInlineActions: withLabelsPanel,
@@ -11505,8 +11553,7 @@ var useDeleteViewPreset = function useDeleteViewPreset() {
11505
11553
  var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
11506
11554
  var _dialogOptions$formVa;
11507
11555
  var _ref$scope = _ref.scope,
11508
- scope = _ref$scope === void 0 ? 'user' : _ref$scope,
11509
- labelsConfig = _ref.labelsConfig;
11556
+ scope = _ref$scope === void 0 ? 'user' : _ref$scope;
11510
11557
  var dispatch = useDispatch();
11511
11558
  var dialogOptions = useSelector(function (store) {
11512
11559
  return getDialogOptions(store);
@@ -11548,7 +11595,6 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
11548
11595
  action: (dialogOptions == null ? void 0 : dialogOptions.action) || PresetAction.SAVE,
11549
11596
  formValues: dialogOptions == null ? void 0 : dialogOptions.formValues,
11550
11597
  isOpen: isOpen,
11551
- labelsConfig: labelsConfig,
11552
11598
  onClose: onClose,
11553
11599
  onDelete: deleteViewPreset,
11554
11600
  onReset: onReset,
@@ -11571,8 +11617,6 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
11571
11617
  t = _useWorkspaceTranslat.t;
11572
11618
  var _useAuthenticationCon = useAuthenticationContext(),
11573
11619
  currentRole = _useAuthenticationCon.currentRole;
11574
- var _useWorkspaceLabelsCo = useWorkspaceLabelsConfig(),
11575
- labelsConfig = _useWorkspaceLabelsCo.data;
11576
11620
  var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
11577
11621
  var error = useSelector(function (store) {
11578
11622
  return getWorkspaceError(store);
@@ -11673,7 +11717,6 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
11673
11717
  })
11674
11718
  })]
11675
11719
  }), jsx(ViewPresetsFormDialogConnect, {
11676
- labelsConfig: labelsConfig,
11677
11720
  scope: isAdmin ? 'system' : 'user'
11678
11721
  })]
11679
11722
  });