@opengeoweb/workspace 12.2.0 → 12.3.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 +26 -8
- package/package.json +18 -18
- package/src/lib/components/WorkspaceView/helpers.d.ts +2 -2
- package/src/lib/store/store.d.ts +11 -11
- package/src/lib/store/viewPresets/listener.d.ts +4 -4
- package/src/lib/store/viewPresets/reducer.d.ts +1 -1
- package/src/lib/store/viewPresets/selectors.d.ts +510 -34
- package/src/lib/store/viewPresets/types.d.ts +2 -2
- package/src/lib/store/viewPresetsList/reducer.d.ts +1 -1
- package/src/lib/store/viewPresetsList/selectors.d.ts +177 -4
- package/src/lib/store/viewPresetsList/types.d.ts +1 -1
- package/src/lib/store/workspace/listener.d.ts +3 -3
- package/src/lib/store/workspace/selectors.d.ts +1787 -67
- package/src/lib/store/workspaceList/listener.d.ts +1 -1
- package/src/lib/store/workspaceList/reducer.d.ts +1 -1
- package/src/lib/store/workspaceList/selectors.d.ts +305 -71
- package/src/lib/store/workspaceList/types.d.ts +1 -1
package/index.esm.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
2
2
|
import { syncGroupsTypes, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, createViewObjectForNewMap, mapListener, serviceListener, layersListener, syncGroupsListener, openlayersListener, uiReducer, loadingIndicatorReducer, syncGroupsReducer, layerReducer, serviceReducer, mapReducer, loadingIndicatorSelectors, uiTypes, linkComponentTypesConstants, uiSelectors } from '@opengeoweb/store';
|
|
3
|
-
import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider,
|
|
3
|
+
import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, getHeaders, handleResponse, useApiContext, useAuthenticationContext as useAuthenticationContext$1, GEOWEB_ROLE_PRESETS_ADMIN as GEOWEB_ROLE_PRESETS_ADMIN$1 } from '@opengeoweb/api';
|
|
4
4
|
import { chunk, cloneDeep, union, pick, isEmpty, isEqual, isString } from 'lodash';
|
|
5
5
|
import { getLeaves, createBalancedTreeFromLeaves, MosaicContext, getAndAssertNodeAtPathExists, MosaicWindow, Mosaic } from 'react-mosaic-component';
|
|
6
6
|
import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/timeseries';
|
|
7
7
|
import { publicWarningActions, warningsTranslations, WARN_NAMESPACE, publicWarningsSelectors } from '@opengeoweb/warnings';
|
|
8
|
-
import { PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, ConfirmationServiceProvider, usePrevious, AlertBanner, SystemScope, CustomTooltip, SearchHighlight, ToggleMenu, CustomIconButton, Filter, LastUpdateTime, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, useConfirmationDialog, ConfirmationButtons } from '@opengeoweb/shared';
|
|
8
|
+
import { PROJECTION, getAxiosErrorMessage, isAxiosAuthError, isAxiosError as isAxiosError$1, safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, ConfirmationServiceProvider, usePrevious, AlertBanner, sessionStorageProvider, SystemScope, CustomTooltip, SearchHighlight, ToggleMenu, CustomIconButton, Filter, LastUpdateTime, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, useConfirmationDialog, ConfirmationButtons } from '@opengeoweb/shared';
|
|
9
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';
|
|
@@ -20,7 +20,7 @@ import { coreTranslations, CORE_NAMESPACE } from '@opengeoweb/core';
|
|
|
20
20
|
import { formFieldsTranslations, FORM_FIELDS_NAMESPACE, ReactHookFormTextField, ReactHookFormHiddenInput, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
|
|
21
21
|
import * as React from 'react';
|
|
22
22
|
import React__default, { useCallback, useEffect } from 'react';
|
|
23
|
-
import { LinearProgress, Typography, styled, ListItemIcon, ListItem, ListItemButton, ListItemText,
|
|
23
|
+
import { LinearProgress, Typography, styled, ListItemIcon, ListItem, ListItemButton, ListItemText, Grid, Box, Menu, ListSubheader, MenuItem, useTheme, List, Checkbox, FormGroup, FormControlLabel, Tabs } from '@mui/material';
|
|
24
24
|
import 'react-mosaic-component/react-mosaic-component.css';
|
|
25
25
|
import AutoSizer from 'react-virtualized-auto-sizer';
|
|
26
26
|
import { FixedSizeList } from 'react-window';
|
|
@@ -5142,6 +5142,7 @@ workspaceListener.startListening({
|
|
|
5142
5142
|
actionCreator: workspaceActions.updateWorkspaceViews,
|
|
5143
5143
|
effect: function () {
|
|
5144
5144
|
var _effect9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(_, listenerApi) {
|
|
5145
|
+
var viewIds;
|
|
5145
5146
|
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
5146
5147
|
while (1) switch (_context12.prev = _context12.next) {
|
|
5147
5148
|
case 0:
|
|
@@ -5154,7 +5155,24 @@ workspaceListener.startListening({
|
|
|
5154
5155
|
/* This will trigger all maps and other components
|
|
5155
5156
|
to get the correct size after views are updated */
|
|
5156
5157
|
window.dispatchEvent(new Event('resize'));
|
|
5157
|
-
|
|
5158
|
+
// Adjust the bbox of the original view after the new map is added. This is a temporal solution until the OpenLayers ticket
|
|
5159
|
+
// https://github.com/openlayers/openlayers/issues/16572 is solved.
|
|
5160
|
+
_context12.next = 6;
|
|
5161
|
+
return listenerApi.delay(10);
|
|
5162
|
+
case 6:
|
|
5163
|
+
viewIds = getViewIds(listenerApi.getState());
|
|
5164
|
+
viewIds.forEach(function (viewId) {
|
|
5165
|
+
var bbox = mapSelectors.getBbox(listenerApi.getState(), viewId);
|
|
5166
|
+
var srs = mapSelectors.getSrs(listenerApi.getState(), viewId);
|
|
5167
|
+
if (bbox && bbox.left !== undefined && srs) {
|
|
5168
|
+
listenerApi.dispatch(mapActions.setBbox({
|
|
5169
|
+
mapId: viewId,
|
|
5170
|
+
bbox: bbox,
|
|
5171
|
+
srs: srs
|
|
5172
|
+
}));
|
|
5173
|
+
}
|
|
5174
|
+
});
|
|
5175
|
+
case 8:
|
|
5158
5176
|
case "end":
|
|
5159
5177
|
return _context12.stop();
|
|
5160
5178
|
}
|
|
@@ -6304,7 +6322,7 @@ var defaultComponentsLookUp = function defaultComponentsLookUp(_ref3) {
|
|
|
6304
6322
|
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
6305
6323
|
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6306
6324
|
* */
|
|
6307
|
-
var config$1 = getConfig();
|
|
6325
|
+
var config$1 = sessionStorageProvider.getConfig();
|
|
6308
6326
|
var presetBaseUrl$1 = (config$1 == null ? void 0 : config$1.GW_PRESET_BACKEND_URL) || '';
|
|
6309
6327
|
var getViewPreset = function getViewPreset(viewpresetId, auth) {
|
|
6310
6328
|
return fetch(presetBaseUrl$1 + "/viewpreset/" + viewpresetId, {
|
|
@@ -6452,12 +6470,12 @@ var WorkspaceSelectListRow = function WorkspaceSelectListRow(_ref) {
|
|
|
6452
6470
|
margin: 0
|
|
6453
6471
|
}
|
|
6454
6472
|
})
|
|
6455
|
-
}), isEditable && jsx(
|
|
6473
|
+
}), isEditable && jsx(Grid, {
|
|
6456
6474
|
sx: {
|
|
6457
6475
|
minWidth: 56,
|
|
6458
6476
|
marginLeft: 2
|
|
6459
6477
|
},
|
|
6460
|
-
children: jsxs(
|
|
6478
|
+
children: jsxs(Grid, {
|
|
6461
6479
|
children: [jsx(ToggleMenu, {
|
|
6462
6480
|
buttonTestId: testIdPrefix + "-listOptionsButton",
|
|
6463
6481
|
menuPosition: "right",
|
|
@@ -7875,7 +7893,7 @@ var WorkspaceViewConnect = function WorkspaceViewConnect(_ref) {
|
|
|
7875
7893
|
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
7876
7894
|
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
7877
7895
|
* */
|
|
7878
|
-
var config = getConfig();
|
|
7896
|
+
var config = sessionStorageProvider.getConfig();
|
|
7879
7897
|
var presetBaseUrl = (config == null ? void 0 : config.GW_PRESET_BACKEND_URL) || '';
|
|
7880
7898
|
var getWorkspace = function getWorkspace(workspaceId, auth) {
|
|
7881
7899
|
return fetch(presetBaseUrl + "/workspacepreset/" + workspaceId, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/workspace",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.3.0",
|
|
4
4
|
"description": "GeoWeb Workspace library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -8,31 +8,31 @@
|
|
|
8
8
|
"url": "git@gitlab.com:opengeoweb/opengeoweb.git"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"react-redux": "^
|
|
12
|
-
"@opengeoweb/shared": "12.
|
|
13
|
-
"@opengeoweb/store": "12.
|
|
14
|
-
"@opengeoweb/api": "12.
|
|
11
|
+
"react-redux": "^9.2.0",
|
|
12
|
+
"@opengeoweb/shared": "12.3.0",
|
|
13
|
+
"@opengeoweb/store": "12.3.0",
|
|
14
|
+
"@opengeoweb/api": "12.3.0",
|
|
15
15
|
"react-hook-form": "^7.50.1",
|
|
16
|
-
"@opengeoweb/theme": "12.
|
|
17
|
-
"@reduxjs/toolkit": "^
|
|
18
|
-
"@opengeoweb/snackbar": "12.
|
|
16
|
+
"@opengeoweb/theme": "12.3.0",
|
|
17
|
+
"@reduxjs/toolkit": "^2.6.1",
|
|
18
|
+
"@opengeoweb/snackbar": "12.3.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.3.0",
|
|
25
|
+
"@opengeoweb/timeseries": "12.3.0",
|
|
26
|
+
"@opengeoweb/authentication": "12.3.0",
|
|
27
|
+
"@opengeoweb/core": "12.3.0",
|
|
28
|
+
"@opengeoweb/taf": "12.3.0",
|
|
29
|
+
"@opengeoweb/sigmet-airmet": "12.3.0",
|
|
30
|
+
"@opengeoweb/warnings": "12.3.0",
|
|
31
|
+
"@opengeoweb/spaceweather": "12.3.0",
|
|
32
32
|
"i18next": "^23.11.5",
|
|
33
33
|
"react-i18next": "^15.1.1",
|
|
34
|
-
"@mui/material": "^
|
|
35
|
-
"@opengeoweb/webmap-react": "12.
|
|
34
|
+
"@mui/material": "^7.0.1",
|
|
35
|
+
"@opengeoweb/webmap-react": "12.3.0",
|
|
36
36
|
"@tanstack/react-query": "^5.69.2"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnknownAction } from '@reduxjs/toolkit';
|
|
2
2
|
import { MosaicNode } from 'react-mosaic-component';
|
|
3
3
|
export declare const getUniqueId: (existingIds: string[], count?: number) => string;
|
|
4
4
|
export declare const createBalancedMosaicNode: (currentNode: MosaicNode<string>) => MosaicNode<string>;
|
|
5
|
-
export declare const closeTimeSeriesDialogsWhenChangingPreset: (componentTypes: string[] | undefined, dispatch: (action:
|
|
5
|
+
export declare const closeTimeSeriesDialogsWhenChangingPreset: (componentTypes: string[] | undefined, dispatch: (action: UnknownAction) => void) => void;
|
package/src/lib/store/store.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { SnackbarModuleStore } from '@opengeoweb/snackbar';
|
|
2
2
|
import { WebMapStateModuleState, SynchronizationGroupModuleState, UIModuleState } from '@opengeoweb/store';
|
|
3
|
-
import {
|
|
3
|
+
import { Store } from '@reduxjs/toolkit';
|
|
4
4
|
import { WorkspaceModuleStore } from './types';
|
|
5
5
|
export declare const workspaceReducersMap: {
|
|
6
|
-
webmap: import("redux").Reducer<import("dist/libs/store/src/store/map/types").WebMapState, import("redux").
|
|
7
|
-
services: import("redux").Reducer<import("dist/libs/store/src/store/map/types").ServiceState, import("redux").
|
|
8
|
-
layers: import("redux").Reducer<import("dist/libs/store/src/store/map/types").LayerState, import("redux").
|
|
9
|
-
syncGroups: import("redux").Reducer<import("dist/libs/store/src/store/generic/syncGroups/types").SynchronizationGroupState, import("redux").
|
|
10
|
-
loadingIndicator: import("redux").Reducer<import("@reduxjs/toolkit").EntityState<import("dist/libs/store/src/store/generic/loadingIndicator/types").LoadingIndicatorType>, import("redux").
|
|
11
|
-
ui: import("redux").Reducer<import("dist/libs/store/src/store/ui/types").UIStoreType, import("redux").
|
|
6
|
+
webmap: import("redux").Reducer<import("dist/libs/store/src/store/map/types").WebMapState, import("redux").UnknownAction, import("dist/libs/store/src/store/map/types").WebMapState>;
|
|
7
|
+
services: import("redux").Reducer<import("dist/libs/store/src/store/map/types").ServiceState, import("redux").UnknownAction, import("dist/libs/store/src/store/map/types").ServiceState>;
|
|
8
|
+
layers: import("redux").Reducer<import("dist/libs/store/src/store/map/types").LayerState, import("redux").UnknownAction, import("dist/libs/store/src/store/map/types").LayerState>;
|
|
9
|
+
syncGroups: import("redux").Reducer<import("dist/libs/store/src/store/generic/syncGroups/types").SynchronizationGroupState, import("redux").UnknownAction, import("dist/libs/store/src/store/generic/syncGroups/types").SynchronizationGroupState>;
|
|
10
|
+
loadingIndicator: import("redux").Reducer<import("@reduxjs/toolkit").EntityState<import("dist/libs/store/src/store/generic/loadingIndicator/types").LoadingIndicatorType, string>, import("redux").UnknownAction, import("@reduxjs/toolkit").EntityState<import("dist/libs/store/src/store/generic/loadingIndicator/types").LoadingIndicatorType, string>>;
|
|
11
|
+
ui: import("redux").Reducer<import("dist/libs/store/src/store/ui/types").UIStoreType, import("redux").UnknownAction, import("dist/libs/store/src/store/ui/types").UIStoreType>;
|
|
12
12
|
workspace: import("redux").Reducer<import("./workspace/types").WorkspaceState>;
|
|
13
13
|
workspaceList: import("redux").Reducer<import("./workspaceList/types").WorkspaceListState>;
|
|
14
14
|
viewPresetsList: import("redux").Reducer<import("./viewPresetsList/types").ViewPresetListState>;
|
|
15
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").
|
|
17
|
-
snackbar: import("redux").Reducer<import("dist/libs/snackbar/src/lib/store/types").SnackbarState, import("redux").
|
|
16
|
+
timeSeries: import("redux").Reducer<import("dist/libs/timeseries/src/lib/store/types").TimeSeriesStoreType, import("redux").UnknownAction, import("dist/libs/timeseries/src/lib/store/types").TimeSeriesStoreType>;
|
|
17
|
+
snackbar: import("redux").Reducer<import("dist/libs/snackbar/src/lib/store/types").SnackbarState, import("redux").UnknownAction, import("dist/libs/snackbar/src/lib/store/types").SnackbarState>;
|
|
18
18
|
};
|
|
19
|
-
export declare const workspaceMiddlewares: (import("@reduxjs/toolkit").ListenerMiddleware<import("./types").AppStore, import("
|
|
20
|
-
export declare const createMockStore: (mockState?: WebMapStateModuleState | WorkspaceModuleStore | UIModuleState | SynchronizationGroupModuleState | SnackbarModuleStore) =>
|
|
19
|
+
export declare const workspaceMiddlewares: (import("@reduxjs/toolkit").ListenerMiddleware<import("./types").AppStore, import("redux-thunk").ThunkDispatch<import("./types").AppStore, unknown, import("redux").UnknownAction>, unknown> | import("@reduxjs/toolkit").ListenerMiddleware<SnackbarModuleStore, import("redux-thunk").ThunkDispatch<SnackbarModuleStore, unknown, import("redux").UnknownAction>, unknown>)[];
|
|
20
|
+
export declare const createMockStore: (mockState?: WebMapStateModuleState | WorkspaceModuleStore | UIModuleState | SynchronizationGroupModuleState | SnackbarModuleStore) => Store;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnknownAction, ListenerEffectAPI, PayloadAction, ThunkDispatch } from '@reduxjs/toolkit';
|
|
2
2
|
import { WorkspaceModuleStore } from '../types';
|
|
3
3
|
import { SaveViewPresetPayload, ViewPreset } from './types';
|
|
4
|
-
export declare const viewPresetsListener: import("@reduxjs/toolkit").ListenerMiddlewareInstance<WorkspaceModuleStore, ThunkDispatch<WorkspaceModuleStore, unknown,
|
|
5
|
-
export declare const saveViewPresetAsEffect: ({ payload }: PayloadAction<SaveViewPresetPayload>, listenerApi: ListenerEffectAPI<WorkspaceModuleStore, ThunkDispatch<WorkspaceModuleStore, unknown,
|
|
6
|
-
export declare const saveViewPresetEffect: ({ payload }: PayloadAction<SaveViewPresetPayload>, listenerApi: ListenerEffectAPI<WorkspaceModuleStore, ThunkDispatch<WorkspaceModuleStore, unknown,
|
|
4
|
+
export declare const viewPresetsListener: import("@reduxjs/toolkit").ListenerMiddlewareInstance<WorkspaceModuleStore, ThunkDispatch<WorkspaceModuleStore, unknown, UnknownAction>, unknown>;
|
|
5
|
+
export declare const saveViewPresetAsEffect: ({ payload }: PayloadAction<SaveViewPresetPayload>, listenerApi: ListenerEffectAPI<WorkspaceModuleStore, ThunkDispatch<WorkspaceModuleStore, unknown, UnknownAction>>) => Promise<ViewPreset | Error | void>;
|
|
6
|
+
export declare const saveViewPresetEffect: ({ payload }: PayloadAction<SaveViewPresetPayload>, listenerApi: ListenerEffectAPI<WorkspaceModuleStore, ThunkDispatch<WorkspaceModuleStore, unknown, UnknownAction>>) => Promise<ViewPreset | Error | void>;
|
|
@@ -2,7 +2,7 @@ import { layerTypes, mapEnums } from '@opengeoweb/store';
|
|
|
2
2
|
import { TimeSeriesTypes } from '@opengeoweb/timeseries';
|
|
3
3
|
import { Draft, PayloadAction } from '@reduxjs/toolkit';
|
|
4
4
|
import { ErrorViewPresetPayload, FetchedViewPresetPayload, FetchedViewPresetsPayload, FetchViewPresetsPayload, OnSuccesViewPresetActionPayload, OpenViewPresetDialogPayload, RegisterViewPresetPayload, SavedViewPresetPayload, SaveViewPresetPayload, SearchWorkspaceFilter, SelectViewPresetPayload, SetActiveViewPresetIdPayload, SetFilterChipsPayload, SetSelectAllFilterChip, SetViewPresetHasChangePayload, ToggleSelectFilterChip, ToggleViewPresetListDialogPayload, UnregisterViewPresetPayload, ViewPresetEntity, ViewPresetState } from './types';
|
|
5
|
-
export declare const viewPresetsAdapter: import("@reduxjs/toolkit").EntityAdapter<ViewPresetEntity>;
|
|
5
|
+
export declare const viewPresetsAdapter: import("@reduxjs/toolkit").EntityAdapter<ViewPresetEntity, string>;
|
|
6
6
|
export declare const initialState: ViewPresetState;
|
|
7
7
|
export type SupportedMapActionOrigins = layerTypes.LayerActionOrigin | mapEnums.MapActionOrigin;
|
|
8
8
|
export declare const supportedMapActionOrigins: SupportedMapActionOrigins[];
|