@opengeoweb/workspace 20.2.0 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,5 +19,5 @@ export { workspaceTranslations };
19
19
  export { routes as workspaceRoutes, getWorkspaceRouteUrl, } from './lib/utils/routes';
20
20
  export { getEmptyMapWorkspace, createCustomEmptyMapWorkspace, } from './lib/store/workspaceList/utils';
21
21
  export type { WorkspaceModuleStore } from './lib/store/types';
22
- export { workspaceReducersMap, workspaceMiddlewares } from './lib/store';
22
+ export { workspaceReducersMap, workspaceMiddlewares, workspaceSentryStateMap, } from './lib/store';
23
23
  export * from './lib/api/workspace-api/fakeApi/fakeApi';
@@ -3,6 +3,7 @@ import type { TemplatePresetsResponse, WorkspaceLabelsConfigResponse, WorkspaceP
3
3
  import type { FetchWorkspaceParams } from '../../store/workspaceList/types';
4
4
  export declare const TEMPLATE_PRESETS_FILENAME = "templatePresets.json";
5
5
  export declare const getTemplatePresetsFilename: () => string;
6
+ export declare const isTemplatePresetsEnabled: () => boolean;
6
7
  export declare const getTemplatePresets: (filename?: string) => Promise<TemplatePresetsResponse>;
7
8
  export declare const getWorkspaceLabelsConfig: (auth: Credentials) => Promise<WorkspaceLabelsConfigResponse>;
8
9
  export declare const getWorkspacePreset: (workspaceId: string, auth?: Credentials) => Promise<WorkspacePresetFromBE>;
@@ -1,7 +1,8 @@
1
1
  import type { UseQueryResult } from '@tanstack/react-query';
2
2
  import type { UseMutationReturnType } from '@opengeoweb/api';
3
- import type { WorkspaceLabelsConfigResponse, WorkspacePresetForBE, WorkspacePresetListItem } from '../../store/workspace/types';
3
+ import type { WorkspaceLabelsConfigResponse, WorkspacePresetForBE, WorkspacePresetListItem, WorkspaceTemplatePreset } from '../../store/workspace/types';
4
4
  import { WorkspacePresetAction } from '../../store/workspace/types';
5
+ export declare const useWorkspaceTemplatePresets: () => UseQueryResult<WorkspaceTemplatePreset[]>;
5
6
  export declare const useWorkspaceLabelsConfig: () => UseQueryResult<WorkspaceLabelsConfigResponse>;
6
7
  export declare const useWorkspacePresets: () => UseQueryResult<WorkspacePresetListItem[]>;
7
8
  export declare const useDeleteWorkspacePreset: () => UseMutationReturnType<Headers | null, {
@@ -8,11 +8,9 @@ export interface WorkspaceSelectListProps extends BoxProps {
8
8
  onClickWorkspacePresetOption: (presetId: string, workspaceAction: WorkspacePresetAction, workspacePreset: WorkspacePresetListItem) => void;
9
9
  onOpenPresetInfo?: (preset: WorkspacePresetListItem) => void;
10
10
  infoOpenPresetId?: string;
11
- hideNewWorkspace?: boolean;
12
11
  isEditable?: boolean;
13
12
  isAdmin?: boolean;
14
13
  searchQuery?: string;
15
- newPresets?: WorkspacePresetListItem[];
16
14
  testIdPrefix?: string;
17
15
  onSelectVersion?: (presetId: string, version: string) => void;
18
16
  isFavourite?: (preset: WorkspacePresetListItem) => boolean;
@@ -1 +1,2 @@
1
1
  export * from './store';
2
+ export * from './sentryStateMap';
@@ -0,0 +1,3 @@
1
+ import type { SentryStateMap } from '@opengeoweb/store';
2
+ import type { WorkspaceModuleStore } from './types';
3
+ export declare const workspaceSentryStateMap: SentryStateMap<Pick<WorkspaceModuleStore, 'workspace' | 'viewPresets' | 'workspaceList'>>;
@@ -1,4 +1,3 @@
1
- import type { TFunction } from 'i18next';
2
1
  import { snackbarTypes } from '@opengeoweb/snackbar';
3
2
  import type { ViewPreset, WorkspaceSupportedComponentTypes } from './types';
4
3
  import { PresetAction } from './types';
@@ -7,7 +6,7 @@ export declare const getSnackbarMessage: (action: PresetAction, title: string, i
7
6
  export declare const emptyViewPreset: (componentType?: WorkspaceSupportedComponentTypes | undefined) => ViewPreset;
8
7
  export declare const findViewTemplatePreset: (templates: ViewTemplatePreset[] | undefined, presetId?: string) => ViewTemplatePreset | undefined;
9
8
  export declare const findViewTemplatePresetForComponentType: (templates: ViewTemplatePreset[] | undefined, componentType?: WorkspaceSupportedComponentTypes) => ViewTemplatePreset | undefined;
10
- export declare const toTranslatedViewTemplatePreset: (template: ViewTemplatePreset, t?: TFunction) => ViewTemplatePreset;
11
- export declare const toViewPresetFromTemplate: (template: ViewTemplatePreset, t?: TFunction) => ViewPreset;
12
- export declare const toViewTemplateListItem: (template: ViewTemplatePreset, t?: TFunction) => ViewPresetListItem;
13
- export declare const toViewTemplateListItems: (templates: ViewTemplatePreset[] | undefined, t?: TFunction) => ViewPresetListItem[];
9
+ export declare const toTranslatedViewTemplatePreset: (template: ViewTemplatePreset, language?: string) => ViewTemplatePreset;
10
+ export declare const toViewPresetFromTemplate: (template: ViewTemplatePreset, language?: string) => ViewPreset;
11
+ export declare const toViewTemplateListItem: (template: ViewTemplatePreset, language?: string) => ViewPresetListItem;
12
+ export declare const toViewTemplateListItems: (templates: ViewTemplatePreset[] | undefined, language?: string) => ViewPresetListItem[];
@@ -69,22 +69,21 @@ export interface WorkspacePresetLabels {
69
69
  dataSource?: string[];
70
70
  viewType?: string[];
71
71
  }
72
+ export type TemplatePresetTitle = string | Record<string, string>;
72
73
  export interface TemplatePresetView extends Omit<WorkspaceViewType, 'title'> {
73
- title?: string;
74
- titleKey?: string;
74
+ title?: TemplatePresetTitle;
75
75
  }
76
76
  export interface TemplatePresetViews {
77
77
  allIds: string[];
78
78
  byId: Record<string, TemplatePresetView>;
79
79
  }
80
- export interface WorkspaceTemplatePreset extends Omit<WorkspacePreset, 'views'> {
81
- titleKey?: string;
80
+ export interface WorkspaceTemplatePreset extends Omit<WorkspacePreset, 'title' | 'views'> {
81
+ title: TemplatePresetTitle;
82
82
  views: TemplatePresetViews;
83
83
  }
84
84
  export interface ViewTemplatePreset extends Pick<WorkspaceViewType, 'componentType' | 'initialProps' | 'abstract' | 'description'> {
85
85
  id: string;
86
- title: string;
87
- titleKey?: string;
86
+ title: TemplatePresetTitle;
88
87
  labels?: WorkspacePresetLabels;
89
88
  }
90
89
  export interface TemplatePresetsResponse {
@@ -25,6 +25,12 @@ export declare const pluginFilterState: {
25
25
  isSelected: boolean;
26
26
  isDisabled: boolean;
27
27
  };
28
+ export declare const templatesFilterState: {
29
+ label: string;
30
+ id: PresetFilterType;
31
+ isSelected: boolean;
32
+ isDisabled: boolean;
33
+ };
28
34
  export declare const favouriteFilterState: {
29
35
  label: string;
30
36
  id: PresetFilterType;
@@ -32,6 +38,7 @@ export declare const favouriteFilterState: {
32
38
  isDisabled: boolean;
33
39
  };
34
40
  export declare const defaultPresetFilterState: WorkspaceListFilter[];
41
+ export declare const ADMIN_WORKSPACE_FILTER_IDS: PresetFilterType[];
35
42
  export declare const initialState: WorkspaceListState;
36
43
  export declare const workspaceListReducer: import("redux").Reducer<WorkspaceListState>, workspaceListActions: import("@reduxjs/toolkit").CaseReducerActions<{
37
44
  openWorkspaceActionDialogOptions: (draft: Draft<WorkspaceListState>, action: PayloadAction<OpenWorkspaceActionDialogPayload>) => void;
@@ -1,6 +1,7 @@
1
1
  import type { SystemScope } from '@opengeoweb/shared';
2
2
  import type { AppStore } from '../types';
3
3
  import type { WorkspaceActionDialogType, WorkspaceListState } from './types';
4
+ import { PresetFilterType } from './types';
4
5
  import type { WorkspacePresetLabels, WorkspaceState } from '../workspace/types';
5
6
  export declare const getWorkspaceListStore: (store: AppStore) => WorkspaceListState;
6
7
  export declare const getWorkspaceDialogIsSaved: ((state: AppStore) => boolean) & {
@@ -109,26 +110,26 @@ export declare const getIsWorkspaceListDialogOpen: ((state: AppStore) => boolean
109
110
  memoize: typeof import("reselect").weakMapMemoize;
110
111
  argsMemoize: typeof import("reselect").weakMapMemoize;
111
112
  };
112
- export declare const getWorkspaceListFilters: ((state: AppStore, _scope?: SystemScope | undefined, isAdmin?: boolean | undefined) => {
113
+ export declare const getWorkspaceListFilters: ((state: AppStore, _scope?: SystemScope | undefined, _isAdmin?: boolean | undefined, isTemplatesEnabled?: boolean | undefined) => {
113
114
  isDisabled: boolean;
114
115
  label: string;
115
- id: import("./types").PresetFilterType;
116
+ id: PresetFilterType;
116
117
  isSelected?: boolean;
117
118
  }[]) & {
118
119
  clearCache: () => void;
119
120
  resultsCount: () => number;
120
121
  resetResultsCount: () => void;
121
122
  } & {
122
- resultFunc: (resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined) => {
123
+ resultFunc: (resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined, resultFuncArgs_3: boolean) => {
123
124
  isDisabled: boolean;
124
125
  label: string;
125
- id: import("./types").PresetFilterType;
126
+ id: PresetFilterType;
126
127
  isSelected?: boolean;
127
128
  }[];
128
- memoizedResultFunc: ((resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined) => {
129
+ memoizedResultFunc: ((resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: SystemScope | undefined, resultFuncArgs_2: boolean | undefined, resultFuncArgs_3: boolean) => {
129
130
  isDisabled: boolean;
130
131
  label: string;
131
- id: import("./types").PresetFilterType;
132
+ id: PresetFilterType;
132
133
  isSelected?: boolean;
133
134
  }[]) & {
134
135
  clearCache: () => void;
@@ -138,10 +139,10 @@ export declare const getWorkspaceListFilters: ((state: AppStore, _scope?: System
138
139
  lastResult: () => {
139
140
  isDisabled: boolean;
140
141
  label: string;
141
- id: import("./types").PresetFilterType;
142
+ id: PresetFilterType;
142
143
  isSelected?: boolean;
143
144
  }[];
144
- dependencies: [(store: AppStore) => WorkspaceListState, (_store: AppStore, scope?: SystemScope) => SystemScope | undefined, (_store: AppStore, _scope?: SystemScope, isAdmin?: boolean) => boolean | undefined];
145
+ dependencies: [(store: AppStore) => WorkspaceListState, (_store: AppStore, scope?: SystemScope) => SystemScope | undefined, (_store: AppStore, _scope?: SystemScope, isAdmin?: boolean) => boolean | undefined, (_store: AppStore, _scope?: SystemScope, _isAdmin?: boolean, isTemplatesEnabled?: boolean) => isTemplatesEnabled is true | undefined];
145
146
  recomputations: () => number;
146
147
  resetRecomputations: () => void;
147
148
  dependencyRecomputations: () => number;
@@ -1,6 +1,6 @@
1
1
  import type { SystemScope } from '@opengeoweb/shared';
2
2
  import type { ViewPresetError } from '../viewPresets/types';
3
- import type { WorkspacePresetAction, WorkspacePresetForBE, WorkspacePresetLabels, WorkspaceViewsFromBE } from '../workspace/types';
3
+ import type { WorkspacePreset, WorkspacePresetAction, WorkspacePresetForBE, WorkspacePresetLabels, WorkspaceViewsFromBE } from '../workspace/types';
4
4
  export declare enum WorkspaceListErrorCategory {
5
5
  AUTH = "AUTH",// Errors related to authentication and authorization
6
6
  GENERIC = "GENERIC"
@@ -80,6 +80,7 @@ export interface ToggleSelectFilterChip {
80
80
  isSelected: boolean;
81
81
  isAdmin?: boolean;
82
82
  isFavouritesEnabled?: boolean;
83
+ isTemplatesEnabled?: boolean;
83
84
  }
84
85
  export interface SetWorkspaceLabelFiltersPayload {
85
86
  labels: WorkspacePresetLabels;
@@ -94,7 +95,7 @@ export interface SubmitFormWorkspaceActionDialogPayload {
94
95
  data: WorkspacePresetForBE;
95
96
  emptyMapPresetTitle: string;
96
97
  emptyWorkspacePresetTitle: string;
97
- emptySoundingsPresetTitle?: string;
98
+ defaultPreset?: WorkspacePreset;
98
99
  }
99
100
  export interface OnNonDeleteSuccesWorkspacePresetActionPayload {
100
101
  workspaceId: string;
@@ -2,7 +2,7 @@ import type { TFunction } from 'i18next';
2
2
  import { snackbarTypes } from '@opengeoweb/snackbar';
3
3
  import type { MapPreset } from '@opengeoweb/store';
4
4
  import { PresetFilterType } from './types';
5
- import type { WorkspacePreset, WorkspacePresetListItem, WorkspaceState, WorkspaceTemplatePreset, WorkspaceViewsFromBE } from '../workspace/types';
5
+ import type { TemplatePresetTitle, WorkspaceTemplatePreset, WorkspaceChangeToEmptyMapWorkspacePayload, WorkspacePreset, WorkspacePresetListItem, WorkspaceState, WorkspaceViewsFromBE } from '../workspace/types';
6
6
  import { WorkspacePresetAction } from '../workspace/types';
7
7
  export declare const getSnackbarMessage: (action: WorkspacePresetAction, title: string, is_shared?: boolean) => snackbarTypes.TranslatableMessage;
8
8
  export declare function getEmptyWorkspaceListItem(): Omit<WorkspacePresetListItem, 'title'>;
@@ -12,12 +12,15 @@ export declare function getEmptyMapWorkspace(): Omit<WorkspacePreset, 'title'>;
12
12
  export declare function getEmptyMapWorkspace(t: TFunction): WorkspacePreset;
13
13
  export declare const getEmptyWorkspacePreset: () => Omit<WorkspacePreset, "title">;
14
14
  export declare const createCustomEmptyMapWorkspace: (emptyWorkspaceTitle: string, emptyMapWorkspaceTitle: string, customMapPreset?: MapPreset) => WorkspacePreset;
15
- export declare const getTemplatePresetTitle: (preset: Pick<WorkspaceTemplatePreset, "title" | "titleKey">, t?: TFunction) => string;
16
- export declare const LOCAL_SOUNDINGS_ID = "newSoundingsWorkspace";
17
- export declare const getNewSoundingsWorkspaceListItem: (t?: TFunction) => WorkspacePresetListItem;
18
- export declare function getNewSoundingsWorkspace(t?: TFunction): WorkspacePreset;
15
+ export declare const getTemplatePresetTitle: (title: TemplatePresetTitle, language?: string | undefined) => string;
16
+ export declare const findWorkspaceTemplatePreset: (defaultPresets: WorkspaceTemplatePreset[] | undefined, presetId?: string) => WorkspaceTemplatePreset | undefined;
17
+ export declare const isWorkspaceTemplatePresetId: (defaultPresets: WorkspaceTemplatePreset[] | undefined, presetId?: string) => boolean;
18
+ export declare const toWorkspacePresetFromTemplate: (preset: WorkspaceTemplatePreset, language?: string) => WorkspacePreset;
19
+ export declare const getEmptyMapWorkspaceTitles: (preset: WorkspaceTemplatePreset, language?: string) => WorkspaceChangeToEmptyMapWorkspacePayload;
20
+ export declare const toWorkspaceTemplateListItem: (preset: WorkspaceTemplatePreset, language?: string) => WorkspacePresetListItem;
21
+ export declare const toWorkspaceTemplateListItems: (defaultPresets: WorkspaceTemplatePreset[] | undefined, language?: string) => WorkspacePresetListItem[];
19
22
  export declare const getBEViewsFromState: (workspace: WorkspaceState) => WorkspaceViewsFromBE[];
20
23
  export declare const togglePresetFilter: <T extends {
21
24
  id: string;
22
25
  isSelected?: boolean;
23
- }>(filters: T[], id: PresetFilterType, isSelected: boolean, isAdmin?: boolean, isFavouritesEnabled?: boolean) => T[];
26
+ }>(filters: T[], id: PresetFilterType, isSelected: boolean, isAdmin?: boolean, isFavouritesEnabled?: boolean, isTemplatesEnabled?: boolean) => T[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/workspace",
3
- "version": "20.2.0",
3
+ "version": "21.0.0",
4
4
  "description": "GeoWeb Workspace library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -21,33 +21,33 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "react-redux": "^9.2.0",
24
- "@opengeoweb/shared": "20.2.0",
25
- "@opengeoweb/store": "20.2.0",
26
- "@opengeoweb/api": "20.2.0",
24
+ "@opengeoweb/shared": "21.0.0",
25
+ "@opengeoweb/store": "21.0.0",
26
+ "@opengeoweb/api": "21.0.0",
27
27
  "react-hook-form": "^7.50.1",
28
- "@opengeoweb/theme": "20.2.0",
28
+ "@opengeoweb/theme": "21.0.0",
29
29
  "@reduxjs/toolkit": "^2.6.1",
30
- "@opengeoweb/snackbar": "20.2.0",
30
+ "@opengeoweb/snackbar": "21.0.0",
31
31
  "react-window": "^2.2.6",
32
32
  "lodash": "^4.18.1",
33
33
  "axios": "^1.20.0",
34
34
  "react-mosaic-component": "npm:react-mosaic-component-opengeoweb@^6.1.1-opengeoweb.1",
35
- "@opengeoweb/form-fields": "20.2.0",
36
- "@opengeoweb/time-series": "20.2.0",
37
- "@opengeoweb/authentication": "20.2.0",
38
- "@opengeoweb/plugins": "20.2.0",
39
- "@opengeoweb/core": "20.2.0",
40
- "@opengeoweb/taf": "20.2.0",
41
- "@opengeoweb/sigmet-airmet": "20.2.0",
42
- "@opengeoweb/warnings": "20.2.0",
43
- "@opengeoweb/space-weather": "20.2.0",
35
+ "@opengeoweb/form-fields": "21.0.0",
36
+ "@opengeoweb/time-series": "21.0.0",
37
+ "@opengeoweb/authentication": "21.0.0",
38
+ "@opengeoweb/plugins": "21.0.0",
39
+ "@opengeoweb/core": "21.0.0",
40
+ "@opengeoweb/taf": "21.0.0",
41
+ "@opengeoweb/sigmet-airmet": "21.0.0",
42
+ "@opengeoweb/warnings": "21.0.0",
43
+ "@opengeoweb/space-weather": "21.0.0",
44
44
  "i18next": "^25.0.1",
45
45
  "react-i18next": "^15.1.1",
46
46
  "@mui/material": "^9.0.1",
47
- "@opengeoweb/webmap-react": "20.2.0",
47
+ "@opengeoweb/webmap-react": "21.0.0",
48
48
  "@tanstack/react-query": "^5.85.5",
49
- "@opengeoweb/soundings": "20.2.0",
50
- "@opengeoweb/knmi-components": "20.2.0",
49
+ "@opengeoweb/soundings": "21.0.0",
50
+ "@opengeoweb/knmi-components": "21.0.0",
51
51
  "@mui/system": "^9.0.1"
52
52
  },
53
53
  "peerDependencies": {