@opengeoweb/workspace 19.6.1 → 20.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.
@@ -1,2 +1,13 @@
1
1
  import type { UseMutationResult } from '@tanstack/react-query';
2
+ import type { WorkspacePresetListItem } from '../store/workspace/types';
2
3
  export type MutationReturnType<TData, TVariables> = UseMutationResult<TData, Error, TVariables>;
4
+ export type FavouritePreset = Pick<WorkspacePresetListItem, 'id' | 'scope'>;
5
+ export interface FavouritePresetsState {
6
+ isFavourite: (preset: FavouritePreset) => boolean;
7
+ toggleFavourite: (preset: FavouritePreset) => void;
8
+ disabled: boolean;
9
+ isLoading: boolean;
10
+ isSaving: boolean;
11
+ error: Error | null;
12
+ retry: () => void;
13
+ }
@@ -0,0 +1,8 @@
1
+ import type { Credentials } from '@opengeoweb/api';
2
+ export type FavouritePresetType = 'workspace' | 'view';
3
+ export interface UserPreferences {
4
+ [key: string]: unknown;
5
+ favouritePresets?: string[];
6
+ }
7
+ export declare const getUserPreferences: (auth?: Credentials) => Promise<UserPreferences>;
8
+ export declare const setFavouritePreset: (presetType: FavouritePresetType, presetId: string, isFavourite: boolean, auth?: Credentials) => Promise<UserPreferences>;
@@ -0,0 +1,2 @@
1
+ import { http } from 'msw';
2
+ export declare const createUserPreferencesEndpoints: () => ReturnType<typeof http.get>[];
@@ -0,0 +1,3 @@
1
+ import type { FavouritePresetType } from './api';
2
+ import type { FavouritePresetsState } from '../types';
3
+ export declare const useFavouritePresets: (type: FavouritePresetType) => FavouritePresetsState;
@@ -1,4 +1,6 @@
1
- import type { UseMutationResult } from '@tanstack/react-query';
1
+ import type { QueryClient, QueryKey, UseMutationResult } from '@tanstack/react-query';
2
+ import type { FavouritePreset } from './types';
3
+ import type { FavouritePresetType } from './user-preferences/api';
2
4
  import type { WorkspacePresetFromBE, WorkspacePresetListItem } from '../store/workspace/types';
3
5
  import type { FetchWorkspaceParams } from '../store/workspaceList/types';
4
6
  export type MutationReturnType<T> = UseMutationResult<Headers | null, Error, T>;
@@ -8,3 +10,5 @@ export declare const getIdFromUrl: (url: string) => string;
8
10
  export declare const hasNoPresetBackend: () => boolean;
9
11
  export declare const extractWorkspacePresetFromJSON: (workspacePresetId: string) => WorkspacePresetFromBE;
10
12
  export declare const filterWorkspacePresetList: (params?: FetchWorkspaceParams) => WorkspacePresetListItem[];
13
+ export declare const favouritePresetKey: (type: FavouritePresetType, preset: Pick<FavouritePreset, "id">) => string;
14
+ export declare const updateCachedFavourite: (client: QueryClient, queryKey: QueryKey, key: string, isFavourite: boolean) => void;
@@ -15,6 +15,9 @@ export interface WorkspaceSelectListProps extends BoxProps {
15
15
  newPresets?: WorkspacePresetListItem[];
16
16
  testIdPrefix?: string;
17
17
  onSelectVersion?: (presetId: string, version: string) => void;
18
+ isFavourite?: (preset: WorkspacePresetListItem) => boolean;
19
+ onToggleFavourite?: (preset: WorkspacePresetListItem) => void;
20
+ favouritesDisabled?: boolean;
18
21
  }
19
22
  declare const WorkspaceSelectList: React.FC<WorkspaceSelectListProps>;
20
23
  export default WorkspaceSelectList;
@@ -5,6 +5,9 @@ export declare const WORKSPACE_SELECT_LIST_ROW_HEIGHT = 40;
5
5
  export declare const getPresetIcon: (preset: WorkspacePresetListItem, currentUsername?: string) => React.ReactElement | null;
