@opengeoweb/workspace 10.1.0 → 10.2.1-spike-ol.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 +150 -143
- package/package.json +1 -2
- package/src/index.d.ts +5 -5
- package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialog.d.ts +1 -1
- package/src/lib/components/WorkspaceDetail/WorkspaceDetail.stories.d.ts +1 -0
- package/src/lib/store/index.d.ts +1 -1
- package/src/lib/store/store.d.ts +19 -1
- package/src/lib/store/viewPresets/index.d.ts +1 -1
- package/src/lib/store/viewPresets/listener.integration.spec.d.ts +2 -1
- package/src/lib/store/viewPresets/reducer.d.ts +1 -2
- package/src/lib/store/viewPresets/types.d.ts +3 -0
- package/src/lib/store/viewPresetsList/index.d.ts +1 -1
- package/src/lib/store/viewPresetsList/reducer.d.ts +1 -2
- package/src/lib/store/viewPresetsList/types.d.ts +1 -0
- package/src/lib/store/workspace/index.d.ts +1 -0
- package/src/lib/store/workspace/reducer.d.ts +2 -1
- package/src/lib/store/workspace/selectors.d.ts +3 -3
- package/src/lib/store/workspace/types.d.ts +1 -0
- package/src/lib/store/workspaceList/index.d.ts +1 -0
- package/src/lib/store/workspaceList/reducer.d.ts +1 -2
- package/src/lib/store/workspaceList/types.d.ts +1 -0
- package/src/lib/store/config.d.ts +0 -9
- package/src/lib/utils/testUtils.d.ts +0 -4
package/index.esm.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
2
|
-
import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions,
|
|
2
|
+
import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, createViewObjectForNewMap, mapListener, serviceListener, layersListener, syncGroupsListener, openlayersListener, mapReducer, serviceReducer, layerReducer, syncGroupsReducer, loadingIndicatorReducer, uiReducer, linkComponentTypesConstants, uiTypes, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
|
|
3
3
|
import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext, useAuthenticationContext as useAuthenticationContext$1, GEOWEB_ROLE_PRESETS_ADMIN as GEOWEB_ROLE_PRESETS_ADMIN$1 } from '@opengeoweb/api';
|
|
4
4
|
import _, { chunk, cloneDeep, pick, isEmpty, isEqual, isString } from 'lodash';
|
|
5
5
|
import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, Mosaic } from 'react-mosaic-component';
|
|
6
|
-
import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors,
|
|
6
|
+
import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/timeseries';
|
|
7
7
|
import { publicWarningActions, WARN_NAMESPACE, warningsTranslations, publicWarningsSelectors } from '@opengeoweb/warnings';
|
|
8
8
|
import { PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, SHARED_NAMESPACE, sharedTranslations, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, AlertBanner, CustomTooltip, SearchHighlight, ToggleMenu, DEFAULT_FILTER_HEIGHT, usePrevious, Filter, Resizable, ToolContainer, renderCounter, CustomToggleButton, ConfirmationDialog } from '@opengeoweb/shared';
|
|
9
|
-
import { snackbarTypes, snackbarActions,
|
|
9
|
+
import { snackbarTypes, snackbarActions, snackbarListener, snackbarReducer, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
|
|
10
10
|
import { isAxiosError } from 'axios';
|
|
11
11
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
12
12
|
import { ThemeWrapper, lightTheme, Link, LinkOff, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, Delete, Preset, PresetWorkspace, PresetTiles, BackdropStyle, BackdropElement, CloudLoading, CloudIdle, WebAssetOff, Exclamation } from '@opengeoweb/theme';
|
|
@@ -18,7 +18,6 @@ import i18n from 'i18next';
|
|
|
18
18
|
import { WEBMAP_REACT_NAMESPACE, webmapReactTranslations } from '@opengeoweb/webmap-react';
|
|
19
19
|
import { CORE_NAMESPACE, coreTranslations } from '@opengeoweb/core';
|
|
20
20
|
import { FORM_FIELDS_NAMESPACE, formFieldsTranslations, ReactHookFormTextField, ReactHookFormHiddenInput, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
|
|
21
|
-
import { produce } from 'immer';
|
|
22
21
|
import * as React from 'react';
|
|
23
22
|
import React__default, { useCallback } from 'react';
|
|
24
23
|
import { Menu, Typography, List, ListItem, ListItemButton, ListItemIcon, Checkbox, ListItemText, LinearProgress, Grid2, Box, Backdrop, ListSubheader, MenuItem, useTheme, FormGroup, FormControlLabel, Tabs } from '@mui/material';
|
|
@@ -37,8 +36,7 @@ var en = {
|
|
|
37
36
|
"workspce-clear": "Clear",
|
|
38
37
|
"workspace-save": "Save",
|
|
39
38
|
"workspace-save-as": "Save as",
|
|
40
|
-
"workspace-edit": "Edit (name)",
|
|
41
|
-
"workspace-edit-both": "Edit (name and abstract)",
|
|
39
|
+
"workspace-edit": "Edit (name and abstract)",
|
|
42
40
|
"geoweb-welcome": "Welcome to GeoWeb. Please use one of the presets to open up new views",
|
|
43
41
|
"workspace-modified-new": "modified",
|
|
44
42
|
"workspace-modified-existing": "not saved",
|
|
@@ -117,8 +115,7 @@ var fi = {
|
|
|
117
115
|
"workspce-clear": "Tyhjennä",
|
|
118
116
|
"workspace-save": "Tallenna",
|
|
119
117
|
"workspace-save-as": "Tallenna nimellä",
|
|
120
|
-
"workspace-edit": "Muokkaa (nimeä)",
|
|
121
|
-
"workspace-edit-both": "Muokkaa (nimeä ja tiivistelmää)",
|
|
118
|
+
"workspace-edit": "Muokkaa (nimeä ja tiivistelmää)",
|
|
122
119
|
"geoweb-welcome": "Tervetuloa Geoweb-sovellukseen. Valitse jokin preset avataksesi uusia näkymiä",
|
|
123
120
|
"workspace-modified-new": "muokattu",
|
|
124
121
|
"workspace-modified-existing": "ei tallennettu",
|
|
@@ -194,8 +191,7 @@ var no = {
|
|
|
194
191
|
"workspce-clear": "Tøm",
|
|
195
192
|
"workspace-save": "Lagre",
|
|
196
193
|
"workspace-save-as": "Lagre som",
|
|
197
|
-
"workspace-edit": "Endre (navn)",
|
|
198
|
-
"workspace-edit-both": "Endre (navn og abstrakt)",
|
|
194
|
+
"workspace-edit": "Endre (navn og abstrakt)",
|
|
199
195
|
"geoweb-welcome": "Velkommen til GeoWeb. Åpne et forhåndsvalg for å åpne nye vinduer",
|
|
200
196
|
"workspace-modified-new": "modifisert",
|
|
201
197
|
"workspace-modified-existing": "ikke lagret",
|
|
@@ -271,8 +267,7 @@ var nl = {
|
|
|
271
267
|
"workspce-clear": "Wissen",
|
|
272
268
|
"workspace-save": "Opslaan",
|
|
273
269
|
"workspace-save-as": "Opslaan als",
|
|
274
|
-
"workspace-edit": "Aanpassen (naam)",
|
|
275
|
-
"workspace-edit-both": "Aanpassen (naam en abstract)",
|
|
270
|
+
"workspace-edit": "Aanpassen (naam en abstract)",
|
|
276
271
|
"geoweb-welcome": "Welkom bij GeoWeb. Kies een van de presets om een nieuw venster te openen",
|
|
277
272
|
"workspace-modified-new": "bewerkt",
|
|
278
273
|
"workspace-modified-existing": "niet opgeslagen",
|
|
@@ -1051,8 +1046,8 @@ var slice$3 = createSlice({
|
|
|
1051
1046
|
}
|
|
1052
1047
|
}
|
|
1053
1048
|
});
|
|
1054
|
-
var
|
|
1055
|
-
|
|
1049
|
+
var workspaceListReducer = slice$3.reducer,
|
|
1050
|
+
workspaceListActions = slice$3.actions;
|
|
1056
1051
|
|
|
1057
1052
|
var ViewPresetErrorComponent;
|
|
1058
1053
|
(function (ViewPresetErrorComponent) {
|
|
@@ -1114,7 +1109,7 @@ var viewPresetsAdapter = createEntityAdapter({
|
|
|
1114
1109
|
var initialState$2 = viewPresetsAdapter.getInitialState();
|
|
1115
1110
|
var warningsPresetChangeActions = [publicWarningActions.setWarningFilters];
|
|
1116
1111
|
var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
|
|
1117
|
-
var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
|
|
1112
|
+
var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setTimeSliderSpan, mapActions.toggleTimeSpanAuto, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
|
|
1118
1113
|
var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle];
|
|
1119
1114
|
var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
|
|
1120
1115
|
var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
|
|
@@ -1474,8 +1469,8 @@ var slice$2 = createSlice({
|
|
|
1474
1469
|
});
|
|
1475
1470
|
}
|
|
1476
1471
|
});
|
|
1477
|
-
var
|
|
1478
|
-
|
|
1472
|
+
var viewPresetsReducer = slice$2.reducer,
|
|
1473
|
+
viewPresetActions = slice$2.actions;
|
|
1479
1474
|
|
|
1480
1475
|
/* *
|
|
1481
1476
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1910,11 +1905,13 @@ var slice$1 = createSlice({
|
|
|
1910
1905
|
panelId = _action$payload5.panelId,
|
|
1911
1906
|
title = _action$payload5.title,
|
|
1912
1907
|
presetAction = _action$payload5.action,
|
|
1913
|
-
scope = _action$payload5.scope
|
|
1908
|
+
scope = _action$payload5.scope,
|
|
1909
|
+
_abstract = _action$payload5["abstract"];
|
|
1914
1910
|
var entity = draft.views.byId[panelId];
|
|
1915
1911
|
if (entity && presetAction !== PresetAction.DELETE) {
|
|
1916
1912
|
entity.title = title;
|
|
1917
1913
|
entity.scope = scope || 'user';
|
|
1914
|
+
entity["abstract"] = _abstract;
|
|
1918
1915
|
}
|
|
1919
1916
|
});
|
|
1920
1917
|
workspacePresetChangeActions.map(function (action) {
|
|
@@ -1934,13 +1931,15 @@ var slice$1 = createSlice({
|
|
|
1934
1931
|
if (entity && viewPresetId === '') {
|
|
1935
1932
|
entity.title = '';
|
|
1936
1933
|
entity.scope = 'system';
|
|
1934
|
+
entity["abstract"] = '';
|
|
1937
1935
|
}
|
|
1938
1936
|
}
|
|
1939
1937
|
});
|
|
1940
1938
|
});
|
|
1941
1939
|
}
|
|
1942
1940
|
});
|
|
1943
|
-
|
|
1941
|
+
// eslint-disable-next-line prefer-destructuring
|
|
1942
|
+
var workspaceReducer = slice$1.reducer;
|
|
1944
1943
|
var workspaceActions = Object.assign({}, slice$1.actions);
|
|
1945
1944
|
|
|
1946
1945
|
/* *
|
|
@@ -3107,6 +3106,7 @@ var viewPresetsListFullContent = [
|
|
|
3107
3106
|
{
|
|
3108
3107
|
id: "radar",
|
|
3109
3108
|
title: "Radar",
|
|
3109
|
+
abstract: "abstract radar",
|
|
3110
3110
|
componentType: "Map",
|
|
3111
3111
|
initialProps: {
|
|
3112
3112
|
mapPreset: {
|
|
@@ -4328,6 +4328,7 @@ var viewPresetsListFullContent = [
|
|
|
4328
4328
|
var viewPresetsList = [
|
|
4329
4329
|
{
|
|
4330
4330
|
title: "Radar",
|
|
4331
|
+
abstract: "abstract radar",
|
|
4331
4332
|
id: "radar",
|
|
4332
4333
|
date: "2022-06-01T12:34:27.787184",
|
|
4333
4334
|
scope: "system"
|
|
@@ -4498,7 +4499,8 @@ var viewPresetsList = [
|
|
|
4498
4499
|
title: "Cap Warnings",
|
|
4499
4500
|
id: "capView",
|
|
4500
4501
|
date: "2022-06-01T12:34:27.787184",
|
|
4501
|
-
scope: "system"
|
|
4502
|
+
scope: "system",
|
|
4503
|
+
abstract: "abstract cap"
|
|
4502
4504
|
},
|
|
4503
4505
|
{
|
|
4504
4506
|
title: "Warning List",
|
|
@@ -5035,7 +5037,9 @@ workspaceListener.startListening({
|
|
|
5035
5037
|
while (1) switch (_context11.prev = _context11.next) {
|
|
5036
5038
|
case 0:
|
|
5037
5039
|
payload = _ref10.payload;
|
|
5038
|
-
mosaicNodeId = payload.mosaicNodeId, componentType = payload.componentType, newId = payload.newId;
|
|
5040
|
+
mosaicNodeId = payload.mosaicNodeId, componentType = payload.componentType, newId = payload.newId; // TODO: this would be nice to move into the openlayers store
|
|
5041
|
+
createViewObjectForNewMap(mosaicNodeId, newId);
|
|
5042
|
+
// Note, at some point these might no longer be necessary
|
|
5039
5043
|
bbox = mapSelectors.getBbox(listenerApi.getState(), mosaicNodeId);
|
|
5040
5044
|
srs = mapSelectors.getSrs(listenerApi.getState(), mosaicNodeId);
|
|
5041
5045
|
mapPreset = bbox.bottom ? {
|
|
@@ -5052,7 +5056,7 @@ workspaceListener.startListening({
|
|
|
5052
5056
|
syncGroupsIds: []
|
|
5053
5057
|
}
|
|
5054
5058
|
}));
|
|
5055
|
-
case
|
|
5059
|
+
case 7:
|
|
5056
5060
|
case "end":
|
|
5057
5061
|
return _context11.stop();
|
|
5058
5062
|
}
|
|
@@ -5753,6 +5757,8 @@ workspaceListListener.startListening({
|
|
|
5753
5757
|
case 0:
|
|
5754
5758
|
viewPresetEntity = Object.assign({}, getViewPresetToSendToBackend(listenerApi.getState(), view.mosaicNodeId), {
|
|
5755
5759
|
title: view.title
|
|
5760
|
+
}, view["abstract"] && {
|
|
5761
|
+
"abstract": view["abstract"]
|
|
5756
5762
|
});
|
|
5757
5763
|
shouldUpdateView = view.hasChanges && view.isSelected;
|
|
5758
5764
|
canUpdateView = scope === 'system' || scope === viewPresetEntity.scope; // save existing views
|
|
@@ -5928,8 +5934,8 @@ var slice = createSlice({
|
|
|
5928
5934
|
});
|
|
5929
5935
|
}
|
|
5930
5936
|
});
|
|
5931
|
-
var
|
|
5932
|
-
slice.actions;
|
|
5937
|
+
var viewPresetsListReducer = slice.reducer;
|
|
5938
|
+
slice.actions;
|
|
5933
5939
|
|
|
5934
5940
|
/* *
|
|
5935
5941
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -5974,35 +5980,6 @@ var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getVie
|
|
|
5974
5980
|
};
|
|
5975
5981
|
}, selectorMemoizationOptions);
|
|
5976
5982
|
|
|
5977
|
-
/* *
|
|
5978
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5979
|
-
* you may not use this file except in compliance with the License.
|
|
5980
|
-
* You may obtain a copy of the License at
|
|
5981
|
-
*
|
|
5982
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5983
|
-
*
|
|
5984
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
5985
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5986
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5987
|
-
* See the License for the specific language governing permissions and
|
|
5988
|
-
* limitations under the License.
|
|
5989
|
-
*
|
|
5990
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
5991
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
5992
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
5993
|
-
* */
|
|
5994
|
-
var workspaceReducersMap = {
|
|
5995
|
-
workspace: reducer$1,
|
|
5996
|
-
workspaceList: reducer$3,
|
|
5997
|
-
viewPresetsList: reducer,
|
|
5998
|
-
viewPresets: reducer$2
|
|
5999
|
-
};
|
|
6000
|
-
var workspaceMiddlewares = [viewPresetsListener.middleware, workspaceListener.middleware, workspaceListListener.middleware];
|
|
6001
|
-
var workspaceModuleConfig = {
|
|
6002
|
-
reducersMap: workspaceReducersMap,
|
|
6003
|
-
middlewares: workspaceMiddlewares
|
|
6004
|
-
};
|
|
6005
|
-
|
|
6006
5983
|
/* *
|
|
6007
5984
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6008
5985
|
* you may not use this file except in compliance with the License.
|
|
@@ -6060,32 +6037,30 @@ var useWorkspaceTranslation = function useWorkspaceTranslation() {
|
|
|
6060
6037
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
6061
6038
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
6062
6039
|
* */
|
|
6063
|
-
var
|
|
6064
|
-
|
|
6065
|
-
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
|
|
6071
|
-
|
|
6072
|
-
|
|
6073
|
-
|
|
6074
|
-
|
|
6075
|
-
|
|
6076
|
-
});
|
|
6077
|
-
}
|
|
6040
|
+
var workspaceReducersMap = {
|
|
6041
|
+
webmap: mapReducer,
|
|
6042
|
+
services: serviceReducer,
|
|
6043
|
+
layers: layerReducer,
|
|
6044
|
+
syncGroups: syncGroupsReducer,
|
|
6045
|
+
loadingIndicator: loadingIndicatorReducer,
|
|
6046
|
+
ui: uiReducer,
|
|
6047
|
+
workspace: workspaceReducer,
|
|
6048
|
+
workspaceList: workspaceListReducer,
|
|
6049
|
+
viewPresetsList: viewPresetsListReducer,
|
|
6050
|
+
viewPresets: viewPresetsReducer,
|
|
6051
|
+
timeSeries: timeSeriesReducer,
|
|
6052
|
+
snackbar: snackbarReducer
|
|
6078
6053
|
};
|
|
6079
|
-
var
|
|
6080
|
-
var
|
|
6081
|
-
|
|
6082
|
-
|
|
6054
|
+
var workspaceMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, syncGroupsListener.middleware, workspaceListener.middleware, workspaceListListener.middleware, viewPresetsListener.middleware, snackbarListener.middleware, openlayersListener.middleware];
|
|
6055
|
+
var workspaceRootReducer = combineReducers(workspaceReducersMap);
|
|
6056
|
+
var createMockStore = function createMockStore(mockState) {
|
|
6057
|
+
return configureStore({
|
|
6058
|
+
reducer: workspaceRootReducer,
|
|
6059
|
+
preloadedState: mockState,
|
|
6083
6060
|
middleware: function middleware(getDefaultMiddleware) {
|
|
6084
|
-
return getDefaultMiddleware().concat(
|
|
6085
|
-
}
|
|
6086
|
-
devTools: devToolsStateSanitizer
|
|
6061
|
+
return getDefaultMiddleware().concat(workspaceMiddlewares);
|
|
6062
|
+
}
|
|
6087
6063
|
});
|
|
6088
|
-
return store;
|
|
6089
6064
|
};
|
|
6090
6065
|
|
|
6091
6066
|
var queryClient = new QueryClient({
|
|
@@ -6128,7 +6103,7 @@ var defaultAuthConfig = {
|
|
|
6128
6103
|
var WorkspaceWrapperProviderWithStore = function WorkspaceWrapperProviderWithStore(_ref3) {
|
|
6129
6104
|
var children = _ref3.children,
|
|
6130
6105
|
_ref3$store = _ref3.store,
|
|
6131
|
-
store = _ref3$store === void 0 ?
|
|
6106
|
+
store = _ref3$store === void 0 ? createMockStore() : _ref3$store,
|
|
6132
6107
|
_ref3$createApi = _ref3.createApi,
|
|
6133
6108
|
createApi$1 = _ref3$createApi === void 0 ? createApi : _ref3$createApi,
|
|
6134
6109
|
theme = _ref3.theme,
|
|
@@ -6182,12 +6157,12 @@ var WorkspaceModuleProvider = function WorkspaceModuleProvider(_ref) {
|
|
|
6182
6157
|
});
|
|
6183
6158
|
};
|
|
6184
6159
|
|
|
6185
|
-
var _excluded$
|
|
6160
|
+
var _excluded$5 = ["component", "payload"];
|
|
6186
6161
|
// takes a component and connects module methods with workspace store
|
|
6187
6162
|
var ComponentsLookUpWrapper = function ComponentsLookUpWrapper(_ref) {
|
|
6188
6163
|
var component = _ref.component,
|
|
6189
6164
|
payload = _ref.payload,
|
|
6190
|
-
props = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
6165
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
6191
6166
|
var RenderComponent = component;
|
|
6192
6167
|
var dispatch = useDispatch();
|
|
6193
6168
|
var viewId = payload.id;
|
|
@@ -6602,12 +6577,11 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
|
6602
6577
|
var onEdit = function onEdit() {
|
|
6603
6578
|
onClickWorkspacePresetOption(workspacePreset.id, WorkspacePresetAction.EDIT, workspacePreset);
|
|
6604
6579
|
};
|
|
6605
|
-
var editTitle = testIdPrefix === 'viewpreset' ? 'workspace-edit' : 'workspace-edit-both';
|
|
6606
6580
|
var menuItems = [{
|
|
6607
6581
|
text: t('workspace-duplicate'),
|
|
6608
6582
|
action: onDuplicate
|
|
6609
6583
|
}].concat(workspacePreset.scope === 'user' || isAdmin ? [{
|
|
6610
|
-
text: t(
|
|
6584
|
+
text: t('workspace-edit'),
|
|
6611
6585
|
action: onEdit
|
|
6612
6586
|
}] : []);
|
|
6613
6587
|
return jsx(ListItem, {
|
|
@@ -6865,7 +6839,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
|
|
|
6865
6839
|
panelId: panelId,
|
|
6866
6840
|
formValues: {
|
|
6867
6841
|
title: preset.title,
|
|
6868
|
-
initialProps: constructInitialProps()
|
|
6842
|
+
initialProps: constructInitialProps(),
|
|
6843
|
+
"abstract": preset["abstract"]
|
|
6869
6844
|
}
|
|
6870
6845
|
});
|
|
6871
6846
|
break;
|
|
@@ -6879,7 +6854,8 @@ var ViewPresetMenuListConnect = function ViewPresetMenuListConnect(_ref) {
|
|
|
6879
6854
|
panelId: panelId,
|
|
6880
6855
|
viewPresetId: presetId,
|
|
6881
6856
|
formValues: {
|
|
6882
|
-
title: presetTitle
|
|
6857
|
+
title: presetTitle,
|
|
6858
|
+
"abstract": preset["abstract"]
|
|
6883
6859
|
}
|
|
6884
6860
|
});
|
|
6885
6861
|
break;
|
|
@@ -6988,9 +6964,10 @@ var ResizeMenu = function ResizeMenu(_ref) {
|
|
|
6988
6964
|
children = _ref.children;
|
|
6989
6965
|
return jsx(Resizable, {
|
|
6990
6966
|
defaultSize: {
|
|
6991
|
-
width:
|
|
6967
|
+
width: 380,
|
|
6992
6968
|
height: '90%'
|
|
6993
6969
|
},
|
|
6970
|
+
maxWidth: "100%",
|
|
6994
6971
|
minHeight: 110,
|
|
6995
6972
|
minWidth: 280,
|
|
6996
6973
|
style: {
|
|
@@ -7090,7 +7067,6 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
|
|
|
7090
7067
|
}
|
|
7091
7068
|
}, [isDefaultOpen, id]);
|
|
7092
7069
|
var isViewPresetsOptions = id === viewPresetOptionId;
|
|
7093
|
-
var editTitle = isViewPresetsOptions ? t('workspace-edit') : t('workspace-edit-both');
|
|
7094
7070
|
var saveAsTitle = isAdmin && !isViewPresetsOptions ? t('workspace-admin-save-new-workspace') : t('workspace-save-as');
|
|
7095
7071
|
var isAdminWorkspaceOptions = isAdmin && id === workspacePresetOptionId;
|
|
7096
7072
|
var options = [{
|
|
@@ -7100,7 +7076,7 @@ var WorkspaceOptionsNoMemo = function WorkspaceOptionsNoMemo(_ref) {
|
|
|
7100
7076
|
title: saveAsTitle,
|
|
7101
7077
|
callback: handleSaveAs
|
|
7102
7078
|
}].concat(!isAdminWorkspaceOptions ? [{
|
|
7103
|
-
title:
|
|
7079
|
+
title: t('workspace-edit'),
|
|
7104
7080
|
callback: handleEdit
|
|
7105
7081
|
}] : [], [{
|
|
7106
7082
|
title: t('workspace-reset'),
|
|
@@ -7225,6 +7201,7 @@ var LoadingIndicatorConnect = function LoadingIndicatorConnect(_ref) {
|
|
|
7225
7201
|
});
|
|
7226
7202
|
};
|
|
7227
7203
|
|
|
7204
|
+
var _excluded$4 = ["title", "scope"];
|
|
7228
7205
|
var customIconStyles = function customIconStyles(theme, isViewPresetDialogOpen) {
|
|
7229
7206
|
return {
|
|
7230
7207
|
marginLeft: -1,
|
|
@@ -7256,11 +7233,12 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
|
|
|
7256
7233
|
var _workspaceSelectors$g;
|
|
7257
7234
|
var _ref2 = (_workspaceSelectors$g = getViewById(store, panelId)) != null ? _workspaceSelectors$g : {},
|
|
7258
7235
|
title = _ref2.title,
|
|
7259
|
-
scope = _ref2.scope
|
|
7260
|
-
|
|
7236
|
+
scope = _ref2.scope,
|
|
7237
|
+
restProps = _objectWithoutPropertiesLoose(_ref2, _excluded$4);
|
|
7238
|
+
return Object.assign({
|
|
7261
7239
|
title: title,
|
|
7262
7240
|
scope: scope
|
|
7263
|
-
};
|
|
7241
|
+
}, restProps);
|
|
7264
7242
|
}, shallowEqual);
|
|
7265
7243
|
var viewComponentType = useSelector(function (store) {
|
|
7266
7244
|
return getViewComponentType(store, panelId);
|
|
@@ -7274,6 +7252,7 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
|
|
|
7274
7252
|
var relatedSyncGroupIds = useSelector(function (store) {
|
|
7275
7253
|
return syncGroupsSelectors.getAllTargetGroupsForSource(store, panelId);
|
|
7276
7254
|
});
|
|
7255
|
+
var presetAbstract = workspaceView == null ? void 0 : workspaceView["abstract"];
|
|
7277
7256
|
var isNewActive = activeViewPresetId === '';
|
|
7278
7257
|
var title = workspaceView.title || t('workspace-mappreset-new');
|
|
7279
7258
|
var viewScope = workspaceView.scope;
|
|
@@ -7318,10 +7297,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
|
|
|
7318
7297
|
viewPresetId: activeViewPresetId,
|
|
7319
7298
|
panelId: panelId,
|
|
7320
7299
|
formValues: {
|
|
7321
|
-
title: title
|
|
7300
|
+
title: title,
|
|
7301
|
+
"abstract": presetAbstract
|
|
7322
7302
|
}
|
|
7323
7303
|
});
|
|
7324
|
-
}, [activeViewPresetId, openViewPresetsDialog, panelId, title, t]);
|
|
7304
|
+
}, [activeViewPresetId, openViewPresetsDialog, panelId, title, presetAbstract, t]);
|
|
7325
7305
|
var onSaveAs = React.useCallback(function () {
|
|
7326
7306
|
var formTitle = activeViewPresetId ? title : '';
|
|
7327
7307
|
openViewPresetsDialog({
|
|
@@ -7331,10 +7311,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
|
|
|
7331
7311
|
panelId: panelId,
|
|
7332
7312
|
formValues: {
|
|
7333
7313
|
title: formTitle,
|
|
7334
|
-
initialProps: constructInitialProps()
|
|
7314
|
+
initialProps: constructInitialProps(),
|
|
7315
|
+
"abstract": presetAbstract
|
|
7335
7316
|
}
|
|
7336
7317
|
});
|
|
7337
|
-
}, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title]);
|
|
7318
|
+
}, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
|
|
7338
7319
|
var onEdit = React.useCallback(function () {
|
|
7339
7320
|
var formTitle = activeViewPresetId ? title : '';
|
|
7340
7321
|
openViewPresetsDialog({
|
|
@@ -7344,10 +7325,11 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
|
|
|
7344
7325
|
viewPresetId: activeViewPresetId,
|
|
7345
7326
|
formValues: {
|
|
7346
7327
|
title: formTitle,
|
|
7347
|
-
initialProps: constructInitialProps()
|
|
7328
|
+
initialProps: constructInitialProps(),
|
|
7329
|
+
"abstract": presetAbstract
|
|
7348
7330
|
}
|
|
7349
7331
|
});
|
|
7350
|
-
}, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title]);
|
|
7332
|
+
}, [activeViewPresetId, constructInitialProps, openViewPresetsDialog, panelId, t, title, presetAbstract]);
|
|
7351
7333
|
var onReset = React.useCallback(function () {
|
|
7352
7334
|
openViewPresetsDialog({
|
|
7353
7335
|
title: t('workspace-reset-title'),
|
|
@@ -8246,6 +8228,7 @@ var HelperText = function HelperText(_ref) {
|
|
|
8246
8228
|
children: text
|
|
8247
8229
|
});
|
|
8248
8230
|
};
|
|
8231
|
+
var inputMargin = 2;
|
|
8249
8232
|
var ViewPresetItem = function ViewPresetItem(_ref2) {
|
|
8250
8233
|
var index = _ref2.index,
|
|
8251
8234
|
viewPreset = _ref2.viewPreset,
|
|
@@ -8285,6 +8268,7 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
|
|
|
8285
8268
|
}
|
|
8286
8269
|
}, [error, fieldNameTitle, setError]);
|
|
8287
8270
|
var shouldShowInput = isNew && isChecked || isChecked && !isAdmin && viewPreset.scope === 'system';
|
|
8271
|
+
var isInputDisabled = isLoading || !hasChanges;
|
|
8288
8272
|
return jsxs(React__default.Fragment, {
|
|
8289
8273
|
children: [jsx(FormControlLabel, {
|
|
8290
8274
|
control: jsx(Checkbox, {}),
|
|
@@ -8315,11 +8299,23 @@ var ViewPresetItem = function ViewPresetItem(_ref2) {
|
|
|
8315
8299
|
rules: {
|
|
8316
8300
|
required: true
|
|
8317
8301
|
},
|
|
8318
|
-
disabled:
|
|
8302
|
+
disabled: isInputDisabled,
|
|
8319
8303
|
sx: {
|
|
8320
|
-
|
|
8304
|
+
mb: inputMargin
|
|
8321
8305
|
},
|
|
8322
8306
|
error: error !== undefined
|
|
8307
|
+
}), jsx(ReactHookFormTextField, {
|
|
8308
|
+
name: "views." + index + ".abstract",
|
|
8309
|
+
label: t('workspace-dialog-abstract'),
|
|
8310
|
+
rules: {
|
|
8311
|
+
required: false
|
|
8312
|
+
},
|
|
8313
|
+
multiline: true,
|
|
8314
|
+
rows: 3,
|
|
8315
|
+
disabled: isInputDisabled,
|
|
8316
|
+
sx: {
|
|
8317
|
+
mb: inputMargin
|
|
8318
|
+
}
|
|
8323
8319
|
}), jsx(HelperText, {
|
|
8324
8320
|
text: t(getNewPresetWarningText(isAdmin, isNew))
|
|
8325
8321
|
})]
|
|
@@ -8557,7 +8553,7 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
|
|
|
8557
8553
|
}
|
|
8558
8554
|
case WorkspacePresetAction.EDIT:
|
|
8559
8555
|
{
|
|
8560
|
-
return t('workspace-edit
|
|
8556
|
+
return t('workspace-edit');
|
|
8561
8557
|
}
|
|
8562
8558
|
case WorkspacePresetAction.SAVE:
|
|
8563
8559
|
{
|
|
@@ -8725,6 +8721,7 @@ var validateTitle = function validateTitle(value) {
|
|
|
8725
8721
|
// TODO: use translation from form-fields https://gitlab.com/opengeoweb/opengeoweb/-/issues/4240
|
|
8726
8722
|
return !value.trim().length ? 'This field is required' : true;
|
|
8727
8723
|
};
|
|
8724
|
+
var marginBottom = 2;
|
|
8728
8725
|
var ViewPresetsForm = function ViewPresetsForm(_ref) {
|
|
8729
8726
|
var viewComponentType = _ref.viewComponentType,
|
|
8730
8727
|
error = _ref.error,
|
|
@@ -8755,7 +8752,7 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
|
|
|
8755
8752
|
return jsxs(Fragment, {
|
|
8756
8753
|
children: [Boolean(error) && jsx(Box, {
|
|
8757
8754
|
sx: {
|
|
8758
|
-
|
|
8755
|
+
mb: marginBottom
|
|
8759
8756
|
},
|
|
8760
8757
|
children: jsx(AlertBanner, {
|
|
8761
8758
|
title: error
|
|
@@ -8772,7 +8769,18 @@ var ViewPresetsForm = function ViewPresetsForm(_ref) {
|
|
|
8772
8769
|
validateTitle: validateTitle
|
|
8773
8770
|
}
|
|
8774
8771
|
},
|
|
8775
|
-
defaultValue: title
|
|
8772
|
+
defaultValue: title,
|
|
8773
|
+
sx: {
|
|
8774
|
+
mb: marginBottom
|
|
8775
|
+
}
|
|
8776
|
+
}), jsx(ReactHookFormTextField, {
|
|
8777
|
+
name: "abstract",
|
|
8778
|
+
label: t('workspace-dialog-abstract'),
|
|
8779
|
+
rules: {
|
|
8780
|
+
required: false
|
|
8781
|
+
},
|
|
8782
|
+
multiline: true,
|
|
8783
|
+
rows: 3
|
|
8776
8784
|
}), hiddenFields.map(function (_ref2) {
|
|
8777
8785
|
var name = _ref2.name,
|
|
8778
8786
|
value = _ref2.value;
|
|
@@ -8866,77 +8874,75 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
|
|
|
8866
8874
|
var confirmLabel = getConfirmLabel(action);
|
|
8867
8875
|
var onFormSubmit = /*#__PURE__*/function () {
|
|
8868
8876
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formValues) {
|
|
8869
|
-
var scope, newFormValues, newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, submitError, message;
|
|
8877
|
+
var scope, handleSuccess, newFormValues, newId, _yield$api$getViewPre, originalViewPreset, viewPresetEdited, submitError, message;
|
|
8870
8878
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
8871
8879
|
while (1) switch (_context.prev = _context.next) {
|
|
8872
8880
|
case 0:
|
|
8873
8881
|
scope = isAdmin ? 'system' : formValues.scope;
|
|
8882
|
+
handleSuccess = function handleSuccess(id) {
|
|
8883
|
+
setIsLoading(false);
|
|
8884
|
+
onClose();
|
|
8885
|
+
onSuccess(action, id, newFormValues.title, newFormValues["abstract"]);
|
|
8886
|
+
};
|
|
8874
8887
|
newFormValues = Object.assign({}, formValues, {
|
|
8875
8888
|
scope: scope
|
|
8876
8889
|
});
|
|
8877
|
-
_context.prev =
|
|
8890
|
+
_context.prev = 3;
|
|
8878
8891
|
setError(null);
|
|
8879
8892
|
setIsLoading(true);
|
|
8880
8893
|
_context.t0 = action;
|
|
8881
|
-
_context.next = _context.t0 === PresetAction.SAVE_AS ?
|
|
8894
|
+
_context.next = _context.t0 === PresetAction.SAVE_AS ? 9 : _context.t0 === PresetAction.DELETE ? 14 : _context.t0 === PresetAction.EDIT ? 18 : _context.t0 === PresetAction.RESET ? 27 : 30;
|
|
8882
8895
|
break;
|
|
8883
|
-
case
|
|
8884
|
-
_context.next =
|
|
8896
|
+
case 9:
|
|
8897
|
+
_context.next = 11;
|
|
8885
8898
|
return api.saveViewPresetAs(newFormValues);
|
|
8886
|
-
case
|
|
8899
|
+
case 11:
|
|
8887
8900
|
newId = _context.sent;
|
|
8888
|
-
|
|
8889
|
-
|
|
8890
|
-
|
|
8891
|
-
|
|
8892
|
-
case 15:
|
|
8893
|
-
_context.next = 17;
|
|
8901
|
+
handleSuccess(newId);
|
|
8902
|
+
return _context.abrupt("break", 31);
|
|
8903
|
+
case 14:
|
|
8904
|
+
_context.next = 16;
|
|
8894
8905
|
return api.deleteViewPreset(viewPresetId);
|
|
8895
|
-
case
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
|
|
8900
|
-
case 21:
|
|
8901
|
-
_context.next = 23;
|
|
8906
|
+
case 16:
|
|
8907
|
+
handleSuccess(viewPresetId);
|
|
8908
|
+
return _context.abrupt("break", 31);
|
|
8909
|
+
case 18:
|
|
8910
|
+
_context.next = 20;
|
|
8902
8911
|
return api.getViewPreset(viewPresetId);
|
|
8903
|
-
case
|
|
8912
|
+
case 20:
|
|
8904
8913
|
_yield$api$getViewPre = _context.sent;
|
|
8905
8914
|
originalViewPreset = _yield$api$getViewPre.data;
|
|
8906
8915
|
viewPresetEdited = Object.assign({}, originalViewPreset, {
|
|
8907
8916
|
title: newFormValues.title,
|
|
8917
|
+
"abstract": newFormValues["abstract"],
|
|
8908
8918
|
scope: scope
|
|
8909
8919
|
});
|
|
8910
|
-
_context.next =
|
|
8920
|
+
_context.next = 25;
|
|
8911
8921
|
return api.saveViewPreset(viewPresetId, viewPresetEdited);
|
|
8912
|
-
case
|
|
8913
|
-
|
|
8914
|
-
|
|
8915
|
-
|
|
8916
|
-
return _context.abrupt("break", 38);
|
|
8917
|
-
case 32:
|
|
8922
|
+
case 25:
|
|
8923
|
+
handleSuccess(viewPresetId);
|
|
8924
|
+
return _context.abrupt("break", 31);
|
|
8925
|
+
case 27:
|
|
8918
8926
|
onReset(viewPresetId);
|
|
8919
|
-
|
|
8920
|
-
|
|
8921
|
-
|
|
8922
|
-
return _context.abrupt("break",
|
|
8923
|
-
case
|
|
8924
|
-
|
|
8925
|
-
case 38:
|
|
8926
|
-
_context.next = 46;
|
|
8927
|
+
handleSuccess(viewPresetId);
|
|
8928
|
+
return _context.abrupt("break", 31);
|
|
8929
|
+
case 30:
|
|
8930
|
+
return _context.abrupt("break", 31);
|
|
8931
|
+
case 31:
|
|
8932
|
+
_context.next = 39;
|
|
8927
8933
|
break;
|
|
8928
|
-
case
|
|
8929
|
-
_context.prev =
|
|
8930
|
-
_context.t1 = _context["catch"](
|
|
8934
|
+
case 33:
|
|
8935
|
+
_context.prev = 33;
|
|
8936
|
+
_context.t1 = _context["catch"](3);
|
|
8931
8937
|
setIsLoading(false);
|
|
8932
8938
|
submitError = _context.t1;
|
|
8933
8939
|
message = isAxiosError$1(submitError) ? getAxiosErrorMessage(submitError) : submitError.message;
|
|
8934
8940
|
setError(message);
|
|
8935
|
-
case
|
|
8941
|
+
case 39:
|
|
8936
8942
|
case "end":
|
|
8937
8943
|
return _context.stop();
|
|
8938
8944
|
}
|
|
8939
|
-
}, _callee, null, [[
|
|
8945
|
+
}, _callee, null, [[3, 33]]);
|
|
8940
8946
|
}));
|
|
8941
8947
|
return function onFormSubmit(_x) {
|
|
8942
8948
|
return _ref2.apply(this, arguments);
|
|
@@ -9035,13 +9041,14 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
|
|
|
9035
9041
|
var onClose = function onClose() {
|
|
9036
9042
|
closeDialog();
|
|
9037
9043
|
};
|
|
9038
|
-
var onSuccess = function onSuccess(action, newViewPresetId, title) {
|
|
9044
|
+
var onSuccess = function onSuccess(action, newViewPresetId, title, _abstract) {
|
|
9039
9045
|
dispatch(viewPresetActions.onSuccessViewPresetAction({
|
|
9040
9046
|
panelId: panelId,
|
|
9041
9047
|
viewPresetId: newViewPresetId,
|
|
9042
9048
|
action: action,
|
|
9043
9049
|
title: title,
|
|
9044
|
-
scope: scope
|
|
9050
|
+
scope: scope,
|
|
9051
|
+
"abstract": _abstract
|
|
9045
9052
|
}));
|
|
9046
9053
|
};
|
|
9047
9054
|
var isOpen = dialogOptions !== undefined;
|
|
@@ -9193,4 +9200,4 @@ var WorkspaceDetail = function WorkspaceDetail(_ref2) {
|
|
|
9193
9200
|
});
|
|
9194
9201
|
};
|
|
9195
9202
|
|
|
9196
|
-
export { ComponentsLookUpWrapper, DemoWrapper, PresetAction, ViewPresetErrorComponent, ViewPresetErrorType, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore,
|
|
9203
|
+
export { ComponentsLookUpWrapper, DemoWrapper, PresetAction, ViewPresetErrorComponent, ViewPresetErrorType, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, getEmptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, viewPresetActions, viewPresetsListReducer, viewPresetsListener, viewPresetsReducer, workspaceActions, workspaceListActions, workspaceListListener, workspaceListReducer, workspaceListener, workspaceMiddlewares, workspaceReducer, workspaceReducersMap, routes as workspaceRoutes, workspaceTranslations };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/workspace",
|
|
3
|
-
"version": "10.1.0",
|
|
3
|
+
"version": "10.2.1-spike-ol.0",
|
|
4
4
|
"description": "GeoWeb Workspace library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"@opengeoweb/snackbar": "*",
|
|
19
19
|
"react-window": "^1.8.10",
|
|
20
20
|
"lodash": "^4.17.21",
|
|
21
|
-
"immer": "^10.0.3",
|
|
22
21
|
"axios": "^1.7.7",
|
|
23
22
|
"react-virtualized-auto-sizer": "^1.0.21",
|
|
24
23
|
"react-mosaic-component": "^6.1.0",
|
package/src/index.d.ts
CHANGED
|
@@ -3,12 +3,11 @@ import { workspaceListener } from './lib/store/workspace/listener';
|
|
|
3
3
|
export { workspaceListener };
|
|
4
4
|
export { workspaceListListener } from './lib/store/workspaceList/listener';
|
|
5
5
|
export { viewPresetsListener } from './lib/store/viewPresets/listener';
|
|
6
|
-
export { workspaceActions
|
|
7
|
-
export { workspaceListActions,
|
|
8
|
-
export { viewPresetActions,
|
|
9
|
-
export {
|
|
6
|
+
export { workspaceActions, workspaceReducer, } from './lib/store/workspace/reducer';
|
|
7
|
+
export { workspaceListActions, workspaceListReducer, } from './lib/store/workspaceList/reducer';
|
|
8
|
+
export { viewPresetActions, viewPresetsReducer } from './lib/store/viewPresets';
|
|
9
|
+
export { viewPresetsListReducer } from './lib/store/viewPresetsList';
|
|
10
10
|
export * as selectors from './lib/store/workspace/selectors';
|
|
11
|
-
export { default as workspaceModuleConfig } from './lib/store/config';
|
|
12
11
|
export * from './lib/store/workspace/types';
|
|
13
12
|
export * from './lib/store/viewPresets/types';
|
|
14
13
|
export * from './lib/components/Providers';
|
|
@@ -21,3 +20,4 @@ export { workspaceTranslations };
|
|
|
21
20
|
export { routes as workspaceRoutes, getWorkspaceRouteUrl, } from './lib/utils/routes';
|
|
22
21
|
export { getEmptyMapWorkspace, createCustomEmptyMapWorkspace, } from './lib/store/workspaceList/utils';
|
|
23
22
|
export type { WorkspaceModuleStore } from './lib/store/types';
|
|
23
|
+
export { workspaceReducersMap, workspaceMiddlewares } from './lib/store';
|
|
@@ -7,7 +7,7 @@ export interface ViewPresetsFormDialogProps {
|
|
|
7
7
|
viewPresetId: string;
|
|
8
8
|
viewComponentType: WorkspaceSupportedComponentTypes;
|
|
9
9
|
formValues: ViewPresetFormValues;
|
|
10
|
-
onSuccess: (action: PresetAction, presetId: string, title: string) => void;
|
|
10
|
+
onSuccess: (action: PresetAction, presetId: string, title: string, abstract: string) => void;
|
|
11
11
|
onClose: () => void;
|
|
12
12
|
onReset: (viewPresetId: string) => void;
|
|
13
13
|
}
|
|
@@ -7,3 +7,4 @@ export declare const ScreenConfigRadarTemp: () => React.ReactElement;
|
|
|
7
7
|
export declare const ScreenConfigHarmoniePresetWithoutMultiMapLayerManager: () => React.ReactElement;
|
|
8
8
|
export declare const ScreenConfigHarmoniePresetWithMultiMapLayerManager: () => React.ReactElement;
|
|
9
9
|
export declare const UiDialogsDemo: () => React.ReactElement;
|
|
10
|
+
export declare const ScreenConfigWithNonExistingLayer: () => React.ReactElement;
|
package/src/lib/store/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './store';
|
package/src/lib/store/store.d.ts
CHANGED
|
@@ -1,2 +1,20 @@
|
|
|
1
|
+
import { SnackbarModuleStore } from '@opengeoweb/snackbar';
|
|
2
|
+
import { WebMapStateModuleState, SynchronizationGroupModuleState, UIModuleState } from '@opengeoweb/store';
|
|
1
3
|
import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore';
|
|
2
|
-
|
|
4
|
+
import { WorkspaceModuleStore } from './types';
|
|
5
|
+
export declare const workspaceReducersMap: {
|
|
6
|
+
webmap: import("redux").Reducer<import("dist/libs/store/src/store/map/types").WebMapState, import("redux").AnyAction>;
|
|
7
|
+
services: import("redux").Reducer<import("dist/libs/store/src/store/map/types").ServiceState, import("redux").AnyAction>;
|
|
8
|
+
layers: import("redux").Reducer<import("dist/libs/store/src/store/map/types").LayerState, import("redux").AnyAction>;
|
|
9
|
+
syncGroups: import("redux").Reducer<import("dist/libs/store/src/store/generic/syncGroups/types").SynchronizationGroupState, import("redux").AnyAction>;
|
|
10
|
+
loadingIndicator: import("redux").Reducer<import("@reduxjs/toolkit").EntityState<import("dist/libs/store/src/store/generic/loadingIndicator/types").LoadingIndicatorType>, import("redux").AnyAction>;
|
|
11
|
+
ui: import("redux").Reducer<import("dist/libs/store/src/store/ui/types").UIStoreType, import("redux").AnyAction>;
|
|
12
|
+
workspace: import("redux").Reducer<import("./workspace/types").WorkspaceState>;
|
|
13
|
+
workspaceList: import("redux").Reducer<import("./workspaceList/types").WorkspaceListState>;
|
|
14
|
+
viewPresetsList: import("redux").Reducer<import("./viewPresetsList/types").ViewPresetListState>;
|
|
15
|
+
viewPresets: import("redux").Reducer<import("./viewPresets/types").ViewPresetState>;
|
|
16
|
+
timeSeries: import("redux").Reducer<import("dist/libs/timeseries/src/lib/store/types").TimeSeriesStoreType, import("redux").AnyAction>;
|
|
17
|
+
snackbar: import("redux").Reducer<import("dist/libs/snackbar/src/lib/store/types").SnackbarState, import("redux").AnyAction>;
|
|
18
|
+
};
|
|
19
|
+
export declare const workspaceMiddlewares: (import("@reduxjs/toolkit").ListenerMiddleware<import("./types").AppStore, import("@reduxjs/toolkit").ThunkDispatch<import("./types").AppStore, unknown, import("redux").AnyAction>, unknown> | import("@reduxjs/toolkit").ListenerMiddleware<SnackbarModuleStore, import("@reduxjs/toolkit").ThunkDispatch<SnackbarModuleStore, unknown, import("redux").AnyAction>, unknown>)[];
|
|
20
|
+
export declare const createMockStore: (mockState?: WebMapStateModuleState | WorkspaceModuleStore | UIModuleState | SynchronizationGroupModuleState | SnackbarModuleStore) => ToolkitStore;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { viewPresetActions,
|
|
1
|
+
export { viewPresetActions, viewPresetsReducer } from './reducer';
|
|
2
2
|
export * as viewPresetSelectors from './selectors';
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore';
|
|
2
|
+
export declare const createMockStoreForListener: () => ToolkitStore;
|
|
@@ -9,8 +9,7 @@ export type SupportedMapActionOrigins = layerTypes.LayerActionOrigin | mapEnums.
|
|
|
9
9
|
export declare const supportedMapActionOrigins: SupportedMapActionOrigins[];
|
|
10
10
|
export type SupportedTimeSeriesActionOrigins = TimeSeriesTypes.TimeSeriesActionOrigin;
|
|
11
11
|
export declare const supportedTimeSeriesActionOrigins: SupportedTimeSeriesActionOrigins[];
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const viewPresetActions: import("@reduxjs/toolkit").CaseReducerActions<{
|
|
12
|
+
export declare const viewPresetsReducer: import("redux").Reducer<ViewPresetState>, viewPresetActions: import("@reduxjs/toolkit").CaseReducerActions<{
|
|
14
13
|
fetchInitialViewPresets: (draft: Draft<ViewPresetState>, _action: PayloadAction<FetchViewPresetsList>) => void;
|
|
15
14
|
fetchedInitialViewPresets: (draft: Draft<ViewPresetState>, action: PayloadAction<FetchedInitialViewPresetsPayload>) => void;
|
|
16
15
|
errorInitialViewPresets: (draft: Draft<ViewPresetState>, action: PayloadAction<ErrorInitialViewPresetsPayload>) => void;
|
|
@@ -8,6 +8,7 @@ export type WorkspaceSupportedComponentTypes = SupportedComponentTypes | Support
|
|
|
8
8
|
export interface ViewPreset {
|
|
9
9
|
id?: string;
|
|
10
10
|
title: string;
|
|
11
|
+
abstract?: string;
|
|
11
12
|
keywords: string;
|
|
12
13
|
componentType: WorkspaceSupportedComponentTypes;
|
|
13
14
|
initialProps?: InitialProps;
|
|
@@ -46,6 +47,7 @@ export interface ViewPresetEntity {
|
|
|
46
47
|
}
|
|
47
48
|
export interface ViewPresetFormValues {
|
|
48
49
|
title?: string;
|
|
50
|
+
abstract?: string;
|
|
49
51
|
initialProps?: InitialProps;
|
|
50
52
|
}
|
|
51
53
|
export interface ViewPresetDialog {
|
|
@@ -113,6 +115,7 @@ export interface OnSuccesViewPresetActionPayload extends ViewPresetAction {
|
|
|
113
115
|
title: string;
|
|
114
116
|
componentType?: string;
|
|
115
117
|
scope?: PresetScope;
|
|
118
|
+
abstract?: string;
|
|
116
119
|
}
|
|
117
120
|
export interface SelectViewPresetPayload extends ViewPresetAction {
|
|
118
121
|
viewPresetId: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { viewPresetsListActions,
|
|
1
|
+
export { viewPresetsListActions, viewPresetsListReducer } from './reducer';
|
|
2
2
|
export * as viewPresetsListSelectors from './selectors';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ViewPresetListItem, ViewPresetListState } from './types';
|
|
2
2
|
export declare const viewPresetsListAdapter: import("@reduxjs/toolkit").EntityAdapter<ViewPresetListItem>;
|
|
3
3
|
export declare const initialState: ViewPresetListState;
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const viewPresetsListActions: import("@reduxjs/toolkit").CaseReducerActions<{}, "viewPresetsList">;
|
|
4
|
+
export declare const viewPresetsListReducer: import("redux").Reducer<ViewPresetListState>, viewPresetsListActions: import("@reduxjs/toolkit").CaseReducerActions<{}, "viewPresetsList">;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { workspaceActions, workspaceReducer } from './reducer';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { Reducer } from '@reduxjs/toolkit';
|
|
1
2
|
import { WorkspaceAddViewPayload, WorkspaceDeleteViewPayload, WorkspaceState, WorkspaceSetPresetPayload, WorkspaceSetPreventCloseViewPayload, WorkspaceUpdateViewPayload, WorkspaceUpdateViewsPayload, WorkspaceErrorWorkspacePayload, WorkspaceFetchedWorkspacePayload, WorkspaceFetchWorkspacePayload, WorkspaceFetchWorkspaceViewPresetPayload, WorkspaceSaveWorkspacePresetPayload, WorkspaceSetNewViewPayload, WorkspaceChangeToEmptyMapWorkspacePayload } from './types';
|
|
2
3
|
export declare const initialState: WorkspaceState;
|
|
3
|
-
export declare const
|
|
4
|
+
export declare const workspaceReducer: Reducer<WorkspaceState>;
|
|
4
5
|
export declare const workspaceActions: {
|
|
5
6
|
addWorkspaceView: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceAddViewPayload, "workspace/addWorkspaceView">;
|
|
6
7
|
setNewWorkspaceView: import("@reduxjs/toolkit").ActionCreatorWithPayload<WorkspaceSetNewViewPayload, "workspace/setNewWorkspaceView">;
|
|
@@ -133,7 +133,7 @@ export declare const getWorkspaceData: ((state: AppStore & import("@opengeoweb/s
|
|
|
133
133
|
title: string;
|
|
134
134
|
syncGroups: {
|
|
135
135
|
id: string;
|
|
136
|
-
type: import("dist/libs/store/src/store/generic/
|
|
136
|
+
type: import("dist/libs/store/src/store/generic/syncGroups/types").SyncType;
|
|
137
137
|
}[];
|
|
138
138
|
views: {
|
|
139
139
|
mosaicNodeId: string;
|
|
@@ -145,12 +145,12 @@ export declare const getWorkspaceData: ((state: AppStore & import("@opengeoweb/s
|
|
|
145
145
|
mosaicNode: import("react-mosaic-component").MosaicNode<string>;
|
|
146
146
|
isTimeScrollingEnabled: boolean;
|
|
147
147
|
linking: Pick<Record<string, string[]>, string>;
|
|
148
|
-
}) & import("reselect").OutputSelectorFields<(args_0: WorkspaceState, args_1: import("../viewPresets/types").ViewPresetState, args_2: import("dist/libs/store/src/store/generic/
|
|
148
|
+
}) & import("reselect").OutputSelectorFields<(args_0: WorkspaceState, args_1: import("../viewPresets/types").ViewPresetState, args_2: import("dist/libs/store/src/store/generic/syncGroups/types").SynchronizationGroupState) => {
|
|
149
149
|
id: string | undefined;
|
|
150
150
|
title: string;
|
|
151
151
|
syncGroups: {
|
|
152
152
|
id: string;
|
|
153
|
-
type: import("dist/libs/store/src/store/generic/
|
|
153
|
+
type: import("dist/libs/store/src/store/generic/syncGroups/types").SyncType;
|
|
154
154
|
}[];
|
|
155
155
|
views: {
|
|
156
156
|
mosaicNodeId: string;
|
|
@@ -6,6 +6,7 @@ export type WorkspaceViewPresetComponentsLookupType = 'ViewError' | 'ViewLoading
|
|
|
6
6
|
export interface WorkspaceViewType {
|
|
7
7
|
id?: string;
|
|
8
8
|
title?: string;
|
|
9
|
+
abstract?: string;
|
|
9
10
|
componentType: string | WorkspaceViewPresetComponentsLookupType;
|
|
10
11
|
initialProps?: InitialPropsWorkspaceViewType;
|
|
11
12
|
activeLayerId?: string;
|
|
@@ -4,8 +4,7 @@ import { OpenWorkspaceActionDialogPayload, FetchedWorkspaceList, WorkspaceListSt
|
|
|
4
4
|
export declare const workspaceListFilterOptions: WorkspaceListFilter[];
|
|
5
5
|
export declare const workspaceListAdapter: import("@reduxjs/toolkit").EntityAdapter<WorkspacePresetListItem>;
|
|
6
6
|
export declare const initialState: WorkspaceListState;
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const workspaceListActions: import("@reduxjs/toolkit").CaseReducerActions<{
|
|
7
|
+
export declare const workspaceListReducer: import("redux").Reducer<WorkspaceListState>, workspaceListActions: import("@reduxjs/toolkit").CaseReducerActions<{
|
|
9
8
|
fetchWorkspaceList: (draft: Draft<WorkspaceListState>, action: PayloadAction<FetchWorkspaceList>) => void;
|
|
10
9
|
fetchedWorkspaceList: (draft: Draft<WorkspaceListState>, action: PayloadAction<FetchedWorkspaceList>) => void;
|
|
11
10
|
errorWorkspaceList: (draft: Draft<WorkspaceListState>, action: PayloadAction<ErrorWorkspaceList>) => void;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ListenerMiddleware, ReducersMapObject } from '@reduxjs/toolkit';
|
|
2
|
-
import { WorkspaceModuleStore } from './types';
|
|
3
|
-
export declare const workspaceReducersMap: ReducersMapObject;
|
|
4
|
-
export declare const workspaceMiddlewares: ListenerMiddleware<WorkspaceModuleStore>[];
|
|
5
|
-
declare const workspaceModuleConfig: {
|
|
6
|
-
reducersMap: ReducersMapObject<any, import("redux").Action<any>>;
|
|
7
|
-
middlewares: ListenerMiddleware<WorkspaceModuleStore>[];
|
|
8
|
-
};
|
|
9
|
-
export default workspaceModuleConfig;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { uiTypes, WebMapStateModuleState } from '@opengeoweb/store';
|
|
2
|
-
import { Store } from '@reduxjs/toolkit';
|
|
3
|
-
import { WorkspaceModuleStore } from '../store/types';
|
|
4
|
-
export declare const createMockStore: (mockState: WorkspaceModuleStore & uiTypes.UIModuleState & WebMapStateModuleState) => Store;
|