@opengeoweb/workspace 12.4.2 → 12.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -94,7 +94,6 @@ var en = {
94
94
  "workspace-save-new-viewpreset-warning-user": "Save the modifications made to this personal view preset.",
95
95
  "workspace-admin-save-workspace": "Save system workspace",
96
96
  "workspace-admin-save-user-workspace": "Save workspace",
97
- "workspace-admin-save-new-workspace": "Save new system workspace",
98
97
  "workspace-admin-select-modified-viewpresets": "Select the modified system view presets in this workspace that you want to update.",
99
98
  "workspace-admin-save-new-viewpreset": "This new viewpreset will be added to the system presets.",
100
99
  "workspace-admin-save-new-viewpreset-warning": "Saving changes to this system preset will impact other presets.",
@@ -178,7 +177,6 @@ var fi = {
178
177
  "workspace-save-new-viewpreset-warning-user": "ei käännetty",
179
178
  "workspace-admin-save-workspace": "ei käännetty",
180
179
  "workspace-admin-save-user-workspace": "ei käännetty",
181
- "workspace-admin-save-new-workspace": "ei käännetty",
182
180
  "workspace-admin-select-modified-viewpresets": "ei käännetty",
183
181
  "workspace-admin-save-new-viewpreset": "ei käännetty",
184
182
  "workspace-admin-save-new-viewpreset-warning": "ei käännetty",
@@ -261,7 +259,6 @@ var no = {
261
259
  "workspace-save-new-viewpreset-warning-system": "Lagre endringene som er gjort i denne arbeidsflaten som en del av en ny personlig forhåndsinnstilling.",
262
260
  "workspace-save-new-viewpreset-warning-user": "Lagre endringene som er gjort i dette personlige vinduet.",
263
261
  "workspace-select-modified-viewpresets": "Velg de endrede vinduene i dennee arbeidsflaten som du vil oppdatere.",
264
- "workspace-admin-save-new-workspace": "Lagre ny arbeidsflate",
265
262
  "workspace-admin-select-modified-viewpresets": "Velg vindu med endringer du ønsker å oppdatere",
266
263
  "workspace-admin-save-new-viewpreset": "Dette nye vinduet blir valgt til systemets forhåndsinnstillinger.",
267
264
  "workspace-admin-save-new-viewpreset-warning": "Lagring av endringer til denne felles arbeidsflaten vil påvirke andre snarveier.",
@@ -343,7 +340,6 @@ var nl = {
343
340
  "workspace-save-new-viewpreset-warning-user": "Sla deze persoonlijke preset op inclusief alle wijzigingen.",
344
341
  "workspace-admin-save-workspace": "Opslaan systeem workspace",
345
342
  "workspace-admin-save-user-workspace": "Opslaan workspace",
346
- "workspace-admin-save-new-workspace": "Opslaan als systeem workspace",
347
343
  "workspace-admin-select-modified-viewpresets": "Selecteer de aangepaste systeem viewpresets in deze workspace die je wilt aanpassen.",
348
344
  "workspace-admin-save-new-viewpreset": "Deze nieuwe viewpreset zal worden toegevoegd aan de systeem presets.",
349
345
  "workspace-admin-save-new-viewpreset-warning": "Het opslaan van wijzigingen aan systeem presets kan leiden tot veranderingen in andere presets.",
@@ -1109,29 +1105,39 @@ var slice$3 = createSlice({
1109
1105
  toggleSelectFilterChip: function toggleSelectFilterChip(draft, action) {
1110
1106
  var _action$payload = action.payload,
1111
1107
  id = _action$payload.id,
1112
- isSelected = _action$payload.isSelected;
1113
- var isAllSelected = draft.workspaceListFilters.every(function (filter) {
1114
- return filter.isSelected;
1115
- });
1108
+ isSelected = _action$payload.isSelected,
1109
+ isAdmin = _action$payload.isAdmin;
1110
+ var relevantFilters = isAdmin ? draft.workspaceListFilters.filter(function (filter) {
1111
+ return filter.id === 'system' || filter.id === 'shared';
1112
+ }) : draft.workspaceListFilters;
1116
1113
  var index = draft.workspaceListFilters.findIndex(function (filter) {
1117
1114
  return filter.id === id;
1118
1115
  });
1119
1116
  if (index !== -1) {
1120
- if (isAllSelected) {
1121
- draft.workspaceListFilters.forEach(function (filter, index) {
1122
- draft.workspaceListFilters[index].isSelected = filter.id === id ? isSelected : false;
1117
+ if (isAdmin) {
1118
+ draft.workspaceListFilters.forEach(function (filter, i) {
1119
+ draft.workspaceListFilters[i].isSelected = filter.id === id;
1123
1120
  });
1124
1121
  } else {
1125
- draft.workspaceListFilters[index] = Object.assign({}, draft.workspaceListFilters[index], {
1126
- isSelected: isSelected
1127
- });
1128
- var isAllUnSelected = draft.workspaceListFilters.every(function (filter) {
1129
- return !filter.isSelected;
1122
+ var isAllSelected = relevantFilters.every(function (filter) {
1123
+ return filter.isSelected;
1130
1124
  });
1131
- if (isAllUnSelected) {
1132
- draft.workspaceListFilters.forEach(function (_, index) {
1133
- draft.workspaceListFilters[index].isSelected = true;
1125
+ if (isAllSelected) {
1126
+ draft.workspaceListFilters.forEach(function (filter, i) {
1127
+ draft.workspaceListFilters[i].isSelected = filter.id === id ? isSelected : false;
1128
+ });
1129
+ } else {
1130
+ draft.workspaceListFilters[index] = Object.assign({}, draft.workspaceListFilters[index], {
1131
+ isSelected: isSelected
1132
+ });
1133
+ var isAllUnSelected = relevantFilters.every(function (filter) {
1134
+ return !filter.isSelected;
1134
1135
  });
1136
+ if (isAllUnSelected) {
1137
+ draft.workspaceListFilters.forEach(function (_, i) {
1138
+ draft.workspaceListFilters[i].isSelected = true;
1139
+ });
1140
+ }
1135
1141
  }
1136
1142
  }
1137
1143
  }
@@ -1413,31 +1419,41 @@ var slice$2 = createSlice({
1413
1419
  var _action$payload10 = action.payload,
1414
1420
  id = _action$payload10.id,
1415
1421
  isSelected = _action$payload10.isSelected,
1416
- panelId = _action$payload10.panelId;
1422
+ panelId = _action$payload10.panelId,
1423
+ isAdmin = _action$payload10.isAdmin;
1417
1424
  var entity = draft.entities[panelId];
1418
1425
  if (entity) {
1419
- var isAllSelected = entity.filters.every(function (filter) {
1420
- return filter.isSelected;
1421
- });
1426
+ var relevantFilters = isAdmin ? entity.filters.filter(function (filter) {
1427
+ return filter.id === 'system' || filter.id === 'shared';
1428
+ }) : entity.filters;
1422
1429
  var index = entity.filters.findIndex(function (filter) {
1423
1430
  return filter.id === id;
1424
1431
  });
1425
1432
  if (index !== -1) {
1426
- if (isAllSelected) {
1427
- entity.filters.forEach(function (filter, index) {
1428
- entity.filters[index].isSelected = filter.id === id ? isSelected : false;
1433
+ if (isAdmin) {
1434
+ entity.filters.forEach(function (filter, i) {
1435
+ entity.filters[i].isSelected = filter.id === id;
1429
1436
  });
1430
1437
  } else {
1431
- entity.filters[index] = Object.assign({}, entity.filters[index], {
1432
- isSelected: isSelected
1438
+ var isAllSelected = relevantFilters.every(function (filter) {
1439
+ return filter.isSelected;
1433
1440
  });
1434
- var isAllUnSelected = entity.filters.every(function (filter) {
1435
- return !filter.isSelected;
1436
- });
1437
- if (isAllUnSelected) {
1438
- entity.filters.forEach(function (_, index) {
1439
- entity.filters[index].isSelected = true;
1441
+ if (isAllSelected) {
1442
+ entity.filters.forEach(function (filter, i) {
1443
+ entity.filters[i].isSelected = filter.id === id ? isSelected : false;
1444
+ });
1445
+ } else {
1446
+ entity.filters[index] = Object.assign({}, entity.filters[index], {
1447
+ isSelected: isSelected
1440
1448
  });
1449
+ var isAllUnSelected = relevantFilters.every(function (filter) {
1450
+ return !filter.isSelected;
1451
+ });
1452
+ if (isAllUnSelected) {
1453
+ entity.filters.forEach(function (_, i) {
1454
+ entity.filters[i].isSelected = true;
1455
+ });
1456
+ }
1441
1457
  }
1442
1458
  }
1443
1459
  }
@@ -1605,17 +1621,27 @@ var setDocumentTitle = function setDocumentTitle(workspaceTitle, appTitle) {
1605
1621
  var fallbackAppTitle = appTitle || 'GeoWeb';
1606
1622
  document.title = workspaceTitle ? workspaceTitle + " - " + fallbackAppTitle : fallbackAppTitle;
1607
1623
  };
1608
- var filterAndSortPresets = function filterAndSortPresets(presets, selectedFilters, username) {
1609
- var isAllSelected = selectedFilters.every(function (filter) {
1610
- return filter.isSelected;
1611
- });
1624
+ var filterAndSortPresets = function filterAndSortPresets(presets, selectedFilters, username, isAdmin) {
1612
1625
  var selectedIds = selectedFilters.filter(function (filter) {
1613
1626
  return filter.isSelected;
1614
1627
  }).map(function (filter) {
1615
1628
  return filter.id;
1616
1629
  });
1617
- var filtered = isAllSelected ? presets : presets.filter(function (preset) {
1618
- return selectedIds.includes(PresetFilterType.system) && preset.scope === 'system' || selectedIds.includes(PresetFilterType.personal) && preset.scope === 'user' && preset.username === username || selectedIds.includes(PresetFilterType.shared) && preset.username !== username && preset.is_shared;
1630
+ var expectedIdsForAll = selectedFilters.map(function (filter) {
1631
+ return filter.id;
1632
+ });
1633
+ var isAllSelected = expectedIdsForAll.every(function (id) {
1634
+ return selectedIds.includes(id);
1635
+ });
1636
+ var filtered = isAllSelected ? presets.filter(function (preset) {
1637
+ if (isAdmin) {
1638
+ // Admin users: Only system + shared, never personal
1639
+ return preset.scope === 'system' || preset.scope === 'user' && preset.is_shared;
1640
+ }
1641
+ // Regular users: Keep everything
1642
+ return true;
1643
+ }) : presets.filter(function (preset) {
1644
+ return selectedIds.includes(PresetFilterType.system) && preset.scope === 'system' || selectedIds.includes(PresetFilterType.personal) && preset.scope === 'user' && preset.username === username || selectedIds.includes(PresetFilterType.shared) && preset.scope === 'user' && preset.is_shared && (isAdmin || preset.username !== username);
1619
1645
  });
1620
1646
  var systemPresets = filtered.filter(function (preset) {
1621
1647
  return preset.scope === 'system';
@@ -2157,20 +2183,26 @@ var getIsViewPresetListDialogOpen = createSelector(getViewPresetById, function (
2157
2183
  }, selectorMemoizationOptions);
2158
2184
  var getViewPresetListFiltersForView = createSelector(getViewPresetById, function (_store, _panelId, scope) {
2159
2185
  return scope;
2160
- }, function (viewPreset, scope) {
2186
+ }, function (_store, _panelId, _scope, isAdmin) {
2187
+ return isAdmin;
2188
+ }, function (viewPreset, _scope, isAdmin) {
2161
2189
  var filters = (viewPreset == null ? void 0 : viewPreset.filters) || [];
2162
- // no filters for system presets for now
2163
- if (scope === 'system') {
2164
- return filters.reduce(function (list, filter) {
2165
- if (filter.id === 'system') {
2166
- return list.concat(Object.assign({}, filter, {
2167
- isDisabled: true
2168
- }));
2169
- }
2170
- return list;
2171
- }, []);
2190
+ if (isAdmin) {
2191
+ // Admin users: Only system and shared filters
2192
+ return filters.filter(function (filter) {
2193
+ return filter.id === 'system' || filter.id === 'shared';
2194
+ }).map(function (filter) {
2195
+ return Object.assign({}, filter, {
2196
+ isDisabled: false
2197
+ });
2198
+ });
2172
2199
  }
2173
- return filters;
2200
+ // Regular users
2201
+ return filters.map(function (filter) {
2202
+ return Object.assign({}, filter, {
2203
+ isDisabled: false
2204
+ });
2205
+ });
2174
2206
  }, selectorMemoizationOptions);
2175
2207
  var getViewPresetListSearchQueryForView = createSelector(getViewPresetById, function (_store, panelId) {
2176
2208
  return panelId;
@@ -5305,20 +5337,26 @@ var getWorkspaceListFilters = createSelector(function (store) {
5305
5337
  return getWorkspaceListStore(store);
5306
5338
  }, function (_store, scope) {
5307
5339
  return scope;
5308
- }, function (state, scope) {
5340
+ }, function (_store, _scope, isAdmin) {
5341
+ return isAdmin;
5342
+ }, function (state, _scope, isAdmin) {
5309
5343
  var filters = (state == null ? void 0 : state.workspaceListFilters) || [];
5310
- // no filters for system presets for now
5311
- if (scope === 'system') {
5312
- return filters.reduce(function (list, filter) {
5313
- if (filter.id === 'system') {
5314
- return list.concat(Object.assign({}, filter, {
5315
- isDisabled: true
5316
- }));
5317
- }
5318
- return list;
5319
- }, []);
5344
+ if (isAdmin) {
5345
+ // Only return system and shared for admins
5346
+ return filters.filter(function (filter) {
5347
+ return filter.id === 'system' || filter.id === 'shared';
5348
+ }).map(function (filter) {
5349
+ return Object.assign({}, filter, {
5350
+ isDisabled: false
5351
+ });
5352
+ });
5320
5353
  }
5321
- return filters;
5354
+ // Regular users: return all filters
5355
+ return filters.map(function (filter) {
5356
+ return Object.assign({}, filter, {
5357
+ isDisabled: false
5358
+ });
5359
+ });
5322
5360
  }, selectorMemoizationOptions);
5323
5361
  var getWorkspaceListSearchQuery = createSelector(getWorkspaceListStore, function (store) {
5324
5362
  return store;
@@ -5931,19 +5969,13 @@ var _viewPresetsListAdapt = viewPresetsListAdapter.getSelectors(function (state)
5931
5969
  }),
5932
5970
  getViewPresetsList = _viewPresetsListAdapt.selectAll;
5933
5971
  _viewPresetsListAdapt.selectById;
5934
- var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getViewPresetListFilterResultsForView, getViewPresetListFiltersForView, getViewPresetListSearchQueryForView, function (fullViewPresetsList, filteredResults, appliedFilters, searchQuery) {
5935
- // If we have a filtered results list, use this, otherwise fall back to the general unfiltered view presets list
5936
- // If all filters are set to true we are not filtering
5937
- var filtersApplied = !appliedFilters.every(function (filter) {
5938
- return filter.isSelected;
5939
- });
5940
- if (filtersApplied || searchQuery !== '') {
5972
+ var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getViewPresetListFilterResultsForView, getViewPresetListSearchQueryForView, function (fullViewPresetsList, filteredResults, searchQuery) {
5973
+ if (searchQuery !== '') {
5974
+ // Search active: return what backend gave us
5941
5975
  return filteredResults;
5942
5976
  }
5943
- return fullViewPresetsList != null ? fullViewPresetsList : {
5944
- entities: {},
5945
- ids: []
5946
- };
5977
+ // No search: return full unfiltered list
5978
+ return fullViewPresetsList != null ? fullViewPresetsList : [];
5947
5979
  }, selectorMemoizationOptions);
5948
5980
 
5949
5981
  /* *
@@ -6187,9 +6219,6 @@ var useFetchViewPresets = function useFetchViewPresets(panelId) {
6187
6219
  currentRole = _useAuthenticationCon.currentRole;
6188
6220
  var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
6189
6221
  var lastAdmin = usePrevious(isAdmin);
6190
- var viewPresetListFilters = useSelector(function (store) {
6191
- return getViewPresetListFiltersForView(store, panelId);
6192
- });
6193
6222
  var viewPresetListSearchQuery = useSelector(function (store) {
6194
6223
  return getViewPresetListSearchQueryForView(store, panelId);
6195
6224
  });
@@ -6198,14 +6227,14 @@ var useFetchViewPresets = function useFetchViewPresets(panelId) {
6198
6227
  dispatch(viewPresetActions.fetchViewPresets(params));
6199
6228
  }, [dispatch]);
6200
6229
  useEffect(function () {
6201
- if (viewPresetListSearchQuery !== prevSearch || isAdmin !== lastAdmin || !!viewPresetListFilters) {
6202
- var filterParams = constructFilterParams(viewPresetListFilters, viewPresetListSearchQuery);
6230
+ if (viewPresetListSearchQuery !== prevSearch) {
6231
+ var filterParams = constructFilterParams([], viewPresetListSearchQuery);
6203
6232
  fetchViewPresets({
6204
6233
  filterParams: filterParams,
6205
6234
  panelId: panelId
6206
6235
  });
6207
6236
  }
6208
- }, [fetchViewPresets, panelId, prevSearch, viewPresetListSearchQuery, viewPresetListFilters, isAdmin, lastAdmin]);
6237
+ }, [fetchViewPresets, panelId, prevSearch, viewPresetListSearchQuery]);
6209
6238
  useEffect(function () {
6210
6239
  if (isAdmin !== lastAdmin && lastAdmin !== undefined) {
6211
6240
  // reset list filter when user changes role
@@ -6217,7 +6246,7 @@ var useFetchViewPresets = function useFetchViewPresets(panelId) {
6217
6246
  isSelected: !isAdmin
6218
6247
  }, {
6219
6248
  id: PresetFilterType.shared,
6220
- isSelected: !isAdmin
6249
+ isSelected: true
6221
6250
  }];
6222
6251
  dispatch(viewPresetActions.setFilterChips({
6223
6252
  panelId: panelId,
@@ -6578,14 +6607,14 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6578
6607
  return getFilteredViewPresetListForView(store, panelId);
6579
6608
  });
6580
6609
  var viewPresetListFilters = useSelector(function (store) {
6581
- return getViewPresetListFiltersForView(store, panelId, scope);
6610
+ return getViewPresetListFiltersForView(store, panelId, scope, isAdmin);
6582
6611
  });
6583
6612
  var viewPresetListSearchQuery = useSelector(function (store) {
6584
6613
  return getViewPresetListSearchQueryForView(store, panelId);
6585
6614
  });
6586
6615
  var filteredPresets = React.useMemo(function () {
6587
- return filterAndSortPresets(viewPresets, viewPresetListFilters, username);
6588
- }, [viewPresets, viewPresetListFilters, username]);
6616
+ return filterAndSortPresets(viewPresets, viewPresetListFilters, username, isAdmin);
6617
+ }, [viewPresets, viewPresetListFilters, username, isAdmin]);
6589
6618
  var activeViewPresetId = useSelector(function (store) {
6590
6619
  return getViewPresetActiveId(store, panelId);
6591
6620
  });
@@ -6624,12 +6653,12 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6624
6653
  }));
6625
6654
  }, [dispatch, panelId]);
6626
6655
  var fetchViewPresets = React.useCallback(function () {
6627
- var filterParams = constructFilterParams(viewPresetListFilters, viewPresetListSearchQuery);
6656
+ var filterParams = constructFilterParams([], viewPresetListSearchQuery);
6628
6657
  dispatch(viewPresetActions.fetchViewPresets({
6629
6658
  panelId: panelId,
6630
6659
  filterParams: filterParams
6631
6660
  }));
6632
- }, [dispatch, panelId, viewPresetListFilters, viewPresetListSearchQuery]);
6661
+ }, [dispatch, panelId, viewPresetListSearchQuery]);
6633
6662
  var constructInitialProps = function constructInitialProps() {
6634
6663
  switch (viewComponentType) {
6635
6664
  case 'WarningList':
@@ -6723,9 +6752,10 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
6723
6752
  dispatch(viewPresetActions.toggleSelectFilterChip({
6724
6753
  id: id,
6725
6754
  isSelected: isSelected,
6726
- panelId: panelId
6755
+ panelId: panelId,
6756
+ isAdmin: isAdmin
6727
6757
  }));
6728
- }, [dispatch, panelId]);
6758
+ }, [dispatch, panelId, isAdmin]);
6729
6759
  var setSelectAllFilterChip = React.useCallback(function () {
6730
6760
  dispatch(viewPresetActions.setSelectAllFilterChip({
6731
6761
  panelId: panelId
@@ -6891,9 +6921,7 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
6891
6921
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
6892
6922
  panelId = _ref.panelId,
6893
6923
  _ref$id = _ref.id,
6894
- id = _ref$id === void 0 ? workspacePresetOptionId : _ref$id,
6895
- _ref$isAdmin = _ref.isAdmin,
6896
- isAdmin = _ref$isAdmin === void 0 ? false : _ref$isAdmin;
6924
+ id = _ref$id === void 0 ? workspacePresetOptionId : _ref$id;
6897
6925
  var _useWorkspaceTranslat = useWorkspaceTranslation(),
6898
6926
  t = _useWorkspaceTranslat.t;
6899
6927
  var _React$useState = React.useState(null),
@@ -6908,25 +6936,22 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
6908
6936
  setAnchorEl(document.getElementById(id));
6909
6937
  }
6910
6938
  }, [isDefaultOpen, id]);
6911
- var isViewPresetsOptions = id === viewPresetOptionId;
6912
- var saveAsTitle = isAdmin && !isViewPresetsOptions ? t('workspace-admin-save-new-workspace') : t('workspace-save-as');
6913
- var isAdminWorkspaceOptions = isAdmin && id === workspacePresetOptionId;
6914
6939
  var options = [{
6915
6940
  title: t('workspace-save'),
6916
6941
  callback: handleSave
6917
6942
  }, {
6918
- title: saveAsTitle,
6943
+ title: t('workspace-save-as'),
6919
6944
  callback: handleSaveAs
6920
- }].concat(!isAdminWorkspaceOptions ? [{
6945
+ }, {
6921
6946
  title: t('workspace-edit'),
6922
6947
  callback: handleEdit
6923
- }] : [], [{
6948
+ }, {
6924
6949
  title: t('workspace-reset'),
6925
6950
  callback: handleReset
6926
6951
  }, {
6927
6952
  title: t('workspace-delete'),
6928
6953
  callback: handleDelete
6929
- }]);
6954
+ }];
6930
6955
  var renderButton = function renderButton() {
6931
6956
  return jsxs(CustomToggleButton, {
6932
6957
  variant: "tool",
@@ -7224,8 +7249,7 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
7224
7249
  handleSaveAs: isLoggedIn ? onSaveAs : undefined,
7225
7250
  handleEdit: isEnabled ? onEdit : undefined,
7226
7251
  handleReset: onReset,
7227
- id: viewPresetOptionId,
7228
- isAdmin: isAdmin
7252
+ id: viewPresetOptionId
7229
7253
  }), jsx(LoadingIndicatorConnect, {
7230
7254
  panelId: panelId
7231
7255
  })]
@@ -7943,20 +7967,20 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7943
7967
  isLoggedIn = _useAuthenticationCon.isLoggedIn,
7944
7968
  auth = _useAuthenticationCon.auth;
7945
7969
  var username = (auth == null ? void 0 : auth.username) || '';
7970
+ var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
7971
+ var scope = !isAdmin ? 'user' : 'system';
7946
7972
  var workspacePresets = useSelector(function (store) {
7947
7973
  return getWorkspaceList(store);
7948
7974
  });
7949
7975
  var selectedFilters = useSelector(getWorkspaceListFilters);
7950
7976
  var filteredPresets = React.useMemo(function () {
7951
- return filterAndSortPresets(workspacePresets, selectedFilters, username);
7952
- }, [workspacePresets, selectedFilters, username]);
7953
- var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
7954
- var scope = !isAdmin ? 'user' : 'system';
7977
+ return filterAndSortPresets(workspacePresets, selectedFilters, username, isAdmin);
7978
+ }, [workspacePresets, selectedFilters, username, isAdmin]);
7955
7979
  var currentView = useSelector(function (store) {
7956
7980
  return getWorkspaceState(store);
7957
7981
  });
7958
7982
  var workspaceListFilters = useSelector(function (store) {
7959
- return getWorkspaceListFilters(store, scope);
7983
+ return getWorkspaceListFilters(store, scope, isAdmin);
7960
7984
  });
7961
7985
  var workspaceSearchQuery = useSelector(function (store) {
7962
7986
  return getWorkspaceListSearchQuery(store);
@@ -7985,9 +8009,10 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7985
8009
  var toggleSelectFilterChip = React.useCallback(function (id, isSelected) {
7986
8010
  dispatch(workspaceListActions.toggleSelectFilterChip({
7987
8011
  id: id,
7988
- isSelected: isSelected
8012
+ isSelected: isSelected,
8013
+ isAdmin: isAdmin
7989
8014
  }));
7990
- }, [dispatch]);
8015
+ }, [dispatch, isAdmin]);
7991
8016
  var setSelectAllFilterChip = React.useCallback(function () {
7992
8017
  dispatch(workspaceListActions.setSelectAllFilterChip());
7993
8018
  }, [dispatch]);
@@ -8101,7 +8126,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
8101
8126
  }
8102
8127
  }
8103
8128
  };
8104
- var isAllSelected = workspaceListFilters.every(function (filter) {
8129
+ var isAllSelected = workspaceListFilters.length > 0 && workspaceListFilters.every(function (filter) {
8105
8130
  return filter.isSelected;
8106
8131
  });
8107
8132
  var shouldHideNewWorkspace = !isAllSelected || workspaceSearchQuery.length > 0;
@@ -8332,7 +8357,7 @@ var useFetchWorkspacePresets = function useFetchWorkspacePresets() {
8332
8357
  isSelected: !isAdmin
8333
8358
  }, {
8334
8359
  id: PresetFilterType.shared,
8335
- isSelected: !isAdmin
8360
+ isSelected: true
8336
8361
  }];
8337
8362
  dispatch(workspaceListActions.setFilterChips(filters));
8338
8363
  }
@@ -8482,6 +8507,12 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
8482
8507
  var handleSaveAs = function handleSaveAs() {
8483
8508
  return isAdmin ? onSaveSystemPresetAs : onSaveAs;
8484
8509
  };
8510
+ var handleEdit = function handleEdit() {
8511
+ if (isAdmin && !isNew) {
8512
+ return onEdit;
8513
+ }
8514
+ return isUserPreset ? onEdit : undefined;
8515
+ };
8485
8516
  return jsx(WorkspaceOptions, {
8486
8517
  hasChanges: hasChanges,
8487
8518
  title: fullTitle,
@@ -8489,10 +8520,9 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
8489
8520
  handleDelete: getOnDelete(),
8490
8521
  handleSaveAs: handleSaveAs(),
8491
8522
  handleSave: handleSave(),
8492
- handleEdit: isUserPreset ? onEdit : undefined,
8523
+ handleEdit: handleEdit(),
8493
8524
  handleReset: onReset,
8494
- isDisabled: !viewIds.length || !isLoggedIn,
8495
- isAdmin: isAdmin
8525
+ isDisabled: !viewIds.length || !isLoggedIn
8496
8526
  });
8497
8527
  };
8498
8528
 
@@ -8885,7 +8915,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
8885
8915
  }
8886
8916
  case WorkspacePresetAction.SAVE_SYSTEM_PRESET_AS:
8887
8917
  {
8888
- return t('workspace-admin-save-new-workspace');
8918
+ return t('workspace-save-as');
8889
8919
  }
8890
8920
  case WorkspacePresetAction.RESET:
8891
8921
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/workspace",
3
- "version": "12.4.2",
3
+ "version": "12.5.0",
4
4
  "description": "GeoWeb Workspace library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -9,30 +9,30 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "react-redux": "^9.2.0",
12
- "@opengeoweb/shared": "12.4.2",
13
- "@opengeoweb/store": "12.4.2",
14
- "@opengeoweb/api": "12.4.2",
12
+ "@opengeoweb/shared": "12.5.0",
13
+ "@opengeoweb/store": "12.5.0",
14
+ "@opengeoweb/api": "12.5.0",
15
15
  "react-hook-form": "^7.50.1",
16
- "@opengeoweb/theme": "12.4.2",
16
+ "@opengeoweb/theme": "12.5.0",
17
17
  "@reduxjs/toolkit": "^2.6.1",
18
- "@opengeoweb/snackbar": "12.4.2",
18
+ "@opengeoweb/snackbar": "12.5.0",
19
19
  "react-window": "^1.8.10",
20
20
  "lodash": "^4.17.21",
21
21
  "axios": "^1.7.7",
22
22
  "react-virtualized-auto-sizer": "^1.0.21",
23
23
  "react-mosaic-component": "^6.1.0",
24
- "@opengeoweb/form-fields": "12.4.2",
25
- "@opengeoweb/timeseries": "12.4.2",
26
- "@opengeoweb/authentication": "12.4.2",
27
- "@opengeoweb/core": "12.4.2",
28
- "@opengeoweb/taf": "12.4.2",
29
- "@opengeoweb/sigmet-airmet": "12.4.2",
30
- "@opengeoweb/warnings": "12.4.2",
31
- "@opengeoweb/spaceweather": "12.4.2",
24
+ "@opengeoweb/form-fields": "12.5.0",
25
+ "@opengeoweb/timeseries": "12.5.0",
26
+ "@opengeoweb/authentication": "12.5.0",
27
+ "@opengeoweb/core": "12.5.0",
28
+ "@opengeoweb/taf": "12.5.0",
29
+ "@opengeoweb/sigmet-airmet": "12.5.0",
30
+ "@opengeoweb/warnings": "12.5.0",
31
+ "@opengeoweb/spaceweather": "12.5.0",
32
32
  "i18next": "^25.0.1",
33
33
  "react-i18next": "^15.1.1",
34
34
  "@mui/material": "^7.0.1",
35
- "@opengeoweb/webmap-react": "12.4.2",
35
+ "@opengeoweb/webmap-react": "12.5.0",
36
36
  "@tanstack/react-query": "^5.69.2"
37
37
  },
38
38
  "peerDependencies": {
@@ -12,7 +12,6 @@ export interface WorkspaceOptionsProps {
12
12
  handleReset?: () => void;
13
13
  hasChanges?: boolean;
14
14
  isDisabled?: boolean;
15
- isAdmin?: boolean;
16
15
  }
17
16
  export declare const workspacePresetOptionId = "workspace-options-toolbutton";
18
17
  export declare const viewPresetOptionId = "viewpreset-options-toolbutton";
@@ -1,7 +1,7 @@
1
1
  import { SystemScope } from '@opengeoweb/shared';
2
2
  import type { AppStore } from '../types';
3
3
  import { ViewPresetListItem } from '../workspace/types';
4
- import { ViewPresetEntity, ViewPresetError, ViewPresetsListFilter, ViewPresetState } from './types';
4
+ import { ViewPresetEntity, ViewPresetError, ViewPresetState } from './types';
5
5
  export declare const getViewPresetsStore: (store: AppStore) => ViewPresetState;
6
6
  export declare const getViewPresets: (state: AppStore) => ViewPresetEntity[], getViewPresetById: (state: AppStore, id: string) => {
7
7
  panelId: string;
@@ -10,7 +10,7 @@ export declare const getViewPresets: (state: AppStore) => ViewPresetEntity[], ge
10
10
  isFetching: boolean;
11
11
  error: ViewPresetError;
12
12
  isViewPresetListDialogOpen: boolean;
13
- filters: ViewPresetsListFilter[];
13
+ filters: import("./types").ViewPresetsListFilter[];
14
14
  searchQuery: string;
15
15
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
16
16
  };
@@ -26,7 +26,7 @@ export declare const getViewPresetsIsFetching: ((state: AppStore, id: string) =>
26
26
  isFetching: boolean;
27
27
  error: ViewPresetError;
28
28
  isViewPresetListDialogOpen: boolean;
29
- filters: ViewPresetsListFilter[];
29
+ filters: import("./types").ViewPresetsListFilter[];
30
30
  searchQuery: string;
31
31
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
32
32
  }, resultFuncArgs_1: string) => boolean;
@@ -37,7 +37,7 @@ export declare const getViewPresetsIsFetching: ((state: AppStore, id: string) =>
37
37
  isFetching: boolean;
38
38
  error: ViewPresetError;
39
39
  isViewPresetListDialogOpen: boolean;
40
- filters: ViewPresetsListFilter[];
40
+ filters: import("./types").ViewPresetsListFilter[];
41
41
  searchQuery: string;
42
42
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
43
43
  }, resultFuncArgs_1: string) => boolean) & {
@@ -53,7 +53,7 @@ export declare const getViewPresetsIsFetching: ((state: AppStore, id: string) =>
53
53
  isFetching: boolean;
54
54
  error: ViewPresetError;
55
55
  isViewPresetListDialogOpen: boolean;
56
- filters: ViewPresetsListFilter[];
56
+ filters: import("./types").ViewPresetsListFilter[];
57
57
  searchQuery: string;
58
58
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
59
59
  }, (_store: AppStore, panelId: string) => string];
@@ -77,7 +77,7 @@ export declare const getViewPresetsError: ((state: AppStore, id: string) => View
77
77
  isFetching: boolean;
78
78
  error: ViewPresetError;
79
79
  isViewPresetListDialogOpen: boolean;
80
- filters: ViewPresetsListFilter[];
80
+ filters: import("./types").ViewPresetsListFilter[];
81
81
  searchQuery: string;
82
82
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
83
83
  }, resultFuncArgs_1: string) => ViewPresetError;
@@ -88,7 +88,7 @@ export declare const getViewPresetsError: ((state: AppStore, id: string) => View
88
88
  isFetching: boolean;
89
89
  error: ViewPresetError;
90
90
  isViewPresetListDialogOpen: boolean;
91
- filters: ViewPresetsListFilter[];
91
+ filters: import("./types").ViewPresetsListFilter[];
92
92
  searchQuery: string;
93
93
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
94
94
  }, resultFuncArgs_1: string) => ViewPresetError) & {
@@ -104,7 +104,7 @@ export declare const getViewPresetsError: ((state: AppStore, id: string) => View
104
104
  isFetching: boolean;
105
105
  error: ViewPresetError;
106
106
  isViewPresetListDialogOpen: boolean;
107
- filters: ViewPresetsListFilter[];
107
+ filters: import("./types").ViewPresetsListFilter[];
108
108
  searchQuery: string;
109
109
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
110
110
  }, (_store: AppStore, panelId: string) => string];
@@ -140,7 +140,7 @@ export declare const getViewPresetDetailError: ((state: AppStore, id: string) =>
140
140
  isFetching: boolean;
141
141
  error: ViewPresetError;
142
142
  isViewPresetListDialogOpen: boolean;
143
- filters: ViewPresetsListFilter[];
143
+ filters: import("./types").ViewPresetsListFilter[];
144
144
  searchQuery: string;
145
145
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
146
146
  }, resultFuncArgs_1: string) => ViewPresetError;
@@ -151,7 +151,7 @@ export declare const getViewPresetDetailError: ((state: AppStore, id: string) =>
151
151
  isFetching: boolean;
152
152
  error: ViewPresetError;
153
153
  isViewPresetListDialogOpen: boolean;
154
- filters: ViewPresetsListFilter[];
154
+ filters: import("./types").ViewPresetsListFilter[];
155
155
  searchQuery: string;
156
156
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
157
157
  }, resultFuncArgs_1: string) => ViewPresetError) & {
@@ -167,7 +167,7 @@ export declare const getViewPresetDetailError: ((state: AppStore, id: string) =>
167
167
  isFetching: boolean;
168
168
  error: ViewPresetError;
169
169
  isViewPresetListDialogOpen: boolean;
170
- filters: ViewPresetsListFilter[];
170
+ filters: import("./types").ViewPresetsListFilter[];
171
171
  searchQuery: string;
172
172
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
173
173
  }, (_store: AppStore, panelId: string) => string];
@@ -199,7 +199,7 @@ export declare const getViewPresetHasChanges: ((state: AppStore, id: string) =>
199
199
  isFetching: boolean;
200
200
  error: ViewPresetError;
201
201
  isViewPresetListDialogOpen: boolean;
202
- filters: ViewPresetsListFilter[];
202
+ filters: import("./types").ViewPresetsListFilter[];
203
203
  searchQuery: string;
204
204
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
205
205
  }, resultFuncArgs_1: string) => boolean | undefined;
@@ -210,7 +210,7 @@ export declare const getViewPresetHasChanges: ((state: AppStore, id: string) =>
210
210
  isFetching: boolean;
211
211
  error: ViewPresetError;
212
212
  isViewPresetListDialogOpen: boolean;
213
- filters: ViewPresetsListFilter[];
213
+ filters: import("./types").ViewPresetsListFilter[];
214
214
  searchQuery: string;
215
215
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
216
216
  }, resultFuncArgs_1: string) => boolean | undefined) & {
@@ -226,7 +226,7 @@ export declare const getViewPresetHasChanges: ((state: AppStore, id: string) =>
226
226
  isFetching: boolean;
227
227
  error: ViewPresetError;
228
228
  isViewPresetListDialogOpen: boolean;
229
- filters: ViewPresetsListFilter[];
229
+ filters: import("./types").ViewPresetsListFilter[];
230
230
  searchQuery: string;
231
231
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
232
232
  }, (_store: AppStore, panelId: string) => string];
@@ -250,7 +250,7 @@ export declare const getViewPresetActiveId: ((state: AppStore, id: string) => st
250
250
  isFetching: boolean;
251
251
  error: ViewPresetError;
252
252
  isViewPresetListDialogOpen: boolean;
253
- filters: ViewPresetsListFilter[];
253
+ filters: import("./types").ViewPresetsListFilter[];
254
254
  searchQuery: string;
255
255
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
256
256
  }, resultFuncArgs_1: string) => string | undefined;
@@ -261,7 +261,7 @@ export declare const getViewPresetActiveId: ((state: AppStore, id: string) => st
261
261
  isFetching: boolean;
262
262
  error: ViewPresetError;
263
263
  isViewPresetListDialogOpen: boolean;
264
- filters: ViewPresetsListFilter[];
264
+ filters: import("./types").ViewPresetsListFilter[];
265
265
  searchQuery: string;
266
266
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
267
267
  }, resultFuncArgs_1: string) => string | undefined) & {
@@ -277,7 +277,7 @@ export declare const getViewPresetActiveId: ((state: AppStore, id: string) => st
277
277
  isFetching: boolean;
278
278
  error: ViewPresetError;
279
279
  isViewPresetListDialogOpen: boolean;
280
- filters: ViewPresetsListFilter[];
280
+ filters: import("./types").ViewPresetsListFilter[];
281
281
  searchQuery: string;
282
282
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
283
283
  }, (_store: AppStore, panelId: string) => string];
@@ -343,7 +343,7 @@ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: strin
343
343
  isFetching: boolean;
344
344
  error: ViewPresetError;
345
345
  isViewPresetListDialogOpen: boolean;
346
- filters: ViewPresetsListFilter[];
346
+ filters: import("./types").ViewPresetsListFilter[];
347
347
  searchQuery: string;
348
348
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
349
349
  }, resultFuncArgs_1: string) => boolean;
@@ -354,7 +354,7 @@ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: strin
354
354
  isFetching: boolean;
355
355
  error: ViewPresetError;
356
356
  isViewPresetListDialogOpen: boolean;
357
- filters: ViewPresetsListFilter[];
357
+ filters: import("./types").ViewPresetsListFilter[];
358
358
  searchQuery: string;
359
359
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
360
360
  }, resultFuncArgs_1: string) => boolean) & {
@@ -370,7 +370,7 @@ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: strin
370
370
  isFetching: boolean;
371
371
  error: ViewPresetError;
372
372
  isViewPresetListDialogOpen: boolean;
373
- filters: ViewPresetsListFilter[];
373
+ filters: import("./types").ViewPresetsListFilter[];
374
374
  searchQuery: string;
375
375
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
376
376
  }, (_store: AppStore, panelId: string) => string];
@@ -382,7 +382,12 @@ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: strin
382
382
  memoize: typeof import("reselect").weakMapMemoize;
383
383
  argsMemoize: typeof import("reselect").weakMapMemoize;
384
384
  };
385
- export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelId: string, scope?: SystemScope | undefined) => ViewPresetsListFilter[]) & {
385
+ export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelId: string, _scope?: SystemScope | undefined, isAdmin?: boolean | undefined) => {
386
+ isDisabled: boolean;
387
+ label: string;
388
+ id: import("../workspaceList/types").PresetFilterType | "all";
389
+ isSelected?: boolean | undefined;
390
+ }[]) & {
386
391
  clearCache: () => void;
387
392
  resultsCount: () => number;
388
393
  resetResultsCount: () => void;
@@ -394,10 +399,15 @@ export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelI
394
399
  isFetching: boolean;
395
400
  error: ViewPresetError;
396
401
  isViewPresetListDialogOpen: boolean;
397
- filters: ViewPresetsListFilter[];
402
+ filters: import("./types").ViewPresetsListFilter[];
398
403
  searchQuery: string;
399
404
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
400
- }, resultFuncArgs_1: SystemScope | undefined) => ViewPresetsListFilter[];
405
+ }, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined) => {
406
+ isDisabled: boolean;
407
+ label: string;
408
+ id: import("../workspaceList/types").PresetFilterType | "all";
409
+ isSelected?: boolean | undefined;
410
+ }[];
401
411
  memoizedResultFunc: ((resultFuncArgs_0: {
402
412
  panelId: string;
403
413
  activeViewPresetId: string;
@@ -405,15 +415,25 @@ export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelI
405
415
  isFetching: boolean;
406
416
  error: ViewPresetError;
407
417
  isViewPresetListDialogOpen: boolean;
408
- filters: ViewPresetsListFilter[];
418
+ filters: import("./types").ViewPresetsListFilter[];
409
419
  searchQuery: string;
410
420
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
411
- }, resultFuncArgs_1: SystemScope | undefined) => ViewPresetsListFilter[]) & {
421
+ }, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined) => {
422
+ isDisabled: boolean;
423
+ label: string;
424
+ id: import("../workspaceList/types").PresetFilterType | "all";
425
+ isSelected?: boolean | undefined;
426
+ }[]) & {
412
427
  clearCache: () => void;
413
428
  resultsCount: () => number;
414
429
  resetResultsCount: () => void;
415
430
  };
416
- lastResult: () => ViewPresetsListFilter[];
431
+ lastResult: () => {
432
+ isDisabled: boolean;
433
+ label: string;
434
+ id: import("../workspaceList/types").PresetFilterType | "all";
435
+ isSelected?: boolean | undefined;
436
+ }[];
417
437
  dependencies: [(state: AppStore, id: string) => {
418
438
  panelId: string;
419
439
  activeViewPresetId: string;
@@ -421,10 +441,10 @@ export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelI
421
441
  isFetching: boolean;
422
442
  error: ViewPresetError;
423
443
  isViewPresetListDialogOpen: boolean;
424
- filters: ViewPresetsListFilter[];
444
+ filters: import("./types").ViewPresetsListFilter[];
425
445
  searchQuery: string;
426
446
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
427
- }, (_store: AppStore, _panelId: string, scope?: SystemScope) => SystemScope | undefined];
447
+ }, (_store: AppStore, _panelId: string, scope?: SystemScope) => SystemScope | undefined, (_store: AppStore, _panelId: string, _scope?: SystemScope, isAdmin?: boolean) => boolean | undefined];
428
448
  recomputations: () => number;
429
449
  resetRecomputations: () => void;
430
450
  dependencyRecomputations: () => number;
@@ -445,7 +465,7 @@ export declare const getViewPresetListSearchQueryForView: ((state: AppStore, id:
445
465
  isFetching: boolean;
446
466
  error: ViewPresetError;
447
467
  isViewPresetListDialogOpen: boolean;
448
- filters: ViewPresetsListFilter[];
468
+ filters: import("./types").ViewPresetsListFilter[];
449
469
  searchQuery: string;
450
470
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
451
471
  }, resultFuncArgs_1: string) => string;
@@ -456,7 +476,7 @@ export declare const getViewPresetListSearchQueryForView: ((state: AppStore, id:
456
476
  isFetching: boolean;
457
477
  error: ViewPresetError;
458
478
  isViewPresetListDialogOpen: boolean;
459
- filters: ViewPresetsListFilter[];
479
+ filters: import("./types").ViewPresetsListFilter[];
460
480
  searchQuery: string;
461
481
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
462
482
  }, resultFuncArgs_1: string) => string) & {
@@ -472,7 +492,7 @@ export declare const getViewPresetListSearchQueryForView: ((state: AppStore, id:
472
492
  isFetching: boolean;
473
493
  error: ViewPresetError;
474
494
  isViewPresetListDialogOpen: boolean;
475
- filters: ViewPresetsListFilter[];
495
+ filters: import("./types").ViewPresetsListFilter[];
476
496
  searchQuery: string;
477
497
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
478
498
  }, (_store: AppStore, panelId: string) => string];
@@ -496,7 +516,7 @@ export declare const getViewPresetListFilterResultsForView: ((state: AppStore, i
496
516
  isFetching: boolean;
497
517
  error: ViewPresetError;
498
518
  isViewPresetListDialogOpen: boolean;
499
- filters: ViewPresetsListFilter[];
519
+ filters: import("./types").ViewPresetsListFilter[];
500
520
  searchQuery: string;
501
521
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
502
522
  }) => ViewPresetListItem[];
@@ -507,7 +527,7 @@ export declare const getViewPresetListFilterResultsForView: ((state: AppStore, i
507
527
  isFetching: boolean;
508
528
  error: ViewPresetError;
509
529
  isViewPresetListDialogOpen: boolean;
510
- filters: ViewPresetsListFilter[];
530
+ filters: import("./types").ViewPresetsListFilter[];
511
531
  searchQuery: string;
512
532
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
513
533
  }) => ViewPresetListItem[]) & {
@@ -523,7 +543,7 @@ export declare const getViewPresetListFilterResultsForView: ((state: AppStore, i
523
543
  isFetching: boolean;
524
544
  error: ViewPresetError;
525
545
  isViewPresetListDialogOpen: boolean;
526
- filters: ViewPresetsListFilter[];
546
+ filters: import("./types").ViewPresetsListFilter[];
527
547
  searchQuery: string;
528
548
  filterResults: import("@reduxjs/toolkit").EntityState<import("../viewPresetsList/types").ViewPresetListItem, string>;
529
549
  }];
@@ -128,6 +128,7 @@ export interface ToggleViewPresetListDialogPayload extends ViewPresetAction {
128
128
  export interface ToggleSelectFilterChip extends ViewPresetAction {
129
129
  id: PresetFilterType;
130
130
  isSelected: boolean;
131
+ isAdmin?: boolean;
131
132
  }
132
133
  export interface SetFilterChipsPayload extends ViewPresetAction {
133
134
  filters: {
@@ -1,6 +1,5 @@
1
1
  import { AppStore } from '../types';
2
2
  import { ViewPresetListItem, ViewPresetListState } from './types';
3
- import { ViewPresetsListFilter } from '../viewPresets/types';
4
3
  export declare const getViewPresetsListStore: (store: AppStore) => ViewPresetListState;
5
4
  export declare const getViewPresetsList: (state: AppStore) => ViewPresetListItem[], selectById: (state: AppStore, id: string) => {
6
5
  id: string;
@@ -10,13 +9,13 @@ export declare const getViewPresetsList: (state: AppStore) => ViewPresetListItem
10
9
  abstract?: string | undefined;
11
10
  username?: string | undefined;
12
11
  };
13
- export declare const getFilteredViewPresetListForView: ((state: AppStore, _panelId: string, scope?: import("dist/libs/shared/src").SystemScope | undefined) => ViewPresetListItem[]) & {
12
+ export declare const getFilteredViewPresetListForView: ((state: AppStore, id: string) => ViewPresetListItem[]) & {
14
13
  clearCache: () => void;
15
14
  resultsCount: () => number;
16
15
  resetResultsCount: () => void;
17
16
  } & {
18
- resultFunc: (resultFuncArgs_0: ViewPresetListItem[], resultFuncArgs_1: import("../workspace/types").ViewPresetListItem[], resultFuncArgs_2: ViewPresetsListFilter[], resultFuncArgs_3: string) => ViewPresetListItem[];
19
- memoizedResultFunc: ((resultFuncArgs_0: ViewPresetListItem[], resultFuncArgs_1: import("../workspace/types").ViewPresetListItem[], resultFuncArgs_2: ViewPresetsListFilter[], resultFuncArgs_3: string) => ViewPresetListItem[]) & {
17
+ resultFunc: (resultFuncArgs_0: ViewPresetListItem[], resultFuncArgs_1: import("../workspace/types").ViewPresetListItem[], resultFuncArgs_2: string) => ViewPresetListItem[];
18
+ memoizedResultFunc: ((resultFuncArgs_0: ViewPresetListItem[], resultFuncArgs_1: import("../workspace/types").ViewPresetListItem[], resultFuncArgs_2: string) => ViewPresetListItem[]) & {
20
19
  clearCache: () => void;
21
20
  resultsCount: () => number;
22
21
  resetResultsCount: () => void;
@@ -34,7 +33,7 @@ export declare const getFilteredViewPresetListForView: ((state: AppStore, _panel
34
33
  isFetching: boolean;
35
34
  error: import("../viewPresets/types").ViewPresetError;
36
35
  isViewPresetListDialogOpen: boolean;
37
- filters: ViewPresetsListFilter[];
36
+ filters: import("../viewPresets/types").ViewPresetsListFilter[];
38
37
  searchQuery: string;
39
38
  filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
40
39
  }) => import("../workspace/types").ViewPresetListItem[];
@@ -45,7 +44,7 @@ export declare const getFilteredViewPresetListForView: ((state: AppStore, _panel
45
44
  isFetching: boolean;
46
45
  error: import("../viewPresets/types").ViewPresetError;
47
46
  isViewPresetListDialogOpen: boolean;
48
- filters: ViewPresetsListFilter[];
47
+ filters: import("../viewPresets/types").ViewPresetsListFilter[];
49
48
  searchQuery: string;
50
49
  filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
51
50
  }) => import("../workspace/types").ViewPresetListItem[]) & {
@@ -61,7 +60,7 @@ export declare const getFilteredViewPresetListForView: ((state: AppStore, _panel
61
60
  isFetching: boolean;
62
61
  error: import("../viewPresets/types").ViewPresetError;
63
62
  isViewPresetListDialogOpen: boolean;
64
- filters: ViewPresetsListFilter[];
63
+ filters: import("../viewPresets/types").ViewPresetsListFilter[];
65
64
  searchQuery: string;
66
65
  filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
67
66
  }];
@@ -72,56 +71,6 @@ export declare const getFilteredViewPresetListForView: ((state: AppStore, _panel
72
71
  } & {
73
72
  memoize: typeof import("reselect").weakMapMemoize;
74
73
  argsMemoize: typeof import("reselect").weakMapMemoize;
75
- }, ((state: AppStore, _panelId: string, scope?: import("dist/libs/shared/src").SystemScope | undefined) => ViewPresetsListFilter[]) & {
76
- clearCache: () => void;
77
- resultsCount: () => number;
78
- resetResultsCount: () => void;
79
- } & {
80
- resultFunc: (resultFuncArgs_0: {
81
- panelId: string;
82
- activeViewPresetId: string;
83
- hasChanges: boolean;
84
- isFetching: boolean;
85
- error: import("../viewPresets/types").ViewPresetError;
86
- isViewPresetListDialogOpen: boolean;
87
- filters: ViewPresetsListFilter[];
88
- searchQuery: string;
89
- filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
90
- }, resultFuncArgs_1: import("dist/libs/shared/src").SystemScope | undefined) => ViewPresetsListFilter[];
91
- memoizedResultFunc: ((resultFuncArgs_0: {
92
- panelId: string;
93
- activeViewPresetId: string;
94
- hasChanges: boolean;
95
- isFetching: boolean;
96
- error: import("../viewPresets/types").ViewPresetError;
97
- isViewPresetListDialogOpen: boolean;
98
- filters: ViewPresetsListFilter[];
99
- searchQuery: string;
100
- filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
101
- }, resultFuncArgs_1: import("dist/libs/shared/src").SystemScope | undefined) => ViewPresetsListFilter[]) & {
102
- clearCache: () => void;
103
- resultsCount: () => number;
104
- resetResultsCount: () => void;
105
- };
106
- lastResult: () => ViewPresetsListFilter[];
107
- dependencies: [(state: AppStore, id: string) => {
108
- panelId: string;
109
- activeViewPresetId: string;
110
- hasChanges: boolean;
111
- isFetching: boolean;
112
- error: import("../viewPresets/types").ViewPresetError;
113
- isViewPresetListDialogOpen: boolean;
114
- filters: ViewPresetsListFilter[];
115
- searchQuery: string;
116
- filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
117
- }, (_store: AppStore, _panelId: string, scope?: import("dist/libs/shared/src").SystemScope | undefined) => import("dist/libs/shared/src").SystemScope | undefined];
118
- recomputations: () => number;
119
- resetRecomputations: () => void;
120
- dependencyRecomputations: () => number;
121
- resetDependencyRecomputations: () => void;
122
- } & {
123
- memoize: typeof import("reselect").weakMapMemoize;
124
- argsMemoize: typeof import("reselect").weakMapMemoize;
125
74
  }, ((state: AppStore, id: string) => string) & {
126
75
  clearCache: () => void;
127
76
  resultsCount: () => number;
@@ -134,7 +83,7 @@ export declare const getFilteredViewPresetListForView: ((state: AppStore, _panel
134
83
  isFetching: boolean;
135
84
  error: import("../viewPresets/types").ViewPresetError;
136
85
  isViewPresetListDialogOpen: boolean;
137
- filters: ViewPresetsListFilter[];
86
+ filters: import("../viewPresets/types").ViewPresetsListFilter[];
138
87
  searchQuery: string;
139
88
  filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
140
89
  }, resultFuncArgs_1: string) => string;
@@ -145,7 +94,7 @@ export declare const getFilteredViewPresetListForView: ((state: AppStore, _panel
145
94
  isFetching: boolean;
146
95
  error: import("../viewPresets/types").ViewPresetError;
147
96
  isViewPresetListDialogOpen: boolean;
148
- filters: ViewPresetsListFilter[];
97
+ filters: import("../viewPresets/types").ViewPresetsListFilter[];
149
98
  searchQuery: string;
150
99
  filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
151
100
  }, resultFuncArgs_1: string) => string) & {
@@ -161,7 +110,7 @@ export declare const getFilteredViewPresetListForView: ((state: AppStore, _panel
161
110
  isFetching: boolean;
162
111
  error: import("../viewPresets/types").ViewPresetError;
163
112
  isViewPresetListDialogOpen: boolean;
164
- filters: ViewPresetsListFilter[];
113
+ filters: import("../viewPresets/types").ViewPresetsListFilter[];
165
114
  searchQuery: string;
166
115
  filterResults: import("@reduxjs/toolkit").EntityState<ViewPresetListItem, string>;
167
116
  }, (_store: AppStore, panelId: string) => string];
@@ -2,7 +2,7 @@ import { SystemScope } from '@opengeoweb/shared';
2
2
  import { AppStore } from '../types';
3
3
  import { ViewPresetState } from '../viewPresets/types';
4
4
  import { WorkspaceState } from '../workspace/types';
5
- import { WorkspaceListFilter, WorkspaceListState } from './types';
5
+ import { WorkspaceListState } from './types';
6
6
  export declare const getWorkspaceListStore: (store: AppStore) => WorkspaceListState;
7
7
  export declare const getWorkspaceList: (state: AppStore) => import("../workspace/types").WorkspacePresetListItem[];
8
8
  export declare const getIsWorkspaceListFetching: ((state: AppStore) => boolean) & {
@@ -323,19 +323,39 @@ export declare const getIsWorkspaceListDialogOpen: ((state: AppStore) => boolean
323
323
  memoize: typeof import("reselect").weakMapMemoize;
324
324
  argsMemoize: typeof import("reselect").weakMapMemoize;
325
325
  };
326
- export declare const getWorkspaceListFilters: ((state: AppStore, scope?: SystemScope | undefined) => WorkspaceListFilter[]) & {
326
+ export declare const getWorkspaceListFilters: ((state: AppStore, _scope?: SystemScope | undefined, isAdmin?: boolean | undefined) => {
327
+ isDisabled: boolean;
328
+ label: string;
329
+ id: import("./types").PresetFilterType;
330
+ isSelected?: boolean | undefined;
331
+ }[]) & {
327
332
  clearCache: () => void;
328
333
  resultsCount: () => number;
329
334
  resetResultsCount: () => void;
330
335
  } & {
331
- resultFunc: (resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined) => WorkspaceListFilter[];
332
- memoizedResultFunc: ((resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined) => WorkspaceListFilter[]) & {
336
+ resultFunc: (resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined) => {
337
+ isDisabled: boolean;
338
+ label: string;
339
+ id: import("./types").PresetFilterType;
340
+ isSelected?: boolean | undefined;
341
+ }[];
342
+ memoizedResultFunc: ((resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined) => {
343
+ isDisabled: boolean;
344
+ label: string;
345
+ id: import("./types").PresetFilterType;
346
+ isSelected?: boolean | undefined;
347
+ }[]) & {
333
348
  clearCache: () => void;
334
349
  resultsCount: () => number;
335
350
  resetResultsCount: () => void;
336
351
  };
337
- lastResult: () => WorkspaceListFilter[];
338
- dependencies: [(store: AppStore) => WorkspaceListState, (_store: AppStore, scope?: SystemScope) => SystemScope | undefined];
352
+ lastResult: () => {
353
+ isDisabled: boolean;
354
+ label: string;
355
+ id: import("./types").PresetFilterType;
356
+ isSelected?: boolean | undefined;
357
+ }[];
358
+ dependencies: [(store: AppStore) => WorkspaceListState, (_store: AppStore, scope?: SystemScope) => SystemScope | undefined, (_store: AppStore, _scope?: SystemScope, isAdmin?: boolean) => boolean | undefined];
339
359
  recomputations: () => number;
340
360
  resetRecomputations: () => void;
341
361
  dependencyRecomputations: () => number;
@@ -83,6 +83,7 @@ export interface ToggleListDialogPayload {
83
83
  export interface ToggleSelectFilterChip {
84
84
  id: PresetFilterType;
85
85
  isSelected: boolean;
86
+ isAdmin?: boolean;
86
87
  }
87
88
  export interface SearchWorkspaceFilter {
88
89
  searchQuery: string;
@@ -5,4 +5,4 @@ import { WorkspaceListFilter } from '../store/workspaceList/types';
5
5
  export declare const getCleanSearchQuery: (searchQuery: string) => string;
6
6
  export declare const getPresetTitle: (title: string, hasChanges: boolean, isNew: boolean, t: TFunction) => string;
7
7
  export declare const setDocumentTitle: (workspaceTitle: string, appTitle?: string) => void;
8
- export declare const filterAndSortPresets: <T extends WorkspacePresetListItem | ViewPresetListItem>(presets: T[], selectedFilters: WorkspaceListFilter[] | ViewPresetsListFilter[], username: string) => T[];
8
+ export declare const filterAndSortPresets: <T extends WorkspacePresetListItem | ViewPresetListItem>(presets: T[], selectedFilters: WorkspaceListFilter[] | ViewPresetsListFilter[], username: string, isAdmin: boolean) => T[];