@opengeoweb/workspace 14.2.2 → 14.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.
Files changed (22) hide show
  1. package/index.esm.js +2557 -1247
  2. package/package.json +17 -17
  3. package/src/lib/api/workspace-api/api.d.ts +2 -1
  4. package/src/lib/api/workspace-api/hooks.d.ts +3 -2
  5. package/src/lib/components/WorkspaceOptions/WorkspaceOptions.d.ts +2 -0
  6. package/src/lib/components/WorkspaceOptions/WorkspaceOptionsConnect.d.ts +1 -1
  7. package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetLabelsPanel.d.ts +8 -0
  8. package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsForm.d.ts +8 -2
  9. package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsFormDialog.d.ts +2 -1
  10. package/src/lib/components/WorkspacePresetsFormDialog/WorkspacePresetsFormDialog.stories.d.ts +0 -1
  11. package/src/lib/components/WorkspaceSelectList/WorkspaceSelectListRow.d.ts +1 -1
  12. package/src/lib/components/WorkspaceTab/WorkspaceTabConnect.d.ts +1 -1
  13. package/src/lib/store/workspace/listener.d.ts +1 -1
  14. package/src/lib/store/workspace/reducer.d.ts +3 -2
  15. package/src/lib/store/workspace/selectors.d.ts +173 -68
  16. package/src/lib/store/workspace/types.d.ts +31 -6
  17. package/src/lib/store/workspace/utils.d.ts +9 -8
  18. package/src/lib/store/workspaceList/selectors.d.ts +103 -48
  19. package/src/lib/store/workspaceList/types.d.ts +8 -4
  20. package/src/lib/utils/labels.config.d.ts +9 -0
  21. package/src/lib/components/WorkspacePresetsFormDialog/WorkspaceViewPresetsFormFields.d.ts +0 -8
  22. /package/src/lib/components/WorkspacePresetsFormDialog/{WorkspaceViewPresetsFormFields.spec.d.ts → WorkspacePresetLabelsPanel.spec.d.ts} +0 -0
@@ -1,13 +1,14 @@
1
- import { SystemScope } from '@opengeoweb/shared';
2
- import { syncGroupsTypes } from '@opengeoweb/store';
3
- import { MosaicNode } from 'react-mosaic-component';
1
+ import type { MosaicNode } from 'react-mosaic-component';
2
+ import type { SystemScope } from '@opengeoweb/shared';
3
+ import type { syncGroupsTypes } from '@opengeoweb/store';
4
4
  export type InitialPropsWorkspaceViewType = Record<string, unknown>;
5
5
  export type WorkspaceViewPresetComponentsLookupType = 'ViewError' | 'ViewLoading';
