@opengeoweb/workspace 12.6.0 → 12.8.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 +138 -53
- package/package.json +16 -16
- package/src/lib/api/viewpresets-api/api.d.ts +1 -0
- package/src/lib/api/viewpresets-api/fakeApi.d.ts +1 -0
- package/src/lib/api/viewpresets-api/hooks.d.ts +7 -0
- package/src/lib/components/ViewPresetMenu/ViewPresetsError.stories.d.ts +7 -0
- package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialog.d.ts +3 -0
- package/src/lib/components/ViewPresetsFormDialog/ViewPresetsFormDialog.stories.d.ts +11 -1
- package/src/lib/components/WorkspaceView/WorkspaceControls.d.ts +1 -0
- package/src/lib/store/viewPresetsList/selectors.d.ts +1 -1
- package/src/lib/store/workspace/selectors.d.ts +36 -496
- package/src/lib/store/workspace/types.d.ts +0 -1
- package/src/lib/store/workspaceList/selectors.d.ts +3 -2
- package/src/lib/utils/api.d.ts +0 -1
- /package/{index.esm.d.ts → index.d.ts} +0 -0
package/index.esm.js
CHANGED
|
@@ -109,7 +109,9 @@ var en = {
|
|
|
109
109
|
"workspace-dialog-confirm-reset-view-message": "The view will be reset and all changes will be lost. Are you sure you want to continue?",
|
|
110
110
|
"workspace-viewpreset-success-reset": "View preset \"{{TITLE}}\" has been reset succesfully",
|
|
111
111
|
"workspace-viewpreset-success-share": "View preset \"{{TITLE}}\" has been successfully shared",
|
|
112
|
-
"workspace-viewpreset-success-unshare": "View preset \"{{TITLE}}\" has been successfully unshared"
|
|
112
|
+
"workspace-viewpreset-success-unshare": "View preset \"{{TITLE}}\" has been successfully unshared",
|
|
113
|
+
"workspace-loading-indicator-loading": "Loading",
|
|
114
|
+
"workspace-loading-indicator-idle": "Loaded"
|
|
113
115
|
};
|
|
114
116
|
var fi = {
|
|
115
117
|
"workspace-menu": "Workspace menu",
|
|
@@ -190,7 +192,9 @@ var fi = {
|
|
|
190
192
|
"workspace-dialog-confirm-reset-view-message": "ei käännetty",
|
|
191
193
|
"workspace-viewpreset-success-reset": "ei käännetty",
|
|
192
194
|
"workspace-viewpreset-success-share": "ei käännetty",
|
|
193
|
-
"workspace-viewpreset-success-unshare": "ei käännetty"
|
|
195
|
+
"workspace-viewpreset-success-unshare": "ei käännetty",
|
|
196
|
+
"workspace-loading-indicator-loading": "Ladataan",
|
|
197
|
+
"workspace-loading-indicator-idle": "Ladattu"
|
|
194
198
|
};
|
|
195
199
|
var no = {
|
|
196
200
|
"workspace-menu": "Arbeidsflater",
|
|
@@ -272,7 +276,9 @@ var no = {
|
|
|
272
276
|
"workspace-dialog-confirm-reset-view-message": "Endringer i dette vinduet blir tapt. Er du sikker på at du vil fortsette?",
|
|
273
277
|
"workspace-viewpreset-success-reset": "Vinduet er tilbakestilt",
|
|
274
278
|
"workspace-viewpreset-success-share": "Vinduet \"{{TITLE}}\" har blitt delt",
|
|
275
|
-
"workspace-viewpreset-success-unshare": "Vinduet \"{{TITLE}}\" deles ikke lenger"
|
|
279
|
+
"workspace-viewpreset-success-unshare": "Vinduet \"{{TITLE}}\" deles ikke lenger",
|
|
280
|
+
"workspace-loading-indicator-loading": "Laster inn",
|
|
281
|
+
"workspace-loading-indicator-idle": "Lastet inn"
|
|
276
282
|
};
|
|
277
283
|
var nl = {
|
|
278
284
|
"workspace-menu": "Workspace menu",
|
|
@@ -356,7 +362,9 @@ var nl = {
|
|
|
356
362
|
"workspace-dialog-confirm-reset-view-message": "De viewpreset zal worden hersteld en alle aanpassing zullen worden verwijderd. Weet je zeker dat je door wilt gaan?",
|
|
357
363
|
"workspace-viewpreset-success-reset": "Viewpreset \"{{TITLE}}\" succesvol hersteld naar origineel",
|
|
358
364
|
"workspace-viewpreset-success-share": "niet vertaald",
|
|
359
|
-
"workspace-viewpreset-success-unshare": "niet vertaald"
|
|
365
|
+
"workspace-viewpreset-success-unshare": "niet vertaald",
|
|
366
|
+
"workspace-loading-indicator-loading": "Aan het laden",
|
|
367
|
+
"workspace-loading-indicator-idle": "Klaar met laden"
|
|
360
368
|
};
|
|
361
369
|
var workspaceTranslations = {
|
|
362
370
|
en: en,
|
|
@@ -766,9 +774,6 @@ var getApiRoutes$1 = function getApiRoutes(axiosInstance) {
|
|
|
766
774
|
var headerLocation = response == null ? void 0 : response.request.getResponseHeader('Location');
|
|
767
775
|
return getIdFromUrl(headerLocation);
|
|
768
776
|
});
|
|
769
|
-
},
|
|
770
|
-
deleteViewPreset: function deleteViewPreset(viewPresetId) {
|
|
771
|
-
return axiosInstance["delete"]("/viewpreset/" + viewPresetId);
|
|
772
777
|
}
|
|
773
778
|
};
|
|
774
779
|
};
|
|
@@ -1233,7 +1238,7 @@ var viewPresetsAdapter = createEntityAdapter({
|
|
|
1233
1238
|
var initialState$2 = viewPresetsAdapter.getInitialState();
|
|
1234
1239
|
var warningsPresetChangeActions = [publicWarningActions.setWarningFilters];
|
|
1235
1240
|
var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
|
|
1236
|
-
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];
|
|
1241
|
+
var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, mapActions.layerMoveLayer, mapActions.setAutoLayerId, mapActions.setAutoTimestepLayerId, mapActions.setAutoUpdateLayerId, mapActions.toggleAutoUpdate, mapActions.mapStartAnimation, mapActions.mapStopAnimation, mapActions.toggleTimeSliderIsVisible, mapActions.setTimeStep, mapActions.setTimeSliderSpan, mapActions.toggleTimeSpanAuto, mapActions.setAnimationDelay, mapActions.toggleTimestepAuto, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox];
|
|
1237
1242
|
var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle];
|
|
1238
1243
|
var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
|
|
1239
1244
|
var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
|
|
@@ -2036,7 +2041,7 @@ var slice$1 = createSlice({
|
|
|
2036
2041
|
draft.hasChanges = false;
|
|
2037
2042
|
draft.scope = action.payload.scope || 'user';
|
|
2038
2043
|
}
|
|
2039
|
-
if (action.payload.action === WorkspacePresetAction.EDIT) {
|
|
2044
|
+
if (action.payload.action === WorkspacePresetAction.EDIT && action.payload.workspaceId === draft.id) {
|
|
2040
2045
|
draft.title = action.payload.title;
|
|
2041
2046
|
draft["abstract"] = action.payload["abstract"];
|
|
2042
2047
|
}
|
|
@@ -2163,7 +2168,7 @@ var getViewPresetActiveId = createSelector(getViewPresetById, function (_store,
|
|
|
2163
2168
|
}, function (viewPreset) {
|
|
2164
2169
|
return viewPreset == null ? void 0 : viewPreset.activeViewPresetId;
|
|
2165
2170
|
}, selectorMemoizationOptions);
|
|
2166
|
-
|
|
2171
|
+
createSelector(getViewPresets, function (store, mapId) {
|
|
2167
2172
|
return mapId;
|
|
2168
2173
|
}, function (viewPresets, mapId) {
|
|
2169
2174
|
var _viewPresets$find$pan, _viewPresets$find;
|
|
@@ -4784,11 +4789,6 @@ var getApiRoutes = function getApiRoutes(axiosInstance) {
|
|
|
4784
4789
|
return axiosInstance.post("/viewpreset/", data).then(function () {
|
|
4785
4790
|
return null;
|
|
4786
4791
|
});
|
|
4787
|
-
},
|
|
4788
|
-
deleteViewPreset: function deleteViewPreset(presetId) {
|
|
4789
|
-
// eslint-disable-next-line no-console
|
|
4790
|
-
console.log('api: delete view preset', presetId);
|
|
4791
|
-
return axiosInstance["delete"]("/viewpreset/" + presetId);
|
|
4792
4792
|
}
|
|
4793
4793
|
};
|
|
4794
4794
|
};
|
|
@@ -5282,6 +5282,9 @@ var selectors = workspaceListAdapter.getSelectors(function (state) {
|
|
|
5282
5282
|
};
|
|
5283
5283
|
});
|
|
5284
5284
|
var getWorkspaceList = selectors.selectAll;
|
|
5285
|
+
var getWorkspacePresetFromList = function getWorkspacePresetFromList(store, id) {
|
|
5286
|
+
return selectors.selectById(store, id);
|
|
5287
|
+
};
|
|
5285
5288
|
var getIsWorkspaceListFetching = createSelector(getWorkspaceListStore, function (store) {
|
|
5286
5289
|
return store;
|
|
5287
5290
|
}, function (state) {
|
|
@@ -6350,6 +6353,12 @@ var updateViewPreset = function updateViewPreset(viewpresetId, data, auth) {
|
|
|
6350
6353
|
body: JSON.stringify(data)
|
|
6351
6354
|
}).then(handleResponse);
|
|
6352
6355
|
};
|
|
6356
|
+
var deleteViewPreset = function deleteViewPreset(viewPresetId, auth) {
|
|
6357
|
+
return fetch(presetBaseUrl$1 + "/viewpreset/" + viewPresetId, {
|
|
6358
|
+
method: 'DELETE',
|
|
6359
|
+
headers: getHeaders(auth)
|
|
6360
|
+
}).then(handleResponse);
|
|
6361
|
+
};
|
|
6353
6362
|
|
|
6354
6363
|
var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 46;
|
|
6355
6364
|
var getPresetIcon = function getPresetIcon(preset) {
|
|
@@ -7058,13 +7067,23 @@ var LoadingIndicatorConnect = function LoadingIndicatorConnect(_ref) {
|
|
|
7058
7067
|
var isLoading = useSelector(function (store) {
|
|
7059
7068
|
return loadingIndicatorSelectors.isLoading(store, panelId);
|
|
7060
7069
|
});
|
|
7061
|
-
|
|
7062
|
-
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7067
|
-
|
|
7070
|
+
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
7071
|
+
t = _useWorkspaceTranslat.t;
|
|
7072
|
+
return jsx(CustomTooltip, {
|
|
7073
|
+
title: isLoading ? t('workspace-loading-indicator-loading') : t('workspace-loading-indicator-idle'),
|
|
7074
|
+
children: jsx("span", {
|
|
7075
|
+
style: {
|
|
7076
|
+
height: '100%'
|
|
7077
|
+
},
|
|
7078
|
+
children: isLoading ? jsx(CloudLoading, {
|
|
7079
|
+
"data-testid": "cloudicon-loading",
|
|
7080
|
+
style: {
|
|
7081
|
+
fill: '#186DFF'
|
|
7082
|
+
}
|
|
7083
|
+
}) : jsx(CloudIdle, {
|
|
7084
|
+
"data-testid": "cloudicon-idle"
|
|
7085
|
+
})
|
|
7086
|
+
})
|
|
7068
7087
|
});
|
|
7069
7088
|
};
|
|
7070
7089
|
|
|
@@ -7359,6 +7378,12 @@ var LinkMenuConnect = function LinkMenuConnect(_ref) {
|
|
|
7359
7378
|
var viewComponentType = useSelector(function (store) {
|
|
7360
7379
|
return getViewComponentType(store, panelId);
|
|
7361
7380
|
});
|
|
7381
|
+
var sharedFeature = useSelector(function (store) {
|
|
7382
|
+
return genericSelectors.getSelectedFeature(store.syncGroups, panelId);
|
|
7383
|
+
});
|
|
7384
|
+
var mapPinLocation = useSelector(function (store) {
|
|
7385
|
+
return mapSelectors.getPinLocation(store, selectedMapIds[0] || '');
|
|
7386
|
+
});
|
|
7362
7387
|
var handleLinkViews = function handleLinkViews(event) {
|
|
7363
7388
|
setAnchorEl(event.currentTarget);
|
|
7364
7389
|
};
|
|
@@ -7373,6 +7398,25 @@ var LinkMenuConnect = function LinkMenuConnect(_ref) {
|
|
|
7373
7398
|
panelId: panelId,
|
|
7374
7399
|
mapIds: updatedMapIds
|
|
7375
7400
|
}));
|
|
7401
|
+
// Sync pin to newly added map for TimeSeries components
|
|
7402
|
+
if (!selectedMapIds.includes(mapId) && viewComponentType === 'TimeSeries') {
|
|
7403
|
+
// Observation station
|
|
7404
|
+
if (sharedFeature) {
|
|
7405
|
+
dispatch(mapActions.setMapPinLocation({
|
|
7406
|
+
mapId: mapId,
|
|
7407
|
+
mapPinLocation: {
|
|
7408
|
+
lon: sharedFeature.lon,
|
|
7409
|
+
lat: sharedFeature.lat
|
|
7410
|
+
}
|
|
7411
|
+
}));
|
|
7412
|
+
// Grid
|
|
7413
|
+
} else if (mapPinLocation) {
|
|
7414
|
+
dispatch(mapActions.setMapPinLocation({
|
|
7415
|
+
mapId: mapId,
|
|
7416
|
+
mapPinLocation: mapPinLocation
|
|
7417
|
+
}));
|
|
7418
|
+
}
|
|
7419
|
+
}
|
|
7376
7420
|
};
|
|
7377
7421
|
return jsxs(Fragment, {
|
|
7378
7422
|
children: [linkComponentTypesConstants.supportedComponentTypesForLinking.includes(viewComponentType) && jsx(CustomIconButton, {
|
|
@@ -7461,7 +7505,8 @@ var WorkspaceControls = function WorkspaceControls(_ref) {
|
|
|
7461
7505
|
createNode = _ref.createNode,
|
|
7462
7506
|
path = _ref.path,
|
|
7463
7507
|
_ref$shouldPreventClo = _ref.shouldPreventCloseView,
|
|
7464
|
-
shouldPreventCloseView = _ref$shouldPreventClo === void 0 ? false : _ref$shouldPreventClo
|
|
7508
|
+
shouldPreventCloseView = _ref$shouldPreventClo === void 0 ? false : _ref$shouldPreventClo,
|
|
7509
|
+
removeLinkedMap = _ref.removeLinkedMap;
|
|
7465
7510
|
var confirmDialog = useConfirmationDialog();
|
|
7466
7511
|
var _React$useContext = React.useContext(MosaicContext),
|
|
7467
7512
|
actions = _React$useContext.mosaicActions;
|
|
@@ -7497,7 +7542,7 @@ var WorkspaceControls = function WorkspaceControls(_ref) {
|
|
|
7497
7542
|
while (1) switch (_context.prev = _context.next) {
|
|
7498
7543
|
case 0:
|
|
7499
7544
|
if (!shouldPreventCloseView) {
|
|
7500
|
-
_context.next =
|
|
7545
|
+
_context.next = 7;
|
|
7501
7546
|
break;
|
|
7502
7547
|
}
|
|
7503
7548
|
_context.next = 3;
|
|
@@ -7508,11 +7553,13 @@ var WorkspaceControls = function WorkspaceControls(_ref) {
|
|
|
7508
7553
|
});
|
|
7509
7554
|
case 3:
|
|
7510
7555
|
actions.remove(path);
|
|
7511
|
-
|
|
7556
|
+
removeLinkedMap(panelId);
|
|
7557
|
+
_context.next = 9;
|
|
7512
7558
|
break;
|
|
7513
|
-
case 6:
|
|
7514
|
-
actions.remove(path);
|
|
7515
7559
|
case 7:
|
|
7560
|
+
actions.remove(path);
|
|
7561
|
+
removeLinkedMap(panelId);
|
|
7562
|
+
case 9:
|
|
7516
7563
|
case "end":
|
|
7517
7564
|
return _context.stop();
|
|
7518
7565
|
}
|
|
@@ -7625,6 +7672,9 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
7625
7672
|
panelId: panelId
|
|
7626
7673
|
}));
|
|
7627
7674
|
}, [dispatch]);
|
|
7675
|
+
var removeLinkedMap = React.useCallback(function (panelId) {
|
|
7676
|
+
dispatch(genericActions.removeLinkedMap(panelId));
|
|
7677
|
+
}, [dispatch]);
|
|
7628
7678
|
var toggleViewPresetDialog = React.useCallback(function (_ref4) {
|
|
7629
7679
|
var panelId = _ref4.panelId,
|
|
7630
7680
|
isViewPresetDialogOpen = _ref4.isViewPresetDialogOpen;
|
|
@@ -7655,28 +7705,16 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
7655
7705
|
});
|
|
7656
7706
|
};
|
|
7657
7707
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
7658
|
-
}, [
|
|
7659
|
-
var connectedMap = useSelector(function (store) {
|
|
7660
|
-
var _initialProps$plotPre;
|
|
7661
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7662
|
-
var initialProps = view == null ? void 0 : view.initialProps;
|
|
7663
|
-
var mapId = initialProps == null || (_initialProps$plotPre = initialProps.plotPreset) == null ? void 0 : _initialProps$plotPre.mapId;
|
|
7664
|
-
if (mapId) {
|
|
7665
|
-
var viewPresetPanelId = getViewPresetPanelId(store, mapId);
|
|
7666
|
-
return viewPresetPanelId && viewPresetPanelId.length > 0 ? viewPresetPanelId : undefined;
|
|
7667
|
-
}
|
|
7668
|
-
return undefined;
|
|
7669
|
-
});
|
|
7708
|
+
}, [registerView, unregisterView]);
|
|
7670
7709
|
// generic componentsLookUp
|
|
7671
7710
|
var genericComponentsLookupResult = React.useMemo(function () {
|
|
7672
7711
|
return componentsLookUp({
|
|
7673
7712
|
title: title,
|
|
7674
7713
|
id: mosaicNodeId,
|
|
7675
7714
|
componentType: view == null ? void 0 : view.componentType,
|
|
7676
|
-
initialProps: view == null ? void 0 : view.initialProps
|
|
7677
|
-
connectedMap: connectedMap
|
|
7715
|
+
initialProps: view == null ? void 0 : view.initialProps
|
|
7678
7716
|
});
|
|
7679
|
-
}, [componentsLookUp,
|
|
7717
|
+
}, [componentsLookUp, mosaicNodeId, title, view == null ? void 0 : view.componentType, view == null ? void 0 : view.initialProps]);
|
|
7680
7718
|
// default componentsLookUp
|
|
7681
7719
|
var defaultComponentsLookupResult = React.useMemo(function () {
|
|
7682
7720
|
return defaultComponentsLookUp({
|
|
@@ -7696,7 +7734,8 @@ var WorkspaceTileConnect = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
7696
7734
|
panelId: mosaicNodeId,
|
|
7697
7735
|
createNode: createNode,
|
|
7698
7736
|
path: path,
|
|
7699
|
-
shouldPreventCloseView: shouldPreventCloseView
|
|
7737
|
+
shouldPreventCloseView: shouldPreventCloseView,
|
|
7738
|
+
removeLinkedMap: removeLinkedMap
|
|
7700
7739
|
}),
|
|
7701
7740
|
children: [isViewPresetsFetching && jsx(LinearProgress, {
|
|
7702
7741
|
"data-testid": "loading-bar",
|
|
@@ -8391,7 +8430,8 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
|
|
|
8391
8430
|
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
8392
8431
|
t = _useWorkspaceTranslat.t;
|
|
8393
8432
|
var _useAuthenticationCon = useAuthenticationContext(),
|
|
8394
|
-
currentRole = _useAuthenticationCon.currentRole
|
|
8433
|
+
currentRole = _useAuthenticationCon.currentRole,
|
|
8434
|
+
auth = _useAuthenticationCon.auth;
|
|
8395
8435
|
var isAdmin = (currentRole == null ? void 0 : currentRole.name) === GEOWEB_ROLE_PRESETS_ADMIN.name;
|
|
8396
8436
|
var _useAuthenticationCon2 = useAuthenticationContext(),
|
|
8397
8437
|
isLoggedIn = _useAuthenticationCon2.isLoggedIn;
|
|
@@ -8404,12 +8444,17 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
|
|
|
8404
8444
|
var workspaceData = useSelector(function (store) {
|
|
8405
8445
|
return getWorkspaceData(store);
|
|
8406
8446
|
});
|
|
8447
|
+
var currentWorkspacePreset = useSelector(function (store) {
|
|
8448
|
+
return workspaceData.id ? getWorkspacePresetFromList(store, workspaceData.id) : undefined;
|
|
8449
|
+
});
|
|
8450
|
+
var workspaceCreator = (currentWorkspacePreset == null ? void 0 : currentWorkspacePreset.username) || '';
|
|
8407
8451
|
var viewIds = useSelector(function (store) {
|
|
8408
8452
|
return getViewIds(store);
|
|
8409
8453
|
});
|
|
8410
8454
|
var isNew = workspaceId === undefined || workspaceId === '';
|
|
8411
8455
|
var fullTitle = getPresetTitle(title, hasChanges, isNew, t);
|
|
8412
8456
|
var isUserPreset = workspaceScope === 'user';
|
|
8457
|
+
var isUserPresetCreator = (auth == null ? void 0 : auth.username) === workspaceCreator;
|
|
8413
8458
|
React.useEffect(function () {
|
|
8414
8459
|
setDocumentTitle(fullTitle, appTitle);
|
|
8415
8460
|
}, [fullTitle, appTitle]);
|
|
@@ -8490,7 +8535,7 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
|
|
|
8490
8535
|
if (isNew) {
|
|
8491
8536
|
return undefined; // to disable delete option
|
|
8492
8537
|
}
|
|
8493
|
-
if (isUserPreset) {
|
|
8538
|
+
if (isUserPreset && isUserPresetCreator) {
|
|
8494
8539
|
return onDelete;
|
|
8495
8540
|
}
|
|
8496
8541
|
return isAdmin ? onDeleteSystemPreset : undefined;
|
|
@@ -8499,7 +8544,7 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
|
|
|
8499
8544
|
if (isNew) {
|
|
8500
8545
|
return undefined;
|
|
8501
8546
|
}
|
|
8502
|
-
if (isUserPreset) {
|
|
8547
|
+
if (isUserPreset && isUserPresetCreator) {
|
|
8503
8548
|
return onSave;
|
|
8504
8549
|
}
|
|
8505
8550
|
return isAdmin ? onSaveSystemPreset : undefined;
|
|
@@ -8508,10 +8553,13 @@ var WorkspaceOptionsConnect = function WorkspaceOptionsConnect(_ref) {
|
|
|
8508
8553
|
return isAdmin ? onSaveSystemPresetAs : onSaveAs;
|
|
8509
8554
|
};
|
|
8510
8555
|
var handleEdit = function handleEdit() {
|
|
8511
|
-
if (
|
|
8556
|
+
if (isNew) {
|
|
8557
|
+
return undefined;
|
|
8558
|
+
}
|
|
8559
|
+
if (isAdmin) {
|
|
8512
8560
|
return onEdit;
|
|
8513
8561
|
}
|
|
8514
|
-
return isUserPreset ? onEdit : undefined;
|
|
8562
|
+
return isUserPreset && isUserPresetCreator ? onEdit : undefined;
|
|
8515
8563
|
};
|
|
8516
8564
|
return jsx(WorkspaceOptions, {
|
|
8517
8565
|
hasChanges: hasChanges,
|
|
@@ -8866,10 +8914,10 @@ var WorkspacePresetsFormDialog = function WorkspacePresetsFormDialog(_ref) {
|
|
|
8866
8914
|
var _useWorkspaceTranslat = useWorkspaceTranslation(),
|
|
8867
8915
|
t = _useWorkspaceTranslat.t;
|
|
8868
8916
|
React__default.useEffect(function () {
|
|
8869
|
-
if (
|
|
8917
|
+
if (isOpen) {
|
|
8870
8918
|
reset(formValues);
|
|
8871
8919
|
}
|
|
8872
|
-
}, [formValues, reset,
|
|
8920
|
+
}, [formValues, reset, isOpen]);
|
|
8873
8921
|
var getConfirmLabel = function getConfirmLabel(action) {
|
|
8874
8922
|
switch (action) {
|
|
8875
8923
|
case WorkspacePresetAction.DELETE:
|
|
@@ -9356,7 +9404,8 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
|
|
|
9356
9404
|
onSuccess = _ref.onSuccess,
|
|
9357
9405
|
onClose = _ref.onClose,
|
|
9358
9406
|
title = _ref.title,
|
|
9359
|
-
onReset = _ref.onReset
|
|
9407
|
+
onReset = _ref.onReset,
|
|
9408
|
+
onDelete = _ref.onDelete;
|
|
9360
9409
|
var _useFormContext = useFormContext(),
|
|
9361
9410
|
handleFormSubmit = _useFormContext.handleSubmit,
|
|
9362
9411
|
reset = _useFormContext.reset;
|
|
@@ -9432,7 +9481,9 @@ var ViewPresetsFormDialog = function ViewPresetsFormDialog(_ref) {
|
|
|
9432
9481
|
return _context.abrupt("break", 31);
|
|
9433
9482
|
case 14:
|
|
9434
9483
|
_context.next = 16;
|
|
9435
|
-
return
|
|
9484
|
+
return onDelete({
|
|
9485
|
+
id: viewPresetId
|
|
9486
|
+
});
|
|
9436
9487
|
case 16:
|
|
9437
9488
|
handleSuccess(viewPresetId);
|
|
9438
9489
|
return _context.abrupt("break", 31);
|
|
@@ -9552,6 +9603,37 @@ var ViewPresetsFormDialogWrapper = function ViewPresetsFormDialogWrapper(_ref5)
|
|
|
9552
9603
|
});
|
|
9553
9604
|
};
|
|
9554
9605
|
|
|
9606
|
+
/* *
|
|
9607
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
9608
|
+
* you may not use this file except in compliance with the License.
|
|
9609
|
+
* You may obtain a copy of the License at
|
|
9610
|
+
*
|
|
9611
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9612
|
+
*
|
|
9613
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
9614
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9615
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9616
|
+
* See the License for the specific language governing permissions and
|
|
9617
|
+
* limitations under the License.
|
|
9618
|
+
*
|
|
9619
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
9620
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
9621
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
9622
|
+
* */
|
|
9623
|
+
var useDeleteViewPreset = function useDeleteViewPreset() {
|
|
9624
|
+
var _useAuthenticationCon = useAuthenticationContext(),
|
|
9625
|
+
auth = _useAuthenticationCon.auth;
|
|
9626
|
+
return useMutation({
|
|
9627
|
+
mutationFn: function mutationFn(_ref) {
|
|
9628
|
+
var id = _ref.id;
|
|
9629
|
+
if (!auth) {
|
|
9630
|
+
throw new Error('Authentication context not found');
|
|
9631
|
+
}
|
|
9632
|
+
return deleteViewPreset(id, auth);
|
|
9633
|
+
}
|
|
9634
|
+
});
|
|
9635
|
+
};
|
|
9636
|
+
|
|
9555
9637
|
var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
|
|
9556
9638
|
var _ref$scope = _ref.scope,
|
|
9557
9639
|
scope = _ref$scope === void 0 ? 'user' : _ref$scope;
|
|
@@ -9563,6 +9645,8 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
|
|
|
9563
9645
|
var viewComponentType = useSelector(function (store) {
|
|
9564
9646
|
return getViewComponentType(store, panelId);
|
|
9565
9647
|
});
|
|
9648
|
+
var _useDeleteViewPreset = useDeleteViewPreset(),
|
|
9649
|
+
deleteViewPreset = _useDeleteViewPreset.mutateAsync;
|
|
9566
9650
|
var onReset = React__default.useCallback(function (viewPresetId) {
|
|
9567
9651
|
dispatch(viewPresetActions.selectViewPreset({
|
|
9568
9652
|
panelId: panelId,
|
|
@@ -9596,7 +9680,8 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
|
|
|
9596
9680
|
action: (dialogOptions == null ? void 0 : dialogOptions.action) || PresetAction.SAVE,
|
|
9597
9681
|
title: (dialogOptions == null ? void 0 : dialogOptions.title) || '',
|
|
9598
9682
|
viewPresetId: (dialogOptions == null ? void 0 : dialogOptions.viewPresetId) || '',
|
|
9599
|
-
onReset: onReset
|
|
9683
|
+
onReset: onReset,
|
|
9684
|
+
onDelete: deleteViewPreset
|
|
9600
9685
|
});
|
|
9601
9686
|
};
|
|
9602
9687
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/workspace",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.8.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.
|
|
13
|
-
"@opengeoweb/store": "12.
|
|
14
|
-
"@opengeoweb/api": "12.
|
|
12
|
+
"@opengeoweb/shared": "12.8.0",
|
|
13
|
+
"@opengeoweb/store": "12.8.0",
|
|
14
|
+
"@opengeoweb/api": "12.8.0",
|
|
15
15
|
"react-hook-form": "^7.50.1",
|
|
16
|
-
"@opengeoweb/theme": "12.
|
|
16
|
+
"@opengeoweb/theme": "12.8.0",
|
|
17
17
|
"@reduxjs/toolkit": "^2.6.1",
|
|
18
|
-
"@opengeoweb/snackbar": "12.
|
|
18
|
+
"@opengeoweb/snackbar": "12.8.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.
|
|
25
|
-
"@opengeoweb/timeseries": "12.
|
|
26
|
-
"@opengeoweb/authentication": "12.
|
|
27
|
-
"@opengeoweb/core": "12.
|
|
28
|
-
"@opengeoweb/taf": "12.
|
|
29
|
-
"@opengeoweb/sigmet-airmet": "12.
|
|
30
|
-
"@opengeoweb/warnings": "12.
|
|
31
|
-
"@opengeoweb/spaceweather": "12.
|
|
24
|
+
"@opengeoweb/form-fields": "12.8.0",
|
|
25
|
+
"@opengeoweb/timeseries": "12.8.0",
|
|
26
|
+
"@opengeoweb/authentication": "12.8.0",
|
|
27
|
+
"@opengeoweb/core": "12.8.0",
|
|
28
|
+
"@opengeoweb/taf": "12.8.0",
|
|
29
|
+
"@opengeoweb/sigmet-airmet": "12.8.0",
|
|
30
|
+
"@opengeoweb/warnings": "12.8.0",
|
|
31
|
+
"@opengeoweb/spaceweather": "12.8.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.
|
|
35
|
+
"@opengeoweb/webmap-react": "12.8.0",
|
|
36
36
|
"@tanstack/react-query": "^5.69.2"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"module": "./index.esm.js",
|
|
44
44
|
"type": "module",
|
|
45
45
|
"main": "./index.esm.js",
|
|
46
|
-
"types": "./index.
|
|
46
|
+
"types": "./index.d.ts"
|
|
47
47
|
}
|
|
@@ -2,3 +2,4 @@ import { Credentials } from '@opengeoweb/api';
|
|
|
2
2
|
import { ViewPresetListItem } from '../../store/workspace/types';
|
|
3
3
|
export declare const getViewPreset: (viewpresetId: string, auth: Credentials) => Promise<ViewPresetListItem>;
|
|
4
4
|
export declare const updateViewPreset: (viewpresetId: string, data: ViewPresetListItem, auth: Credentials) => Promise<null>;
|
|
5
|
+
export declare const deleteViewPreset: (viewPresetId: string, auth: Credentials) => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const viewPresetsEndpoints: import("msw").HttpHandler[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
export declare const useDeleteViewPreset: () => UseMutationResult<void, // return type from mutationFn
|
|
3
|
+
unknown, // error type (can be more specific if needed)
|
|
4
|
+
{
|
|
5
|
+
id: string;
|
|
6
|
+
}, // variables (input argument)
|
|
7
|
+
unknown>;
|
|
@@ -12,6 +12,13 @@ export declare const GetViewPresetsError: {
|
|
|
12
12
|
export declare const DeleteViewPresetError: {
|
|
13
13
|
(): React.ReactElement;
|
|
14
14
|
storyName: string;
|
|
15
|
+
parameters: {
|
|
16
|
+
msw: {
|
|
17
|
+
handlers: {
|
|
18
|
+
viewPresets: import("msw").HttpHandler[];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
15
22
|
};
|
|
16
23
|
export declare const DuplicateViewPresetError: {
|
|
17
24
|
(): React.ReactElement;
|
|
@@ -10,6 +10,9 @@ export interface ViewPresetsFormDialogProps {
|
|
|
10
10
|
onSuccess: (action: PresetAction, presetId: string, title: string, abstract: string) => void;
|
|
11
11
|
onClose: () => void;
|
|
12
12
|
onReset: (viewPresetId: string) => void;
|
|
13
|
+
onDelete: (variables: {
|
|
14
|
+
id: string;
|
|
15
|
+
}) => Promise<void>;
|
|
13
16
|
}
|
|
14
17
|
declare const ViewPresetsFormDialogWrapper: React.FC<ViewPresetsFormDialogProps>;
|
|
15
18
|
export default ViewPresetsFormDialogWrapper;
|
|
@@ -11,4 +11,14 @@ export declare const DeleteDemoDarkTheme: Story;
|
|
|
11
11
|
export declare const EditDemoLightTheme: Story;
|
|
12
12
|
export declare const EditDemoDarkTheme: Story;
|
|
13
13
|
export declare const SaveAsWithError: () => React.ReactElement;
|
|
14
|
-
export declare const DeleteWithError:
|
|
14
|
+
export declare const DeleteWithError: {
|
|
15
|
+
(): React.ReactElement;
|
|
16
|
+
storyName: string;
|
|
17
|
+
parameters: {
|
|
18
|
+
msw: {
|
|
19
|
+
handlers: {
|
|
20
|
+
viewPresets: import("msw").HttpHandler[];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -5,6 +5,7 @@ interface WorkspaceControlsProps {
|
|
|
5
5
|
path: MosaicBranch[];
|
|
6
6
|
createNode?: () => MosaicNode<string>;
|
|
7
7
|
shouldPreventCloseView?: boolean;
|
|
8
|
+
removeLinkedMap: (panelId: string) => void;
|
|
8
9
|
}
|
|
9
10
|
declare const WorkspaceControls: React.FC<WorkspaceControlsProps>;
|
|
10
11
|
export default WorkspaceControls;
|
|
@@ -5,7 +5,7 @@ export declare const getViewPresetsList: (state: AppStore) => ViewPresetListItem
|
|
|
5
5
|
id: string;
|
|
6
6
|
title: string;
|
|
7
7
|
date: string;
|
|
8
|
-
scope: import("
|
|
8
|
+
scope: import("@opengeoweb/shared").SystemScope;
|
|
9
9
|
abstract?: string | undefined;
|
|
10
10
|
username?: string | undefined;
|
|
11
11
|
};
|