6
6
  interface WorkspaceSelectListRowProps {
7
7
  workspacePreset: WorkspacePresetListItem;
8
+ isFavourite?: boolean;
9
+ onToggleFavourite?: (preset: WorkspacePresetListItem) => void;
10
+ favouritesDisabled?: boolean;
8
11
  onClickWorkspacePreset: (id: string) => void;
9
12
  onClickWorkspacePresetOption: (presetId: string, workspaceAction: WorkspacePresetAction, workspacePreset: WorkspacePresetListItem) => void;
10
13
  onOpenPresetInfo?: (workspacePreset: WorkspacePresetListItem) => void;
@@ -12,6 +12,7 @@ export declare const getViewPresets: (state: AppStore) => ViewPresetEntity[], ge
12
12
  error: ViewPresetError;
13
13
  isViewPresetListDialogOpen: boolean;
14
14
  filters: import("./types").ViewPresetsListFilter[];
15
+ favouritesOnly?: boolean | undefined;
15
16
  searchQuery: string;
16
17
  filterResults: EntityState<ViewPresetListItem, string>;
17
18
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -30,6 +31,7 @@ export declare const getViewPresetsIsFetching: ((state: AppStore, id: string) =>
30
31
  error: ViewPresetError;
31
32
  isViewPresetListDialogOpen: boolean;
32
33
  filters: import("./types").ViewPresetsListFilter[];
34
+ favouritesOnly?: boolean | undefined;
33
35
  searchQuery: string;
34
36
  filterResults: EntityState<ViewPresetListItem, string>;
35
37
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -43,6 +45,7 @@ export declare const getViewPresetsIsFetching: ((state: AppStore, id: string) =>
43
45
  error: ViewPresetError;
44
46
  isViewPresetListDialogOpen: boolean;
45
47
  filters: import("./types").ViewPresetsListFilter[];
48
+ favouritesOnly?: boolean | undefined;
46
49
  searchQuery: string;
47
50
  filterResults: EntityState<ViewPresetListItem, string>;
48
51
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -61,6 +64,7 @@ export declare const getViewPresetsIsFetching: ((state: AppStore, id: string) =>
61
64
  error: ViewPresetError;
62
65
  isViewPresetListDialogOpen: boolean;
63
66
  filters: import("./types").ViewPresetsListFilter[];
67
+ favouritesOnly?: boolean | undefined;
64
68
  searchQuery: string;
65
69
  filterResults: EntityState<ViewPresetListItem, string>;
66
70
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -87,6 +91,7 @@ export declare const getViewPresetsError: ((state: AppStore, id: string) => View
87
91
  error: ViewPresetError;
88
92
  isViewPresetListDialogOpen: boolean;
89
93
  filters: import("./types").ViewPresetsListFilter[];
94
+ favouritesOnly?: boolean | undefined;
90
95
  searchQuery: string;
91
96
  filterResults: EntityState<ViewPresetListItem, string>;
92
97
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -100,6 +105,7 @@ export declare const getViewPresetsError: ((state: AppStore, id: string) => View
100
105
  error: ViewPresetError;
101
106
  isViewPresetListDialogOpen: boolean;
102
107
  filters: import("./types").ViewPresetsListFilter[];
108
+ favouritesOnly?: boolean | undefined;
103
109
  searchQuery: string;
104
110
  filterResults: EntityState<ViewPresetListItem, string>;
105
111
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -118,6 +124,7 @@ export declare const getViewPresetsError: ((state: AppStore, id: string) => View
118
124
  error: ViewPresetError;
119
125
  isViewPresetListDialogOpen: boolean;
120
126
  filters: import("./types").ViewPresetsListFilter[];
127
+ favouritesOnly?: boolean | undefined;
121
128
  searchQuery: string;
122
129
  filterResults: EntityState<ViewPresetListItem, string>;
123
130
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -156,6 +163,7 @@ export declare const getViewPresetDetailError: ((state: AppStore, id: string) =>
156
163
  error: ViewPresetError;
157
164
  isViewPresetListDialogOpen: boolean;
158
165
  filters: import("./types").ViewPresetsListFilter[];
166
+ favouritesOnly?: boolean | undefined;
159
167
  searchQuery: string;
160
168
  filterResults: EntityState<ViewPresetListItem, string>;
161
169
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -169,6 +177,7 @@ export declare const getViewPresetDetailError: ((state: AppStore, id: string) =>
169
177
  error: ViewPresetError;
170
178
  isViewPresetListDialogOpen: boolean;
171
179
  filters: import("./types").ViewPresetsListFilter[];
180
+ favouritesOnly?: boolean | undefined;
172
181
  searchQuery: string;
173
182
  filterResults: EntityState<ViewPresetListItem, string>;
174
183
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -187,6 +196,7 @@ export declare const getViewPresetDetailError: ((state: AppStore, id: string) =>
187
196
  error: ViewPresetError;
188
197
  isViewPresetListDialogOpen: boolean;
189
198
  filters: import("./types").ViewPresetsListFilter[];
199
+ favouritesOnly?: boolean | undefined;
190
200
  searchQuery: string;
191
201
  filterResults: EntityState<ViewPresetListItem, string>;
192
202
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -221,6 +231,7 @@ export declare const getViewPresetHasChanges: ((state: AppStore, id: string) =>
221
231
  error: ViewPresetError;
222
232
  isViewPresetListDialogOpen: boolean;
223
233
  filters: import("./types").ViewPresetsListFilter[];
234
+ favouritesOnly?: boolean | undefined;
224
235
  searchQuery: string;
225
236
  filterResults: EntityState<ViewPresetListItem, string>;
226
237
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -234,6 +245,7 @@ export declare const getViewPresetHasChanges: ((state: AppStore, id: string) =>
234
245
  error: ViewPresetError;
235
246
  isViewPresetListDialogOpen: boolean;
236
247
  filters: import("./types").ViewPresetsListFilter[];
248
+ favouritesOnly?: boolean | undefined;
237
249
  searchQuery: string;
238
250
  filterResults: EntityState<ViewPresetListItem, string>;
239
251
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -252,6 +264,7 @@ export declare const getViewPresetHasChanges: ((state: AppStore, id: string) =>
252
264
  error: ViewPresetError;
253
265
  isViewPresetListDialogOpen: boolean;
254
266
  filters: import("./types").ViewPresetsListFilter[];
267
+ favouritesOnly?: boolean | undefined;
255
268
  searchQuery: string;
256
269
  filterResults: EntityState<ViewPresetListItem, string>;
257
270
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -278,6 +291,7 @@ export declare const getViewPresetActiveId: ((state: AppStore, id: string) => st
278
291
  error: ViewPresetError;
279
292
  isViewPresetListDialogOpen: boolean;
280
293
  filters: import("./types").ViewPresetsListFilter[];
294
+ favouritesOnly?: boolean | undefined;
281
295
  searchQuery: string;
282
296
  filterResults: EntityState<ViewPresetListItem, string>;
283
297
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -291,6 +305,7 @@ export declare const getViewPresetActiveId: ((state: AppStore, id: string) => st
291
305
  error: ViewPresetError;
292
306
  isViewPresetListDialogOpen: boolean;
293
307
  filters: import("./types").ViewPresetsListFilter[];
308
+ favouritesOnly?: boolean | undefined;
294
309
  searchQuery: string;
295
310
  filterResults: EntityState<ViewPresetListItem, string>;
296
311
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -309,6 +324,7 @@ export declare const getViewPresetActiveId: ((state: AppStore, id: string) => st
309
324
  error: ViewPresetError;
310
325
  isViewPresetListDialogOpen: boolean;
311
326
  filters: import("./types").ViewPresetsListFilter[];
327
+ favouritesOnly?: boolean | undefined;
312
328
  searchQuery: string;
313
329
  filterResults: EntityState<ViewPresetListItem, string>;
314
330
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -377,6 +393,7 @@ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: strin
377
393
  error: ViewPresetError;
378
394
  isViewPresetListDialogOpen: boolean;
379
395
  filters: import("./types").ViewPresetsListFilter[];
396
+ favouritesOnly?: boolean | undefined;
380
397
  searchQuery: string;
381
398
  filterResults: EntityState<ViewPresetListItem, string>;
382
399
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -390,6 +407,7 @@ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: strin
390
407
  error: ViewPresetError;
391
408
  isViewPresetListDialogOpen: boolean;
392
409
  filters: import("./types").ViewPresetsListFilter[];
410
+ favouritesOnly?: boolean | undefined;
393
411
  searchQuery: string;
394
412
  filterResults: EntityState<ViewPresetListItem, string>;
395
413
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -408,6 +426,7 @@ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: strin
408
426
  error: ViewPresetError;
409
427
  isViewPresetListDialogOpen: boolean;
410
428
  filters: import("./types").ViewPresetsListFilter[];
429
+ favouritesOnly?: boolean | undefined;
411
430
  searchQuery: string;
412
431
  filterResults: EntityState<ViewPresetListItem, string>;
413
432
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -439,6 +458,7 @@ export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelI
439
458
  error: ViewPresetError;
440
459
  isViewPresetListDialogOpen: boolean;
441
460
  filters: import("./types").ViewPresetsListFilter[];
461
+ favouritesOnly?: boolean | undefined;
442
462
  searchQuery: string;
443
463
  filterResults: EntityState<ViewPresetListItem, string>;
444
464
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -457,6 +477,7 @@ export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelI
457
477
  error: ViewPresetError;
458
478
  isViewPresetListDialogOpen: boolean;
459
479
  filters: import("./types").ViewPresetsListFilter[];
480
+ favouritesOnly?: boolean | undefined;
460
481
  searchQuery: string;
461
482
  filterResults: EntityState<ViewPresetListItem, string>;
462
483
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -485,6 +506,7 @@ export declare const getViewPresetListFiltersForView: ((state: AppStore, _panelI
485
506
  error: ViewPresetError;
486
507
  isViewPresetListDialogOpen: boolean;
487
508
  filters: import("./types").ViewPresetsListFilter[];
509
+ favouritesOnly?: boolean | undefined;
488
510
  searchQuery: string;
489
511
  filterResults: EntityState<ViewPresetListItem, string>;
490
512
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -511,6 +533,7 @@ export declare const getViewPresetListSearchQueryForView: ((state: AppStore, id:
511
533
  error: ViewPresetError;
512
534
  isViewPresetListDialogOpen: boolean;
513
535
  filters: import("./types").ViewPresetsListFilter[];
536
+ favouritesOnly?: boolean | undefined;
514
537
  searchQuery: string;
515
538
  filterResults: EntityState<ViewPresetListItem, string>;
516
539
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -524,6 +547,7 @@ export declare const getViewPresetListSearchQueryForView: ((state: AppStore, id:
524
547
  error: ViewPresetError;
525
548
  isViewPresetListDialogOpen: boolean;
526
549
  filters: import("./types").ViewPresetsListFilter[];
550
+ favouritesOnly?: boolean | undefined;
527
551
  searchQuery: string;
528
552
  filterResults: EntityState<ViewPresetListItem, string>;
529
553
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -542,6 +566,7 @@ export declare const getViewPresetListSearchQueryForView: ((state: AppStore, id:
542
566
  error: ViewPresetError;
543
567
  isViewPresetListDialogOpen: boolean;
544
568
  filters: import("./types").ViewPresetsListFilter[];
569
+ favouritesOnly?: boolean | undefined;
545
570
  searchQuery: string;
546
571
  filterResults: EntityState<ViewPresetListItem, string>;
547
572
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -568,6 +593,7 @@ export declare const getViewPresetListFilterResultsForView: ((state: AppStore, i
568
593
  error: ViewPresetError;
569
594
  isViewPresetListDialogOpen: boolean;
570
595
  filters: import("./types").ViewPresetsListFilter[];
596
+ favouritesOnly?: boolean | undefined;
571
597
  searchQuery: string;
572
598
  filterResults: EntityState<ViewPresetListItem, string>;
573
599
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -581,6 +607,7 @@ export declare const getViewPresetListFilterResultsForView: ((state: AppStore, i
581
607
  error: ViewPresetError;
582
608
  isViewPresetListDialogOpen: boolean;
583
609
  filters: import("./types").ViewPresetsListFilter[];
610
+ favouritesOnly?: boolean | undefined;
584
611
  searchQuery: string;
585
612
  filterResults: EntityState<ViewPresetListItem, string>;
586
613
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -599,6 +626,7 @@ export declare const getViewPresetListFilterResultsForView: ((state: AppStore, i
599
626
  error: ViewPresetError;
600
627
  isViewPresetListDialogOpen: boolean;
601
628
  filters: import("./types").ViewPresetsListFilter[];
629
+ favouritesOnly?: boolean | undefined;
602
630
  searchQuery: string;
603
631
  filterResults: EntityState<ViewPresetListItem, string>;
604
632
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -625,6 +653,7 @@ export declare const getViewPresetLabelFilters: ((state: AppStore, id: string) =
625
653
  error: ViewPresetError;
626
654
  isViewPresetListDialogOpen: boolean;
627
655
  filters: import("./types").ViewPresetsListFilter[];
656
+ favouritesOnly?: boolean | undefined;
628
657
  searchQuery: string;
629
658
  filterResults: EntityState<ViewPresetListItem, string>;
630
659
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -638,6 +667,7 @@ export declare const getViewPresetLabelFilters: ((state: AppStore, id: string) =
638
667
  error: ViewPresetError;
639
668
  isViewPresetListDialogOpen: boolean;
640
669
  filters: import("./types").ViewPresetsListFilter[];
670
+ favouritesOnly?: boolean | undefined;
641
671
  searchQuery: string;
642
672
  filterResults: EntityState<ViewPresetListItem, string>;
643
673
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -656,6 +686,7 @@ export declare const getViewPresetLabelFilters: ((state: AppStore, id: string) =
656
686
  error: ViewPresetError;
657
687
  isViewPresetListDialogOpen: boolean;
658
688
  filters: import("./types").ViewPresetsListFilter[];
689
+ favouritesOnly?: boolean | undefined;
659
690
  searchQuery: string;
660
691
  filterResults: EntityState<ViewPresetListItem, string>;
661
692
  labelFilters?: WorkspacePresetLabels | undefined;
@@ -669,3 +700,63 @@ export declare const getViewPresetLabelFilters: ((state: AppStore, id: string) =
669
700
  memoize: typeof import("reselect").weakMapMemoize;
670
701
  argsMemoize: typeof import("reselect").weakMapMemoize;
671
702
  };
703
+ export declare const getFavouritesOnly: ((state: AppStore, id: string) => boolean) & {
704
+ clearCache: () => void;
705
+ resultsCount: () => number;
706
+ resetResultsCount: () => void;
707
+ } & {
708
+ resultFunc: (resultFuncArgs_0: {
709
+ panelId: string;
710
+ activeViewPresetId: string;
711
+ hasChanges: boolean;
712
+ isFetching: boolean;
713
+ error: ViewPresetError;
714
+ isViewPresetListDialogOpen: boolean;
715
+ filters: import("./types").ViewPresetsListFilter[];
716
+ favouritesOnly?: boolean | undefined;
717
+ searchQuery: string;
718
+ filterResults: EntityState<ViewPresetListItem, string>;
719
+ labelFilters?: WorkspacePresetLabels | undefined;
720
+ username?: string | undefined;
721
+ }) => boolean;
722
+ memoizedResultFunc: ((resultFuncArgs_0: {
723
+ panelId: string;
724
+ activeViewPresetId: string;
725
+ hasChanges: boolean;
726
+ isFetching: boolean;
727
+ error: ViewPresetError;
728
+ isViewPresetListDialogOpen: boolean;
729
+ filters: import("./types").ViewPresetsListFilter[];
730
+ favouritesOnly?: boolean | undefined;
731
+ searchQuery: string;
732
+ filterResults: EntityState<ViewPresetListItem, string>;
733
+ labelFilters?: WorkspacePresetLabels | undefined;
734
+ username?: string | undefined;
735
+ }) => boolean) & {
736
+ clearCache: () => void;
737
+ resultsCount: () => number;
738
+ resetResultsCount: () => void;
739
+ };
740
+ lastResult: () => boolean;
741
+ dependencies: [(state: AppStore, id: string) => {
742
+ panelId: string;
743
+ activeViewPresetId: string;
744
+ hasChanges: boolean;
745
+ isFetching: boolean;
746
+ error: ViewPresetError;
747
+ isViewPresetListDialogOpen: boolean;
748
+ filters: import("./types").ViewPresetsListFilter[];
749
+ favouritesOnly?: boolean | undefined;
750
+ searchQuery: string;
751
+ filterResults: EntityState<ViewPresetListItem, string>;
752
+ labelFilters?: WorkspacePresetLabels | undefined;
753
+ username?: string | undefined;
754
+ }];
755
+ recomputations: () => number;
756
+ resetRecomputations: () => void;
757
+ dependencyRecomputations: () => number;
758
+ resetDependencyRecomputations: () => void;
759
+ } & {
760
+ memoize: typeof import("reselect").weakMapMemoize;
761
+ argsMemoize: typeof import("reselect").weakMapMemoize;
762
+ };
@@ -60,6 +60,7 @@ export interface ViewPresetEntity {
60
60
  error: ViewPresetError;
61
61
  isViewPresetListDialogOpen: boolean;
62
62
  filters: ViewPresetsListFilter[];
63
+ favouritesOnly?: boolean;
63
64
  searchQuery: string;
64
65
  filterResults: EntityState<ViewPresetListItem, string>;
65
66
  labelFilters?: WorkspacePresetLabels;
@@ -304,18 +304,18 @@ export declare const getViewType: ((state: AppStore) => "" | import("./types").V
304
304
  * @param {object} store store: object - Store object
305
305
  * @returns {string} returnType: string
306
306
  */
307
- export declare const getSelectedWorkspaceScope: ((state: AppStore) => import("@opengeoweb/shared").SystemScope) & {
307
+ export declare const getSelectedWorkspaceScope: ((state: AppStore) => import("libs/shared/dist").SystemScope) & {
308
308
  clearCache: () => void;
309
309
  resultsCount: () => number;
310
310
  resetResultsCount: () => void;
311
311
  } & {
312
- resultFunc: (resultFuncArgs_0: WorkspaceState) => import("@opengeoweb/shared").SystemScope;
313
- memoizedResultFunc: ((resultFuncArgs_0: WorkspaceState) => import("@opengeoweb/shared").SystemScope) & {
312
+ resultFunc: (resultFuncArgs_0: WorkspaceState) => import("libs/shared/dist").SystemScope;
313
+ memoizedResultFunc: ((resultFuncArgs_0: WorkspaceState) => import("libs/shared/dist").SystemScope) & {
314
314
  clearCache: () => void;
315
315
  resultsCount: () => number;
316
316
  resetResultsCount: () => void;
317
317
  };
318
- lastResult: () => import("@opengeoweb/shared").SystemScope;
318
+ lastResult: () => import("libs/shared/dist").SystemScope;
319
319
  dependencies: [(store: AppStore) => WorkspaceState];
320
320
  recomputations: () => number;
321
321
  resetRecomputations: () => void;
@@ -96,6 +96,8 @@ export interface PresetListItemOrigin {
96
96
  type: 'plugin';
97
97
  pluginId: string;
98
98
  versions?: string[];
99
+ version?: string;
100
+ activeVersion?: string;
99
101
  }
100
102
  export interface WorkspacePresetListItem {
101
103
  id: string;
@@ -192,4 +192,26 @@ export declare const getWorkspaceLabelFilters: ((state: AppStore) => WorkspacePr
192
192
  memoize: typeof import("reselect").weakMapMemoize;
193
193
  argsMemoize: typeof import("reselect").weakMapMemoize;
194
194
  };
195
+ export declare const getFavouritesOnly: ((state: AppStore) => boolean) & {
196
+ clearCache: () => void;
197
+ resultsCount: () => number;
198
+ resetResultsCount: () => void;
199
+ } & {
200
+ resultFunc: (resultFuncArgs_0: WorkspaceListState) => boolean;
201
+ memoizedResultFunc: ((resultFuncArgs_0: WorkspaceListState) => boolean) & {
202
+ clearCache: () => void;
203
+ resultsCount: () => number;
204
+ resetResultsCount: () => void;
205
+ };
206
+ lastResult: () => boolean;
207
+ dependencies: [(store: AppStore) => WorkspaceListState];
208
+ recomputations: () => number;
209
+ resetRecomputations: () => void;
210
+ dependencyRecomputations: () => number;
211
+ resetDependencyRecomputations: () => void;
212
+ } & {
213
+ memoize: typeof import("reselect").weakMapMemoize;
214
+ argsMemoize: typeof import("reselect").weakMapMemoize;
215
+ };
216
+ export declare const filterAndSortFavouritePresets: <T>(presets: T[], isFavourite: (preset: T) => boolean, favouritesOnly: boolean) => T[];
195
217
  export {};
@@ -13,7 +13,8 @@ export declare enum PresetFilterType {
13
13
  personal = "personal",
14
14
  shared = "shared",
15
15
  system = "system",
16
- plugin = "plugin"
16
+ plugin = "plugin",
17
+ favourites = "favourites"
17
18
  }
18
19
  export type WorkspaceListError = TranslatableWorkspaceListError | VerbatimWorkspaceListError | undefined;
19
20
  export interface TranslatableWorkspaceListError {
@@ -68,6 +69,7 @@ export interface WorkspaceListState {
68
69
  workspaceActionDialog?: WorkspaceActionDialogType;
69
70
  searchQuery?: string;
70
71
  workspaceListFilters?: WorkspaceListFilter[];
72
+ favouritesOnly?: boolean;
71
73
  workspaceLabelFilters?: WorkspacePresetLabels;
72
74
  }
73
75
  export interface ToggleListDialogPayload {
package/package.json CHANGED
@@ -1,68 +1,68 @@
1
1
  {
2
- "name": "@opengeoweb/workspace",
3
- "version": "19.6.1",
4
- "description": "GeoWeb Workspace library for the opengeoweb project",
5
- "license": "Apache-2.0",
6
- "repository": {
7
- "type": "git",
8
- "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
- },
10
- "main": "./dist/index.esm.js",
11
- "module": "./dist/index.esm.js",
12
- "types": "./dist/index.d.ts",
13
- "exports": {
14
- "./package.json": "./package.json",
15
- ".": {
16
- "@opengeoweb/source": "./src/index.ts",
17
- "types": "./dist/index.d.ts",
18
- "import": "./dist/index.esm.js",
19
- "default": "./dist/index.esm.js"
20
- }
21
- },
22
- "dependencies": {
23
- "react-redux": "^9.2.0",
24
- "@opengeoweb/shared": "*",
25
- "@opengeoweb/store": "*",
26
- "@opengeoweb/api": "*",
27
- "react-hook-form": "^7.50.1",
28
- "@opengeoweb/theme": "*",
29
- "@reduxjs/toolkit": "^2.6.1",
30
- "@opengeoweb/snackbar": "*",
31
- "react-window": "^2.2.6",
32
- "lodash": "^4.18.1",
33
- "axios": "^1.18.0",
34
- "react-mosaic-component": "npm:react-mosaic-component-opengeoweb@^6.1.1-opengeoweb.1",
35
- "@opengeoweb/form-fields": "*",
36
- "@opengeoweb/time-series": "*",
37
- "@opengeoweb/authentication": "*",
38
- "@opengeoweb/plugins": "*",
39
- "@opengeoweb/core": "*",
40
- "@opengeoweb/taf": "*",
41
- "@opengeoweb/sigmet-airmet": "*",
42
- "@opengeoweb/warnings": "*",
43
- "@opengeoweb/space-weather": "*",
44
- "i18next": "^25.0.1",
45
- "react-i18next": "^15.1.1",
46
- "@mui/material": "^9.0.1",
47
- "@opengeoweb/webmap-react": "*",
48
- "@tanstack/react-query": "^5.85.5",
49
- "@opengeoweb/soundings": "*",
50
- "@opengeoweb/knmi-components": "*",
51
- "@mui/system": "^9.0.1"
52
- },
53
- "peerDependencies": {
54
- "react": "19",
55
- "@emotion/react": "*",
56
- "@emotion/styled": "*"
57
- },
58
- "devDependencies": {
59
- "eslint-plugin-storybook": "10.3.3",
60
- "msw": "^2.7.3"
61
- },
62
- "files": [
63
- "dist",
64
- "!dist/package.json",
65
- "README.md",
66
- "package.json"
67
- ]
68
- }
2
+ "name": "@opengeoweb/workspace",
3
+ "version": "20.0.0",
4
+ "description": "GeoWeb Workspace library for the opengeoweb project",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
+ },
10
+ "main": "./dist/index.esm.js",
11
+ "module": "./dist/index.esm.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ "./package.json": "./package.json",
15
+ ".": {
16
+ "@opengeoweb/source": "./src/index.ts",
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.esm.js",
19
+ "default": "./dist/index.esm.js"
20
+ }
21
+ },
22
+ "dependencies": {
23
+ "react-redux": "^9.2.0",
24
+ "@opengeoweb/shared": "20.0.0",
25
+ "@opengeoweb/store": "20.0.0",
26
+ "@opengeoweb/api": "20.0.0",
27
+ "react-hook-form": "^7.50.1",
28
+ "@opengeoweb/theme": "20.0.0",
29
+ "@reduxjs/toolkit": "^2.6.1",
30
+ "@opengeoweb/snackbar": "20.0.0",
31
+ "react-window": "^2.2.6",
32
+ "lodash": "^4.18.1",
33
+ "axios": "^1.18.0",
34
+ "react-mosaic-component": "npm:react-mosaic-component-opengeoweb@^6.1.1-opengeoweb.1",
35
+ "@opengeoweb/form-fields": "20.0.0",
36
+ "@opengeoweb/time-series": "20.0.0",
37
+ "@opengeoweb/authentication": "20.0.0",
38
+ "@opengeoweb/plugins": "20.0.0",
39
+ "@opengeoweb/core": "20.0.0",
40
+ "@opengeoweb/taf": "20.0.0",
41
+ "@opengeoweb/sigmet-airmet": "20.0.0",
42
+ "@opengeoweb/warnings": "20.0.0",
43
+ "@opengeoweb/space-weather": "20.0.0",
44
+ "i18next": "^25.0.1",
45
+ "react-i18next": "^15.1.1",
46
+ "@mui/material": "^9.0.1",
47
+ "@opengeoweb/webmap-react": "20.0.0",
48
+ "@tanstack/react-query": "^5.85.5",
49
+ "@opengeoweb/soundings": "20.0.0",
50
+ "@opengeoweb/knmi-components": "20.0.0",
51
+ "@mui/system": "^9.0.1"
52
+ },
53
+ "peerDependencies": {
54
+ "react": "19",
55
+ "@emotion/react": "*",
56
+ "@emotion/styled": "*"
57
+ },
58
+ "devDependencies": {
59
+ "eslint-plugin-storybook": "10.3.3",
60
+ "msw": "^2.7.3"
61
+ },
62
+ "files": [
63
+ "dist",
64
+ "!dist/package.json",
65
+ "README.md",
66
+ "package.json"
67
+ ]
68
+ }