6
6
  export interface WorkspaceViewType {
7
7
  id?: string;
8
+ mosaicNodeId?: string;
8
9
  title?: string;
9
10
  abstract?: string;
10
- componentType: string | WorkspaceViewPresetComponentsLookupType;
11
+ componentType: string;
11
12
  initialProps?: InitialPropsWorkspaceViewType;
12
13
  activeLayerId?: string;
13
14
  shouldPreventClose?: boolean;
@@ -20,7 +21,11 @@ export interface WorkspaceViews {
20
21
  }
21
22
  export interface WorkspaceViewsFromBE {
22
23
  mosaicNodeId: string;
23
- viewPresetId: string;
24
+ viewPresetId?: string;
25
+ componentType?: string;
26
+ initialProps?: InitialPropsWorkspaceViewType;
27
+ title?: string;
28
+ originalViewPresetId?: string;
24
29
  }
25
30
  export type ViewType = 'singleWindow' | 'multiWindow' | 'tiledWindow';
26
31
  export interface WorkspaceSyncGroup {
@@ -41,12 +46,21 @@ export interface WorkspacePreset {
41
46
  abstract?: string;
42
47
  linking?: Record<string, string[]>;
43
48
  username?: string;
49
+ labels?: WorkspacePresetLabels;
44
50
  }
45
51
  export interface WorkspaceState extends WorkspacePreset {
46
52
  isLoading?: boolean;
47
53
  error?: WorkspaceError;
48
54
  hasChanges?: boolean;
49
55
  }
56
+ export type WorkspacePresetLabels = Partial<{
57
+ purpose: string[];
58
+ parameters: string[];
59
+ phenomena: string[];
60
+ dataType: string[];
61
+ viewType: string[];
62
+ dataSource: string[];
63
+ }>;
50
64
  export interface WorkspacePresetForBE {
51
65
  id?: string;
52
66
  title: string;
@@ -59,6 +73,7 @@ export interface WorkspacePresetForBE {
59
73
  is_shared?: boolean;
60
74
  username?: string;
61
75
  abstract?: string;
76
+ labels?: WorkspacePresetLabels;
62
77
  }
63
78
  export interface WorkspacePresetFromBE extends WorkspacePresetForBE {
64
79
  id: string;
@@ -75,6 +90,7 @@ export interface WorkspacePresetListItem {
75
90
  abstract: string;
76
91
  username?: string;
77
92
  is_shared?: boolean;
93
+ labels?: WorkspacePresetLabels;
78
94
  }
79
95
  export declare enum WorkspacePresetAction {
80
96
  DELETE = "DELETE",
@@ -87,7 +103,8 @@ export declare enum WorkspacePresetAction {
87
103
  RESET = "RESET",
88
104
  DELETE_SYSTEM_PRESET = "DELETE_SYSTEM_PRESET",
89
105
  SHARE = "SHARE",
90
- OPEN_TAB = "OPEN_TAB"
106
+ OPEN_TAB = "OPEN_TAB",
107
+ EDIT_TITLE = "EDIT_TITLE"
91
108
  }
92
109
  export interface WorkspaceAddViewPayload {
93
110
  id: string;
@@ -163,3 +180,11 @@ export interface WorkspaceErrorWorkspacePayload {
163
180
  workspaceId: string;
164
181
  error: WorkspaceError;
165
182
  }
183
+ export interface WorkspaceLabelsConfigResponse {
184
+ [group: string]: string[] | undefined;
185
+ purpose?: string[];
186
+ parameters?: string[];
187
+ phenomena?: string[];
188
+ dataType?: string[];
189
+ dataSource?: string[];
190
+ }
@@ -1,12 +1,12 @@
1
+ import type { PayloadAction } from '@reduxjs/toolkit';
2
+ import type { AxiosError } from 'axios';
3
+ import type { MosaicNode } from 'react-mosaic-component';
4
+ import type { SystemScope } from '@opengeoweb/shared';
1
5
  import { syncGroupsTypes } from '@opengeoweb/store';
2
- import { MosaicNode } from 'react-mosaic-component';
3
- import { AxiosError } from 'axios';
4
- import { PayloadAction } from '@reduxjs/toolkit';
5
- import { SystemScope } from '@opengeoweb/shared';
6
- import { PresetsApi } from '../../utils/api';
7
- import { WorkspacePreset, WorkspacePresetForBE, WorkspaceViewsFromBE, ViewType, WorkspaceViewPresetComponentsLookupType, WorkspaceSyncGroup } from './types';
8
- import { WorkspaceDialogView } from '../workspaceList/types';
9
- import { SaveViewPresetPayload, ViewPreset } from '../viewPresets/types';
6
+ import type { WorkspacePreset, WorkspacePresetForBE, WorkspaceViewsFromBE, ViewType, WorkspaceViewPresetComponentsLookupType, WorkspaceSyncGroup, WorkspaceViews } from './types';
7
+ import type { PresetsApi } from '../../utils/api';
8
+ import type { SaveViewPresetPayload, ViewPreset } from '../viewPresets/types';
9
+ import type { WorkspaceDialogView } from '../workspaceList/types';
10
10
  export declare const getWorkspaceApi: () => PresetsApi;
11
11
  export declare const getViewPresetState: (viewPresetId: string, mosaicNodeId: string, state: "loading" | "error") => {
12
12
  title: string;
@@ -32,3 +32,4 @@ export declare const getViewType: (numViews: number, firstViewComponentType: str
32
32
  export declare const makeListOfViewIds: (mNode: MosaicNode<string>) => string[];
33
33
  export declare const getErrorMessage: (error: AxiosError<unknown>) => string;
34
34
  export declare const updateViewPresets: (saveViewPreset: (payloadAction: PayloadAction<SaveViewPresetPayload>, saveAs?: boolean) => Promise<ViewPreset | Error | void>, getViewPresetEntity: (view: WorkspaceDialogView) => ViewPreset, data: WorkspacePresetForBE, scope: SystemScope) => Promise<(void | Error | ViewPreset)[]>;
35
+ export declare const toViewsArray: (wsViews: WorkspaceViewsFromBE[] | WorkspaceViews | null | undefined) => WorkspaceViewsFromBE[];
@@ -1,8 +1,7 @@
1
- import { SystemScope } from '@opengeoweb/shared';
2
- import { AppStore } from '../types';
3
- import { ViewPresetState } from '../viewPresets/types';
4
- import { WorkspacePresetListItem, WorkspaceState } from '../workspace/types';
5
- import { WorkspaceListState } from './types';
1
+ import type { SystemScope } from '@opengeoweb/shared';
2
+ import type { AppStore } from '../types';
3
+ import type { WorkspaceListState } from './types';
4
+ import type { WorkspacePresetListItem, WorkspaceState } from '../workspace/types';
6
5
  export declare const getWorkspaceListStore: (store: AppStore) => WorkspaceListState;
7
6
  export declare const getWorkspaceList: (state: AppStore) => WorkspacePresetListItem[];
8
7
  export declare const getWorkspacePresetFromList: (store: AppStore, id: string) => WorkspacePresetListItem;
@@ -94,28 +93,34 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
94
93
  formValues: {
95
94
  views: {
96
95
  mosaicNodeId: string;
97
- viewPresetId: string;
98
- isSelected: boolean;
99
96
  title: string | undefined;
100
- error: import("../viewPresets/types").ViewPresetError;
101
- isFetching: boolean;
102
- hasChanges: boolean;
97
+ abstract: string | undefined;
98
+ componentType: string;
103
99
  scope: SystemScope;
100
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
101
+ originalViewPresetId: string | undefined;
104
102
  }[];
105
103
  id?: string;
106
104
  title?: string;
107
105
  abstract?: string;
108
106
  scope?: SystemScope;
107
+ labels?: Partial<{
108
+ purpose: string[];
109
+ parameters: string[];
110
+ phenomena: string[];
111
+ dataType: string[];
112
+ viewType: string[];
113
+ dataSource: string[];
114
+ }> | undefined;
109
115
  } | {
110
116
  views: {
111
117
  mosaicNodeId: string;
112
- viewPresetId: string;
113
- isSelected: boolean;
114
118
  title: string | undefined;
115
- error: import("../viewPresets/types").ViewPresetError;
116
- isFetching: boolean;
117
- hasChanges: boolean;
119
+ abstract: string | undefined;
120
+ componentType: string;
118
121
  scope: SystemScope;
122
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
123
+ originalViewPresetId: string | undefined;
119
124
  }[];
120
125
  id?: string;
121
126
  title: string;
@@ -127,6 +132,14 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
127
132
  is_shared?: boolean;
128
133
  username?: string;
129
134
  abstract?: string;
135
+ labels?: Partial<{
136
+ purpose: string[];
137
+ parameters: string[];
138
+ phenomena: string[];
139
+ dataType: string[];
140
+ viewType: string[];
141
+ dataSource: string[];
142
+ }> | undefined;
130
143
  };
131
144
  action: import("../workspace/types").WorkspacePresetAction;
132
145
  presetId: string;
@@ -138,32 +151,38 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
138
151
  resultsCount: () => number;
139
152
  resetResultsCount: () => void;
140
153
  } & {
141
- resultFunc: (resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: WorkspaceState, resultFuncArgs_2: ViewPresetState) => false | {
154
+ resultFunc: (resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: WorkspaceState) => false | {
142
155
  formValues: {
143
156
  views: {
144
157
  mosaicNodeId: string;
145
- viewPresetId: string;
146
- isSelected: boolean;
147
158
  title: string | undefined;
148
- error: import("../viewPresets/types").ViewPresetError;
149
- isFetching: boolean;
150
- hasChanges: boolean;
159
+ abstract: string | undefined;
160
+ componentType: string;
151
161
  scope: SystemScope;
162
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
163
+ originalViewPresetId: string | undefined;
152
164
  }[];
153
165
  id?: string;
154
166
  title?: string;
155
167
  abstract?: string;
156
168
  scope?: SystemScope;
169
+ labels?: Partial<{
170
+ purpose: string[];
171
+ parameters: string[];
172
+ phenomena: string[];
173
+ dataType: string[];
174
+ viewType: string[];
175
+ dataSource: string[];
176
+ }> | undefined;
157
177
  } | {
158
178
  views: {
159
179
  mosaicNodeId: string;
160
- viewPresetId: string;
161
- isSelected: boolean;
162
180
  title: string | undefined;
163
- error: import("../viewPresets/types").ViewPresetError;
164
- isFetching: boolean;
165
- hasChanges: boolean;
181
+ abstract: string | undefined;
182
+ componentType: string;
166
183
  scope: SystemScope;
184
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
185
+ originalViewPresetId: string | undefined;
167
186
  }[];
168
187
  id?: string;
169
188
  title: string;
@@ -175,6 +194,14 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
175
194
  is_shared?: boolean;
176
195
  username?: string;
177
196
  abstract?: string;
197
+ labels?: Partial<{
198
+ purpose: string[];
199
+ parameters: string[];
200
+ phenomena: string[];
201
+ dataType: string[];
202
+ viewType: string[];
203
+ dataSource: string[];
204
+ }> | undefined;
178
205
  };
179
206
  action: import("../workspace/types").WorkspacePresetAction;
180
207
  presetId: string;
@@ -182,32 +209,38 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
182
209
  isFetching?: boolean;
183
210
  hasSaved?: boolean;
184
211
  };
185
- memoizedResultFunc: ((resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: WorkspaceState, resultFuncArgs_2: ViewPresetState) => false | {
212
+ memoizedResultFunc: ((resultFuncArgs_0: WorkspaceListState, resultFuncArgs_1: WorkspaceState) => false | {
186
213
  formValues: {
187
214
  views: {
188
215
  mosaicNodeId: string;
189
- viewPresetId: string;
190
- isSelected: boolean;
191
216
  title: string | undefined;
192
- error: import("../viewPresets/types").ViewPresetError;
193
- isFetching: boolean;
194
- hasChanges: boolean;
217
+ abstract: string | undefined;
218
+ componentType: string;
195
219
  scope: SystemScope;
220
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
221
+ originalViewPresetId: string | undefined;
196
222
  }[];
197
223
  id?: string;
198
224
  title?: string;
199
225
  abstract?: string;
200
226
  scope?: SystemScope;
227
+ labels?: Partial<{
228
+ purpose: string[];
229
+ parameters: string[];
230
+ phenomena: string[];
231
+ dataType: string[];
232
+ viewType: string[];
233
+ dataSource: string[];
234
+ }> | undefined;
201
235
  } | {
202
236
  views: {
203
237
  mosaicNodeId: string;
204
- viewPresetId: string;
205
- isSelected: boolean;
206
238
  title: string | undefined;
207
- error: import("../viewPresets/types").ViewPresetError;
208
- isFetching: boolean;
209
- hasChanges: boolean;
239
+ abstract: string | undefined;
240
+ componentType: string;
210
241
  scope: SystemScope;
242
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
243
+ originalViewPresetId: string | undefined;
211
244
  }[];
212
245
  id?: string;
213
246
  title: string;
@@ -219,6 +252,14 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
219
252
  is_shared?: boolean;
220
253
  username?: string;
221
254
  abstract?: string;
255
+ labels?: Partial<{
256
+ purpose: string[];
257
+ parameters: string[];
258
+ phenomena: string[];
259
+ dataType: string[];
260
+ viewType: string[];
261
+ dataSource: string[];
262
+ }> | undefined;
222
263
  };
223
264
  action: import("../workspace/types").WorkspacePresetAction;
224
265
  presetId: string;
@@ -234,28 +275,34 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
234
275
  formValues: {
235
276
  views: {
236
277
  mosaicNodeId: string;
237
- viewPresetId: string;
238
- isSelected: boolean;
239
278
  title: string | undefined;
240
- error: import("../viewPresets/types").ViewPresetError;
241
- isFetching: boolean;
242
- hasChanges: boolean;
279
+ abstract: string | undefined;
280
+ componentType: string;
243
281
  scope: SystemScope;
282
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
283
+ originalViewPresetId: string | undefined;
244
284
  }[];
245
285
  id?: string;
246
286
  title?: string;
247
287
  abstract?: string;
248
288
  scope?: SystemScope;
289
+ labels?: Partial<{
290
+ purpose: string[];
291
+ parameters: string[];
292
+ phenomena: string[];
293
+ dataType: string[];
294
+ viewType: string[];
295
+ dataSource: string[];
296
+ }> | undefined;
249
297
  } | {
250
298
  views: {
251
299
  mosaicNodeId: string;
252
- viewPresetId: string;
253
- isSelected: boolean;
254
300
  title: string | undefined;
255
- error: import("../viewPresets/types").ViewPresetError;
256
- isFetching: boolean;
257
- hasChanges: boolean;
301
+ abstract: string | undefined;
302
+ componentType: string;
258
303
  scope: SystemScope;
304
+ initialProps: import("../workspace/types").InitialPropsWorkspaceViewType | undefined;
305
+ originalViewPresetId: string | undefined;
259
306
  }[];
260
307
  id?: string;
261
308
  title: string;
@@ -267,6 +314,14 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
267
314
  is_shared?: boolean;
268
315
  username?: string;
269
316
  abstract?: string;
317
+ labels?: Partial<{
318
+ purpose: string[];
319
+ parameters: string[];
320
+ phenomena: string[];
321
+ dataType: string[];
322
+ viewType: string[];
323
+ dataSource: string[];
324
+ }> | undefined;
270
325
  };
271
326
  action: import("../workspace/types").WorkspacePresetAction;
272
327
  presetId: string;
@@ -274,7 +329,7 @@ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => fals
274
329
  isFetching?: boolean;
275
330
  hasSaved?: boolean;
276
331
  };
277
- dependencies: [(store: AppStore) => WorkspaceListState, (store: AppStore) => WorkspaceState, (store: AppStore) => ViewPresetState];
332
+ dependencies: [(store: AppStore) => WorkspaceListState, (store: AppStore) => WorkspaceState];
278
333
  recomputations: () => number;
279
334
  resetRecomputations: () => void;
280
335
  dependencyRecomputations: () => number;
@@ -1,7 +1,7 @@
1
- import { SystemScope } from '@opengeoweb/shared';
2
- import { EntityState } from '@reduxjs/toolkit';
3
- import { type ViewPresetError } from '../viewPresets/types';
4
- import { WorkspacePresetAction, WorkspacePresetForBE, WorkspacePresetListItem, WorkspaceViewsFromBE } from '../workspace/types';
1
+ import type { EntityState } from '@reduxjs/toolkit';
2
+ import type { SystemScope } from '@opengeoweb/shared';
3
+ import type { ViewPresetError } from '../viewPresets/types';
4
+ import type { WorkspacePresetAction, WorkspacePresetForBE, WorkspacePresetLabels, WorkspacePresetListItem, WorkspaceViewsFromBE } from '../workspace/types';
5
5
  export declare enum WorkspaceListErrorCategory {
6
6
  AUTH = "AUTH",// Errors related to authentication and authorization
7
7
  GENERIC = "GENERIC"
@@ -52,6 +52,7 @@ export interface WorkspaceFormValues {
52
52
  abstract?: string;
53
53
  scope?: SystemScope;
54
54
  views?: WorkspaceDialogView[];
55
+ labels?: WorkspacePresetLabels;
55
56
  }
56
57
  export type WorkspacePresetFormValues = WorkspaceFormValues | WorkspacePresetForBE;
57
58
  export interface WorkspaceActionDialogType {
@@ -104,6 +105,8 @@ export interface OnNonDeleteSuccesWorkspacePresetActionPayload {
104
105
  currentActiveWorkspaceId?: string;
105
106
  scope: SystemScope;
106
107
  is_shared?: boolean;
108
+ labels?: WorkspacePresetLabels;
109
+ views?: WorkspaceViewsFromBE[];
107
110
  }
108
111
  export interface OnDeleteSuccesWorkspacePresetActionPayload {
109
112
  workspaceId: string;
@@ -112,6 +115,7 @@ export interface OnDeleteSuccesWorkspacePresetActionPayload {
112
115
  abstract?: string;
113
116
  currentActiveWorkspaceId?: string;
114
117
  emptyWorkspacePresetTitle: string;
118
+ views?: WorkspaceViewsFromBE[];
115
119
  }
116
120
  export type OnSuccesWorkspacePresetActionPayload = OnNonDeleteSuccesWorkspacePresetActionPayload | OnDeleteSuccesWorkspacePresetActionPayload;
117
121
  export interface OnErrorWorkspacePresetActionPayload {
@@ -0,0 +1,9 @@
1
+ export type LabelKey = 'purpose' | 'parameters' | 'phenomena' | 'dataType' | 'viewType' | 'dataSource';
2
+ export interface LabelsConfig {
3
+ purpose: string[];
4
+ parameters: string[];
5
+ phenomena: string[];
6
+ dataType: string[];
7
+ dataSource: string[];
8
+ }
9
+ export declare const LABELS_CONFIG_DEFAULT: LabelsConfig;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { WorkspaceDialogView } from '../../store/workspaceList/types';
3
- declare const WorkspaceViewPresetsFormFields: React.FC<{
4
- viewPresets: WorkspaceDialogView[];
5
- isLoading?: boolean;
6
- isAdmin?: boolean;
7
- }>;
8
- export default WorkspaceViewPresetsFormFields;