@opengeoweb/workspace 21.1.0 → 21.2.0-nightly-20261113
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/dist/index.esm.js +2073 -1496
- package/dist/src/index.d.ts +1 -0
- package/dist/src/lib/components/DataExplorerTimeseriesConnect/DataExplorerTimeseriesConnect.d.ts +8 -0
- package/dist/src/lib/store/viewPresets/types.d.ts +3 -2
- package/dist/src/lib/store/workspace/restoreSyncGroupViews.d.ts +8 -0
- package/package.json +23 -20
package/dist/index.esm.js
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import { createSlice, createEntityAdapter, createSelector, createListenerMiddleware, isAnyOf, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
2
2
|
import { handleResponse, getHeaders, getQueryClient, QueryClientProviderWrapper, useAuthenticationContext as useAuthenticationContext$1, GEOWEB_ROLE_PRESETS_ADMIN as GEOWEB_ROLE_PRESETS_ADMIN$1 } from '@opengeoweb/api';
|
|
3
3
|
import { soundingsActions, SoundingsTypes, soundingsSelectors, soundingsReducer } from '@opengeoweb/soundings';
|
|
4
|
-
import { syncGroupsTypes, FEATURE_GROUP_PREFIX, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors,
|
|
5
|
-
import { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/time-series';
|
|
6
|
-
import { chunk, cloneDeep, isEqual, isString } from 'lodash';
|
|
7
|
-
import {
|
|
8
|
-
import { queryOptions, useQueryClient, useQuery, useMutation, useIsMutating } from '@tanstack/react-query';
|
|
9
|
-
import { sessionStorageProvider, SHARED_NAMESPACE, safelyInitI18nForTestsAndStories, sharedTranslations, isAxiosError, getAxiosErrorMessage, isAuthError, isAxiosAuthError, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, usePrevious, AlertBanner, CustomAccordion, CustomTooltip, linkifyText, dateUtils, SystemScope, SearchHighlight, ToggleMenu, SearchField, Filter, LastUpdateTime, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, isTargetInteractiveInput, ConfirmationButtons } from '@opengeoweb/shared';
|
|
4
|
+
import { syncGroupsTypes, FEATURE_GROUP_PREFIX, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, calculateSyncGroupFit, setSyncGroupViewFit, getVisibleArea, syncConstants, routerActions, createViewObjectForNewMap, mapListener, serviceListener, layersListener, syncGroupsListener, openlayersListener, uiReducer, loadingIndicatorReducer, syncGroupsReducer, layerReducer, serviceReducer, mapReducer, uiTypes, isWarningsTimelineLinkSourceAllowed, getTakenWarningTimelineIds, linkComponentTypesConstants, constructSyncSourceDisplayName, uiSelectors, loadingIndicatorSelectors, pickList, pickRecord, pickEntities } from '@opengeoweb/store';
|
|
5
|
+
import { timeseriesTranslations, TIME_SERIES_NAMESPACE, timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer, getUserAddedEDRServices, normalizeEdrServiceUrl, resolveEdrCollectionTarget, EdrCollectionTargetError } from '@opengeoweb/time-series';
|
|
6
|
+
import { chunk, cloneDeep, compact, isEqual, isString } from 'lodash';
|
|
7
|
+
import { snackbarTypes, snackbarActions, snackbarListener, snackbarReducer, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
|
|
10
8
|
import { pluginsActions, getPluginState, pluginsReducer, PluginProvider, PluginDebugProvider, OverlayPluginMenuButton, usePluginCatalog, OverlayPluginWindows } from '@opengeoweb/plugins';
|
|
11
9
|
import { warningsTranslations, WARN_NAMESPACE, warningsFiltersActions, publicWarningsSelectors } from '@opengeoweb/warnings';
|
|
12
|
-
import {
|
|
10
|
+
import { getLeaves, createBalancedTreeFromLeaves, MosaicContext, getAndAssertNodeAtPathExists, MosaicWindow, Mosaic } from 'react-mosaic-component';
|
|
13
11
|
import i18n from 'i18next';
|
|
14
12
|
import { useTranslation, I18nextProvider } from 'react-i18next';
|
|
15
13
|
import { coreTranslations, CORE_NAMESPACE, LoadingIndicatorProgressBar } from '@opengeoweb/core';
|
|
14
|
+
import { dataExplorerTranslations, DATA_EXPLORER_NAMESPACE, DataExplorerConnect } from '@opengeoweb/data-explorer';
|
|
16
15
|
import { formFieldsTranslations, FORM_FIELDS_NAMESPACE, ReactHookFormHiddenInput, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
|
|
16
|
+
import { SHARED_NAMESPACE, safelyInitI18nForTestsAndStories, sharedTranslations, sessionStorageProvider, isAxiosError, getAxiosErrorMessage, isAuthError, isAxiosAuthError, ConfirmationServiceProvider, CustomIconButton, useConfirmationDialog, usePrevious, AlertBanner, CustomAccordion, CustomTooltip, linkifyText, dateUtils, SystemScope, SearchHighlight, ToggleMenu, SearchField, Filter, LastUpdateTime, renderCounter, CustomDialog, ToolContainer, CustomToggleButton, isTargetInteractiveInput, ConfirmationButtons } from '@opengeoweb/shared';
|
|
17
17
|
import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE } from '@opengeoweb/webmap-react';
|
|
18
|
+
import { queryOptions, useQueryClient, useQuery, useMutation, useIsMutating } from '@tanstack/react-query';
|
|
18
19
|
import { isAxiosError as isAxiosError$1 } from 'axios';
|
|
19
20
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
20
21
|
import { Provider, useDispatch, useSelector, useStore, shallowEqual } from 'react-redux';
|
|
21
22
|
import { AuthenticationProvider, useAuthenticationContext, GEOWEB_ROLE_PRESETS_ADMIN } from '@opengeoweb/authentication';
|
|
22
23
|
import { ThemeWrapper, lightTheme, Link, LinkOff, SplitHorizontal, SplitVertical, SplitHorizontalWithContent, SplitVerticalWithContent, Expand, UnExpand, ChevronDown, Close, ChevronUp, LockLocked, Star, StarOutline, Info, WorkspacePresetsSystemIcon, WorkspacePresetsPluginIcon, SharedPresetsMyUser, SharedPresetsOtherUsers, WorkspacePresetsMyIcon, BackdropStyle, Options, CloudLoading, CloudIdle, WebAssetOff, Exclamation } from '@opengeoweb/theme';
|
|
23
24
|
import React, { useEffect, useCallback } from 'react';
|
|
24
|
-
import { Menu, Typography, List, ListItem, ListItemButton, ListItemIcon, Checkbox, ListItemText, MenuItem, useTheme, Box, LinearProgress, Button, Stack, FormControlLabel, Chip, Popper, ClickAwayListener, Paper, IconButton, Collapse, Divider, Grid, TextField, ListSubheader, Tabs } from '@mui/material';
|
|
25
|
+
import { Menu, Typography, List, ListItem, ListItemButton, ListItemIcon, Checkbox, ListItemText, MenuItem, useTheme, Box, LinearProgress, Button, Stack, FormControlLabel, Chip, Popper, ClickAwayListener, Paper, IconButton, Collapse, Divider, Grid, TextField, ListSubheader, Tabs, linearProgressClasses, Dialog, DialogTitle, DialogActions } from '@mui/material';
|
|
25
26
|
import 'react-mosaic-component/react-mosaic-component.css';
|
|
26
27
|
import { useFormContext, useWatch, useForm, FormProvider } from 'react-hook-form';
|
|
27
28
|
import { List as List$1 } from 'react-window';
|
|
29
|
+
import { keyframes } from '@mui/material/styles';
|
|
30
|
+
import { v4 } from 'uuid';
|
|
28
31
|
import { http, HttpResponse, delay } from 'msw';
|
|
29
32
|
|
|
30
33
|
var en = {
|
|
@@ -36,7 +39,8 @@ var en = {
|
|
|
36
39
|
"workspace-new": "New workspace",
|
|
37
40
|
"workspace-loading": "Loading",
|
|
38
41
|
"workspace-options": "Options",
|
|
39
|
-
"workspace-
|
|
42
|
+
"workspace-results_one": "{{count}} result",
|
|
43
|
+
"workspace-results_other": "{{count}} results",
|
|
40
44
|
"workspace-delete": "Delete",
|
|
41
45
|
"workspce-clear": "Clear",
|
|
42
46
|
"workspace-save": "Save",
|
|
@@ -123,6 +127,7 @@ var en = {
|
|
|
123
127
|
"workspace-viewpreset-success-unshare": "View preset \"{{TITLE}}\" has been successfully unshared",
|
|
124
128
|
"workspace-loading-indicator-loading": "Loading",
|
|
125
129
|
"workspace-loading-indicator-idle": "Loaded",
|
|
130
|
+
"workspace-map-views-restore-timeout": "Map views may not match the saved workspace. Reload the workspace to try again.",
|
|
126
131
|
"workspace-open-tab": "Open in new tab",
|
|
127
132
|
"workspace-info-title": "Information",
|
|
128
133
|
"workspace-info-preset-title": "Title:",
|
|
@@ -188,40 +193,47 @@ var fi = {
|
|
|
188
193
|
"workspace-add-favourite": "Lisää {{title}} suosikkeihin",
|
|
189
194
|
"workspace-remove-favourite": "Poista {{title}} suosikeista",
|
|
190
195
|
"workspace-favourites-error": "Suosikkeja ei voitu ladata tai tallentaa. Yritä uudelleen.",
|
|
191
|
-
"workspace-menu": "
|
|
192
|
-
"workspace-new": "Uusi
|
|
196
|
+
"workspace-menu": "Työtilavalikko",
|
|
197
|
+
"workspace-new": "Uusi työtila",
|
|
198
|
+
"workspace-new-soundings": "Uusi luotaustyötila",
|
|
199
|
+
"workspace-template-map": "Uusi map preset",
|
|
200
|
+
"workspace-template-timeseries": "Uusi timeseries preset",
|
|
201
|
+
"workspace-template-soundings": "Uusi luotauspreset",
|
|
202
|
+
"workspace-template-warninglist": "Uusi varoituslistapreset",
|
|
203
|
+
"workspace-template-timeline": "Uusi aikajanapreset",
|
|
193
204
|
"workspace-loading": "Ladataan",
|
|
194
205
|
"workspace-options": "Valinnat",
|
|
195
|
-
"workspace-
|
|
206
|
+
"workspace-results_one": "{{count}} tulos",
|
|
207
|
+
"workspace-results_other": "{{count}} tulosta",
|
|
196
208
|
"workspace-delete": "Poista",
|
|
197
209
|
"workspce-clear": "Tyhjennä",
|
|
198
210
|
"workspace-save": "Tallenna",
|
|
199
211
|
"workspace-save-as": "Tallenna nimellä",
|
|
200
|
-
"workspace-dialog-description": "
|
|
201
|
-
"workspace-char-limit": "
|
|
202
|
-
"workspace-edit": "Muokkaa
|
|
212
|
+
"workspace-dialog-description": "Lyhyt kuvaus",
|
|
213
|
+
"workspace-char-limit": "Merkkirajoitus",
|
|
214
|
+
"workspace-edit": "Muokkaa metatietoja",
|
|
203
215
|
"workspace-edit-title": "Muokkaa otsikkoa",
|
|
204
|
-
"workspace-share": "
|
|
205
|
-
"workspace-stop-share": "
|
|
216
|
+
"workspace-share": "Jaa",
|
|
217
|
+
"workspace-stop-share": "Lopeta jakaminen",
|
|
206
218
|
"geoweb-welcome": "Tervetuloa Geoweb-sovellukseen. Valitse jokin preset avataksesi uusia näkymiä",
|
|
207
219
|
"workspace-modified-new": "muokattu",
|
|
208
220
|
"workspace-modified-existing": "ei tallennettu",
|
|
209
|
-
"workspace-dialog-delete": "Poista
|
|
221
|
+
"workspace-dialog-delete": "Poista työtila",
|
|
210
222
|
"workspace-duplicate": "Monista",
|
|
211
223
|
"workspace-cancel": "Peruuta",
|
|
212
224
|
"workspace-dialog-name": "Nimi",
|
|
213
225
|
"workspace-dialog-abstract": "Tiivistelmä",
|
|
214
226
|
"workspace-dialog-confirm-delete-message": "Oletko varma, että haluat poistaa workspace presetin: \"{{TITLE}}\"?",
|
|
215
227
|
"workspace-dialog-confirm-reset-message": "ei käännetty",
|
|
216
|
-
"workspace-error-fetch": "
|
|
217
|
-
"workspace-error-fetch-detail": "
|
|
228
|
+
"workspace-error-fetch": "Työtilaluettelon hakeminen epäonnistui",
|
|
229
|
+
"workspace-error-fetch-detail": "Työtilan \"{{WORKSPACE_ID}}\" hakeminen epäonnistui",
|
|
218
230
|
"workspace-retry": "Yritä uudelleen",
|
|
219
231
|
"workspace-delete-tooltip": "Poista preset",
|
|
220
232
|
"workspace-control-split-horizontal": "Jaa ikkuna vaakasuoraan",
|
|
221
233
|
"workspace-control-split-vertical": "Jaa ikkuna pystysuoraan",
|
|
222
234
|
"workspace-control-split-shift": "Pidä Shift painettuna kopioidaksesi näkymän sisällön",
|
|
223
|
-
"workspace-control-split-horizontal-with-data": "Jaa ikkuna
|
|
224
|
-
"workspace-control-split-vertical-with-data": "Jaa ikkuna
|
|
235
|
+
"workspace-control-split-horizontal-with-data": "Jaa ikkuna vaakasuoraan ja kopioi näkymän sisältö",
|
|
236
|
+
"workspace-control-split-vertical-with-data": "Jaa ikkuna pystysuoraan ja kopioi näkymän sisältö",
|
|
225
237
|
"workspace-control-expand": "Laajenna ikkuna",
|
|
226
238
|
"workspace-control-unexpand": "Supista ikkuna",
|
|
227
239
|
"workspace-control-show-options": "Näytä asetukset",
|
|
@@ -240,15 +252,16 @@ var fi = {
|
|
|
240
252
|
"workspace-mappreset-error-fetch": "Map presettien hakeminen epäonnistui",
|
|
241
253
|
"workspace-list-error": "Workspace presettien hakeminen epäonnistui",
|
|
242
254
|
"workspace-list-success-save-all": "Workspace \"{{TITLE}}\" ja siihen sisältyvät viewpresetit tallennettu onnistuneesti",
|
|
243
|
-
"workspace-list-success-delete": "
|
|
244
|
-
"workspace-list-success-duplicate": "
|
|
245
|
-
"workspace-list-success-edit": "
|
|
246
|
-
"workspace-list-success-reset": "
|
|
247
|
-
"workspace-list-success-share": "
|
|
248
|
-
"workspace-list-success-save": "
|
|
249
|
-
"workspace-
|
|
255
|
+
"workspace-list-success-delete": "Työtila \"{{TITLE}}\" on poistettu",
|
|
256
|
+
"workspace-list-success-duplicate": "Työtila \"{{TITLE}}\" on tallennettu",
|
|
257
|
+
"workspace-list-success-edit": "Työtilaa \"{{TITLE}}\" on muokattu",
|
|
258
|
+
"workspace-list-success-reset": "Työtila \"{{TITLE}}\" on palautettu alkuperäiseen tilaan",
|
|
259
|
+
"workspace-list-success-share": "Työtila \"{{TITLE}}\" on jaettu",
|
|
260
|
+
"workspace-list-success-save": "Työtila \"{{TITLE}}\" on tallennettu",
|
|
261
|
+
"workspace-list-success-unshare": "Työtilan \"{{TITLE}}\" jakaminen on lopetettu",
|
|
262
|
+
"workspace-save-error": "Työtilan \"{{TITLE}}\" tallentaminen epäonnistui",
|
|
250
263
|
"workspace-error-generic": "Jotain meni mönkään. Yritä uudelleen.",
|
|
251
|
-
"workspace-error-auth": "
|
|
264
|
+
"workspace-error-auth": "Tunnistautumisessa tapahtui virhe",
|
|
252
265
|
"workspace-viewpreset-success-delete": "Map preset \"{{TITLE}}\" poistettu onnistuneesti",
|
|
253
266
|
"workspace-viewpreset-success-save-as": "Uusi map preset \"{{TITLE}}\" tallennettu onnistuneesti",
|
|
254
267
|
"workspace-viewpreset-success-edit": "Map presettiä \"{{TITLE}}\" muokattu onnistuneesti",
|
|
@@ -258,75 +271,79 @@ var fi = {
|
|
|
258
271
|
"workspace-save-new-viewpreset": "ei käännetty",
|
|
259
272
|
"workspace-save-new-viewpreset-warning-system": "ei käännetty",
|
|
260
273
|
"workspace-save-new-viewpreset-warning-user": "ei käännetty",
|
|
261
|
-
"workspace-admin-save-workspace": "
|
|
262
|
-
"workspace-admin-save-user-workspace": "
|
|
274
|
+
"workspace-admin-save-workspace": "Tallenna järjestelmän työtila",
|
|
275
|
+
"workspace-admin-save-user-workspace": "Tallenna työtila",
|
|
263
276
|
"workspace-admin-select-modified-viewpresets": "ei käännetty",
|
|
264
277
|
"workspace-admin-save-new-viewpreset": "ei käännetty",
|
|
265
278
|
"workspace-admin-save-new-viewpreset-warning": "ei käännetty",
|
|
266
279
|
"workspace-admin-save-new-viewpreset-title": "ei käännetty",
|
|
267
280
|
"workspace-reset": "Palauta alkuperäinen",
|
|
268
|
-
"workspace-reset-title": "
|
|
281
|
+
"workspace-reset-title": "Palauta alkuperäinen",
|
|
282
|
+
"workspace-dialog-delete-system": "Poista järjestelmän työtila",
|
|
269
283
|
"workspace-dialog-confirm-delete-system": "ei käännetty",
|
|
284
|
+
"workspace-list-success-delete-system": "\"{{TITLE}}\" on poistettu järjestelmän työtiloista.",
|
|
270
285
|
"workspace-link-location-header": "Sijainti",
|
|
271
286
|
"workspace-link": "Link",
|
|
272
|
-
"workspace-dialog-confirm-reset-view-message": "
|
|
287
|
+
"workspace-dialog-confirm-reset-view-message": "Näkymä palautetaan alkuperäiseen tilaan ja kaikki muutokset menetetään. Haluatko varmasti jatkaa?",
|
|
273
288
|
"workspace-viewpreset-success-reset": "ei käännetty",
|
|
274
289
|
"workspace-viewpreset-success-share": "ei käännetty",
|
|
275
290
|
"workspace-viewpreset-success-unshare": "ei käännetty",
|
|
276
291
|
"workspace-loading-indicator-loading": "Ladataan",
|
|
277
292
|
"workspace-loading-indicator-idle": "Ladattu",
|
|
278
|
-
"workspace-open-tab": "
|
|
279
|
-
"workspace-info-title": "
|
|
280
|
-
"workspace-info-
|
|
281
|
-
"workspace-info-
|
|
282
|
-
"workspace-info-
|
|
283
|
-
"workspace-info-
|
|
293
|
+
"workspace-open-tab": "Avaa uudessa välilehdessä",
|
|
294
|
+
"workspace-info-title": "Tiedot",
|
|
295
|
+
"workspace-info-preset-title": "Otsikko:",
|
|
296
|
+
"workspace-info-short-description": "Lyhyt kuvaus",
|
|
297
|
+
"workspace-info-no-description": "Kuvausta ei ole saatavilla",
|
|
298
|
+
"workspace-info-abstract": "Tiivistelmä",
|
|
299
|
+
"workspace-info-no-abstract": "Tiivistelmää ei ole saatavilla",
|
|
284
300
|
"workspace-info-selected-labels": "Selected labels ({{count}})",
|
|
285
301
|
"workspace-info-no-labels": "No labels selected",
|
|
286
|
-
"workspace-info-updated": "
|
|
287
|
-
"workspace-info-author": "
|
|
288
|
-
"workspace-info-created": "
|
|
289
|
-
"workspace-info-created-by": "
|
|
290
|
-
"workspace-info-no-date-provided": "
|
|
291
|
-
"workspace-info-unknown-author": "
|
|
302
|
+
"workspace-info-updated": "Viimeksi muokattu",
|
|
303
|
+
"workspace-info-author": "Tekijä",
|
|
304
|
+
"workspace-info-created": "Luotu",
|
|
305
|
+
"workspace-info-created-by": "Tekijä",
|
|
306
|
+
"workspace-info-no-date-provided": "Ei ilmoitettu",
|
|
307
|
+
"workspace-info-unknown-author": "Tuntematon",
|
|
292
308
|
"workspace-info-tooltip": "Show preset information",
|
|
293
309
|
"workspace-currently": "Nykyinen",
|
|
294
|
-
"workspace-presets-form-labels-info": "ei
|
|
295
|
-
"workspace-presets-form-labels-clearAll": "
|
|
296
|
-
"workspace-presets-form-labels-collapseAll": "
|
|
297
|
-
"workspace-presets-form-labels-expandAll": "
|
|
310
|
+
"workspace-presets-form-labels-info": "Näkymän tyyppiä ei tyhjennetä.",
|
|
311
|
+
"workspace-presets-form-labels-clearAll": "Tyhjennä kaikki suodattimet ({{count}})",
|
|
312
|
+
"workspace-presets-form-labels-collapseAll": "Kutista",
|
|
313
|
+
"workspace-presets-form-labels-expandAll": "Laajenna kaikki",
|
|
298
314
|
"workspace-presets-form-labels-header": "ei käännetty",
|
|
299
|
-
"workspace-labels-purpose": "
|
|
300
|
-
"workspace-labels-parameters": "
|
|
301
|
-
"workspace-labels-phenomena": "
|
|
302
|
-
"workspace-labels-dataType": "
|
|
303
|
-
"workspace-labels-dataSource": "
|
|
304
|
-
"workspace-labels-viewType": "
|
|
315
|
+
"workspace-labels-purpose": "Käyttötarkoitus",
|
|
316
|
+
"workspace-labels-parameters": "Parametrit",
|
|
317
|
+
"workspace-labels-phenomena": "Sääilmiö",
|
|
318
|
+
"workspace-labels-dataType": "Aineiston tyyppi",
|
|
319
|
+
"workspace-labels-dataSource": "Aineiston lähde",
|
|
320
|
+
"workspace-labels-viewType": "Näkymän tyyppi",
|
|
305
321
|
"workspace-presets-form-active-labels": "ei käännetty ({{count}})",
|
|
306
|
-
"workspace-label-active": "
|
|
322
|
+
"workspace-label-active": "AKTIIVINEN",
|
|
323
|
+
"fetch-config-error-retry": "Yritä uudelleen",
|
|
307
324
|
"workspace-versions": "Valitse versio",
|
|
308
325
|
"workspace-version": "Versio {{version}}",
|
|
309
326
|
"workspace-version-current": "Versio {{version}} (nykyinen)",
|
|
310
327
|
"workspace-version-default": "Versio {{version}} (oletus)",
|
|
311
|
-
"workspace-copy-to-clipboard": "
|
|
312
|
-
"workspace-paste-from-clipboard": "
|
|
328
|
+
"workspace-copy-to-clipboard": "Kopioi työtila",
|
|
329
|
+
"workspace-paste-from-clipboard": "Liitä työtila",
|
|
313
330
|
"workspace-copy-viewpreset-to-clipboard": "Copy view preset",
|
|
314
331
|
"workspace-paste-viewpreset-from-clipboard": "Paste view preset",
|
|
315
|
-
"workspace-paste-dialog-title": "
|
|
332
|
+
"workspace-paste-dialog-title": "Liitä työtila leikepöydältä",
|
|
316
333
|
"workspace-paste-viewpreset-dialog-title": "Paste view preset",
|
|
317
|
-
"workspace-paste-load-button": "
|
|
334
|
+
"workspace-paste-load-button": "Lataa työtila",
|
|
318
335
|
"workspace-paste-load-viewpreset-button": "Load view preset",
|
|
319
|
-
"workspace-paste-placeholder": "
|
|
336
|
+
"workspace-paste-placeholder": "Liitä työtilan JSON-tiedot tähän",
|
|
320
337
|
"workspace-paste-viewpreset-placeholder": "Paste view preset JSON here",
|
|
321
|
-
"workspace-paste-field-label": "
|
|
338
|
+
"workspace-paste-field-label": "Työtilan JSON-tiedot",
|
|
322
339
|
"workspace-paste-viewpreset-field-label": "View preset JSON",
|
|
323
|
-
"workspace-copy-success": "
|
|
324
|
-
"workspace-paste-success": "
|
|
340
|
+
"workspace-copy-success": "Työtila kopioitu",
|
|
341
|
+
"workspace-paste-success": "Työtila ladattu",
|
|
325
342
|
"workspace-copy-viewpreset-success": "View preset JSON copied to clipboard",
|
|
326
343
|
"workspace-paste-viewpreset-success": "View preset loaded",
|
|
327
|
-
"workspace-paste-validation-invalid-json": "
|
|
328
|
-
"workspace-paste-validation-not-object": "
|
|
329
|
-
"workspace-paste-validation-missing-field": "
|
|
344
|
+
"workspace-paste-validation-invalid-json": "Virheellinen JSON: {{ERROR}}",
|
|
345
|
+
"workspace-paste-validation-not-object": "Syötteen on oltava JSON-objekti",
|
|
346
|
+
"workspace-paste-validation-missing-field": "Pakollinen kenttä puuttuu: \"{{ERROR}}\"",
|
|
330
347
|
"workspace-paste-validation-unexpanded-views": "Workspace contains view preset references. Use the Copy button to get a portable version.",
|
|
331
348
|
"workspace-paste-validation-wrong-preset-type": "The clipboard contains a view preset, not a workspace preset.",
|
|
332
349
|
"viewpreset-paste-validation-wrong-preset-type": "The clipboard contains a workspace preset, not a view preset."
|
|
@@ -340,7 +357,8 @@ var no = {
|
|
|
340
357
|
"workspace-new": "Ny arbeidsflate",
|
|
341
358
|
"workspace-loading": "Laster",
|
|
342
359
|
"workspace-options": "Valg",
|
|
343
|
-
"workspace-
|
|
360
|
+
"workspace-results_one": "{{count}} resultat",
|
|
361
|
+
"workspace-results_other": "{{count}} resultater",
|
|
344
362
|
"workspace-delete": "Slett",
|
|
345
363
|
"workspce-clear": "Tøm",
|
|
346
364
|
"workspace-save": "Lagre",
|
|
@@ -424,6 +442,7 @@ var no = {
|
|
|
424
442
|
"workspace-viewpreset-success-unshare": "Vinduet \"{{TITLE}}\" deles ikke lenger",
|
|
425
443
|
"workspace-loading-indicator-loading": "Laster inn",
|
|
426
444
|
"workspace-loading-indicator-idle": "Lastet inn",
|
|
445
|
+
"workspace-map-views-restore-timeout": "Kartvisningene samsvarer kanskje ikke med den lagrede arbeidsflaten. Last inn arbeidsflaten på nytt.",
|
|
427
446
|
"workspace-open-tab": "Åpne i ny fane",
|
|
428
447
|
"workspace-info-title": "Informasjon",
|
|
429
448
|
"workspace-info-short-description": "Kort beskrivelse",
|
|
@@ -489,7 +508,8 @@ var nl = {
|
|
|
489
508
|
"workspace-new": "Nieuwe workspace",
|
|
490
509
|
"workspace-loading": "Laden",
|
|
491
510
|
"workspace-options": "Opties",
|
|
492
|
-
"workspace-
|
|
511
|
+
"workspace-results_one": "{{count}} resultaat",
|
|
512
|
+
"workspace-results_other": "{{count}} resultaten",
|
|
493
513
|
"workspace-delete": "Verwijder",
|
|
494
514
|
"workspce-clear": "Wissen",
|
|
495
515
|
"workspace-save": "Opslaan",
|
|
@@ -575,6 +595,7 @@ var nl = {
|
|
|
575
595
|
"workspace-viewpreset-success-unshare": "Viewpreset \"{{TITLE}}\" deling is ongedaan gemaakt",
|
|
576
596
|
"workspace-loading-indicator-loading": "Aan het laden",
|
|
577
597
|
"workspace-loading-indicator-idle": "Klaar met laden",
|
|
598
|
+
"workspace-map-views-restore-timeout": "Kaartweergaven komen mogelijk niet overeen met de opgeslagen workspace. Laad de workspace opnieuw.",
|
|
578
599
|
"workspace-open-tab": "Open in nieuw tabblad",
|
|
579
600
|
"workspace-info-title": "Informatie",
|
|
580
601
|
"workspace-info-short-description": "Korte beschrijving",
|
|
@@ -666,6 +687,36 @@ function _asyncToGenerator(n) {
|
|
|
666
687
|
});
|
|
667
688
|
};
|
|
668
689
|
}
|
|
690
|
+
function _construct(t, e, r) {
|
|
691
|
+
if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
|
|
692
|
+
var o = [null];
|
|
693
|
+
o.push.apply(o, e);
|
|
694
|
+
var p = new (t.bind.apply(t, o))();
|
|
695
|
+
return r && _setPrototypeOf(p, r.prototype), p;
|
|
696
|
+
}
|
|
697
|
+
function _getPrototypeOf(t) {
|
|
698
|
+
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
|
|
699
|
+
return t.__proto__ || Object.getPrototypeOf(t);
|
|
700
|
+
}, _getPrototypeOf(t);
|
|
701
|
+
}
|
|
702
|
+
function _inheritsLoose(t, o) {
|
|
703
|
+
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
|
|
704
|
+
}
|
|
705
|
+
function _isNativeFunction(t) {
|
|
706
|
+
try {
|
|
707
|
+
return -1 !== Function.toString.call(t).indexOf("[native code]");
|
|
708
|
+
} catch (n) {
|
|
709
|
+
return "function" == typeof t;
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
function _isNativeReflectConstruct() {
|
|
713
|
+
try {
|
|
714
|
+
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
715
|
+
} catch (t) {}
|
|
716
|
+
return (_isNativeReflectConstruct = function () {
|
|
717
|
+
return !!t;
|
|
718
|
+
})();
|
|
719
|
+
}
|
|
669
720
|
function _objectDestructuringEmpty(t) {
|
|
670
721
|
if (null == t) throw new TypeError("Cannot destructure " + t);
|
|
671
722
|
}
|
|
@@ -786,6 +837,76 @@ function _regeneratorDefine(e, r, n, t) {
|
|
|
786
837
|
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
787
838
|
}, _regeneratorDefine(e, r, n, t);
|
|
788
839
|
}
|
|
840
|
+
function _setPrototypeOf(t, e) {
|
|
841
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
842
|
+
return t.__proto__ = e, t;
|
|
843
|
+
}, _setPrototypeOf(t, e);
|
|
844
|
+
}
|
|
845
|
+
function _taggedTemplateLiteralLoose(e, t) {
|
|
846
|
+
return t || (t = e.slice(0)), e.raw = t, e;
|
|
847
|
+
}
|
|
848
|
+
function _wrapNativeSuper(t) {
|
|
849
|
+
var r = "function" == typeof Map ? new Map() : void 0;
|
|
850
|
+
return _wrapNativeSuper = function (t) {
|
|
851
|
+
if (null === t || !_isNativeFunction(t)) return t;
|
|
852
|
+
if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
|
|
853
|
+
if (void 0 !== r) {
|
|
854
|
+
if (r.has(t)) return r.get(t);
|
|
855
|
+
r.set(t, Wrapper);
|
|
856
|
+
}
|
|
857
|
+
function Wrapper() {
|
|
858
|
+
return _construct(t, arguments, _getPrototypeOf(this).constructor);
|
|
859
|
+
}
|
|
860
|
+
return Wrapper.prototype = Object.create(t.prototype, {
|
|
861
|
+
constructor: {
|
|
862
|
+
value: Wrapper,
|
|
863
|
+
enumerable: false,
|
|
864
|
+
writable: true,
|
|
865
|
+
configurable: true
|
|
866
|
+
}
|
|
867
|
+
}), _setPrototypeOf(Wrapper, t);
|
|
868
|
+
}, _wrapNativeSuper(t);
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
/* *
|
|
872
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
873
|
+
* you may not use this file except in compliance with the License.
|
|
874
|
+
* You may obtain a copy of the License at
|
|
875
|
+
*
|
|
876
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
877
|
+
*
|
|
878
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
879
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
880
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
881
|
+
* See the License for the specific language governing permissions and
|
|
882
|
+
* limitations under the License.
|
|
883
|
+
*
|
|
884
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
885
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
886
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
887
|
+
* */
|
|
888
|
+
var WorkspacePresetAction;
|
|
889
|
+
(function (WorkspacePresetAction) {
|
|
890
|
+
WorkspacePresetAction["DELETE"] = "DELETE";
|
|
891
|
+
WorkspacePresetAction["EDIT"] = "EDIT";
|
|
892
|
+
WorkspacePresetAction["SAVE"] = "SAVE";
|
|
893
|
+
WorkspacePresetAction["SAVE_AS"] = "SAVE_AS";
|
|
894
|
+
WorkspacePresetAction["DUPLICATE"] = "DUPLICATE";
|
|
895
|
+
WorkspacePresetAction["SAVE_SYSTEM_PRESET"] = "SAVE_SYSTEM_PRESET";
|
|
896
|
+
WorkspacePresetAction["SAVE_SYSTEM_PRESET_AS"] = "SAVE_SYSTEM_PRESET_AS";
|
|
897
|
+
WorkspacePresetAction["RESET"] = "RESET";
|
|
898
|
+
WorkspacePresetAction["DELETE_SYSTEM_PRESET"] = "DELETE_SYSTEM_PRESET";
|
|
899
|
+
WorkspacePresetAction["SHARE"] = "SHARE";
|
|
900
|
+
WorkspacePresetAction["OPEN_TAB"] = "OPEN_TAB";
|
|
901
|
+
WorkspacePresetAction["EDIT_TITLE"] = "EDIT_TITLE";
|
|
902
|
+
WorkspacePresetAction["COPY_TO_CLIPBOARD"] = "COPY_TO_CLIPBOARD";
|
|
903
|
+
})(WorkspacePresetAction || (WorkspacePresetAction = {}));
|
|
904
|
+
var WorkspaceErrorType;
|
|
905
|
+
(function (WorkspaceErrorType) {
|
|
906
|
+
WorkspaceErrorType["NOT_FOUND"] = "NOT_FOUND";
|
|
907
|
+
WorkspaceErrorType["GENERIC"] = "GENERIC";
|
|
908
|
+
WorkspaceErrorType["SAVE"] = "SAVE";
|
|
909
|
+
})(WorkspaceErrorType || (WorkspaceErrorType = {}));
|
|
789
910
|
|
|
790
911
|
/* *
|
|
791
912
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -927,283 +1048,37 @@ var toViewsArray = function toViewsArray(wsViews) {
|
|
|
927
1048
|
});
|
|
928
1049
|
};
|
|
929
1050
|
|
|
930
|
-
var
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
title: "Map A"
|
|
962
|
-
},
|
|
963
|
-
{
|
|
964
|
-
mosaicNodeId: "right-map",
|
|
965
|
-
componentType: "Map",
|
|
966
|
-
initialProps: {
|
|
967
|
-
mapPreset: {
|
|
968
|
-
layers: [
|
|
969
|
-
],
|
|
970
|
-
proj: {
|
|
971
|
-
bbox: {
|
|
972
|
-
left: -2782987.27,
|
|
973
|
-
bottom: 3503549.84,
|
|
974
|
-
right: 5009377.09,
|
|
975
|
-
top: 11753184.62
|
|
976
|
-
},
|
|
977
|
-
srs: "EPSG:3857"
|
|
978
|
-
},
|
|
979
|
-
showTimeSlider: false,
|
|
980
|
-
displayMapPin: false,
|
|
981
|
-
shouldShowZoomControls: true
|
|
982
|
-
},
|
|
983
|
-
syncGroupsIds: [
|
|
984
|
-
]
|
|
985
|
-
},
|
|
986
|
-
title: "Map B"
|
|
987
|
-
}
|
|
988
|
-
],
|
|
989
|
-
syncGroups: [
|
|
990
|
-
],
|
|
991
|
-
mosaicNode: {
|
|
992
|
-
direction: "row",
|
|
993
|
-
first: "left-map",
|
|
994
|
-
second: "right-map",
|
|
995
|
-
splitPercentage: 50
|
|
996
|
-
}
|
|
997
|
-
},
|
|
998
|
-
{
|
|
999
|
-
id: "timeSeriesWorkspace",
|
|
1000
|
-
title: "Timeseries",
|
|
1001
|
-
scope: "system",
|
|
1002
|
-
abstract: "",
|
|
1003
|
-
viewType: "multiWindow",
|
|
1004
|
-
views: [
|
|
1005
|
-
{
|
|
1006
|
-
mosaicNodeId: "timeseries-map",
|
|
1007
|
-
componentType: "Map",
|
|
1008
|
-
initialProps: {
|
|
1009
|
-
mapPreset: {
|
|
1010
|
-
layers: [
|
|
1011
|
-
],
|
|
1012
|
-
proj: {
|
|
1013
|
-
bbox: {
|
|
1014
|
-
left: -2782987.27,
|
|
1015
|
-
bottom: 3503549.84,
|
|
1016
|
-
right: 5009377.09,
|
|
1017
|
-
top: 11753184.62
|
|
1018
|
-
},
|
|
1019
|
-
srs: "EPSG:3857"
|
|
1020
|
-
},
|
|
1021
|
-
showTimeSlider: true,
|
|
1022
|
-
displayMapPin: true,
|
|
1023
|
-
shouldShowZoomControls: true
|
|
1024
|
-
},
|
|
1025
|
-
syncGroupsIds: [
|
|
1026
|
-
"Area_TimeSeries",
|
|
1027
|
-
"Time_TimeSeries"
|
|
1028
|
-
]
|
|
1029
|
-
},
|
|
1030
|
-
title: "Map"
|
|
1031
|
-
},
|
|
1032
|
-
{
|
|
1033
|
-
mosaicNodeId: "timeseries-panel",
|
|
1034
|
-
componentType: "TimeSeries",
|
|
1035
|
-
initialProps: {
|
|
1036
|
-
plotPreset: {
|
|
1037
|
-
mapId: "timeseries-map",
|
|
1038
|
-
plots: [
|
|
1039
|
-
],
|
|
1040
|
-
parameters: [
|
|
1041
|
-
]
|
|
1042
|
-
},
|
|
1043
|
-
services: [
|
|
1044
|
-
]
|
|
1045
|
-
},
|
|
1046
|
-
title: "Timeseries"
|
|
1047
|
-
}
|
|
1048
|
-
],
|
|
1049
|
-
syncGroups: [
|
|
1050
|
-
{
|
|
1051
|
-
id: "Area_TimeSeries",
|
|
1052
|
-
type: "SYNCGROUPS_TYPE_SETBBOX"
|
|
1053
|
-
},
|
|
1054
|
-
{
|
|
1055
|
-
id: "Time_TimeSeries",
|
|
1056
|
-
type: "SYNCGROUPS_TYPE_SETTIME"
|
|
1057
|
-
}
|
|
1058
|
-
],
|
|
1059
|
-
linking: {
|
|
1060
|
-
"timeseries-panel": [
|
|
1061
|
-
"timeseries-map"
|
|
1062
|
-
]
|
|
1063
|
-
},
|
|
1064
|
-
mosaicNode: {
|
|
1065
|
-
direction: "row",
|
|
1066
|
-
first: "timeseries-map",
|
|
1067
|
-
second: "timeseries-panel",
|
|
1068
|
-
splitPercentage: 50
|
|
1069
|
-
}
|
|
1070
|
-
},
|
|
1071
|
-
{
|
|
1072
|
-
id: "soundingWorkspace",
|
|
1073
|
-
title: "Soundings",
|
|
1074
|
-
scope: "system",
|
|
1075
|
-
abstract: "Vertical profile observations",
|
|
1076
|
-
viewType: "multiWindow",
|
|
1077
|
-
views: [
|
|
1078
|
-
{
|
|
1079
|
-
mosaicNodeId: "sounding-map",
|
|
1080
|
-
componentType: "Map",
|
|
1081
|
-
initialProps: {
|
|
1082
|
-
mapPreset: {
|
|
1083
|
-
layers: [
|
|
1084
|
-
],
|
|
1085
|
-
proj: {
|
|
1086
|
-
bbox: {
|
|
1087
|
-
left: -2782987.27,
|
|
1088
|
-
bottom: 3503549.84,
|
|
1089
|
-
right: 5009377.09,
|
|
1090
|
-
top: 11753184.62
|
|
1091
|
-
},
|
|
1092
|
-
srs: "EPSG:3857"
|
|
1093
|
-
},
|
|
1094
|
-
showTimeSlider: true,
|
|
1095
|
-
displayMapPin: true,
|
|
1096
|
-
shouldShowZoomControls: true
|
|
1097
|
-
},
|
|
1098
|
-
syncGroupsIds: [
|
|
1099
|
-
"Area_Sounding",
|
|
1100
|
-
"Time_Sounding"
|
|
1101
|
-
]
|
|
1102
|
-
},
|
|
1103
|
-
title: "Map"
|
|
1104
|
-
},
|
|
1105
|
-
{
|
|
1106
|
-
mosaicNodeId: "sounding-panel",
|
|
1107
|
-
componentType: "Soundings",
|
|
1108
|
-
initialProps: {
|
|
1109
|
-
selectedSources: {
|
|
1110
|
-
},
|
|
1111
|
-
selectedLocations: {
|
|
1112
|
-
}
|
|
1113
|
-
},
|
|
1114
|
-
title: "Sounding"
|
|
1115
|
-
}
|
|
1116
|
-
],
|
|
1117
|
-
syncGroups: [
|
|
1118
|
-
{
|
|
1119
|
-
id: "Area_Sounding",
|
|
1120
|
-
type: "SYNCGROUPS_TYPE_SETBBOX"
|
|
1121
|
-
},
|
|
1122
|
-
{
|
|
1123
|
-
id: "Time_Sounding",
|
|
1124
|
-
type: "SYNCGROUPS_TYPE_SETTIME"
|
|
1125
|
-
}
|
|
1126
|
-
],
|
|
1127
|
-
linking: {
|
|
1128
|
-
"sounding-panel": [
|
|
1129
|
-
"sounding-map"
|
|
1130
|
-
]
|
|
1131
|
-
},
|
|
1132
|
-
mosaicNode: {
|
|
1133
|
-
direction: "row",
|
|
1134
|
-
first: "sounding-map",
|
|
1135
|
-
second: "sounding-panel",
|
|
1136
|
-
splitPercentage: 50
|
|
1137
|
-
}
|
|
1138
|
-
},
|
|
1139
|
-
{
|
|
1140
|
-
id: "capWarningsWorkspace",
|
|
1141
|
-
title: "Cap warnings",
|
|
1142
|
-
scope: "system",
|
|
1143
|
-
abstract: "",
|
|
1144
|
-
viewType: "multiWindow",
|
|
1145
|
-
views: [
|
|
1146
|
-
{
|
|
1147
|
-
mosaicNodeId: "cap-map",
|
|
1148
|
-
componentType: "CapWarningMap",
|
|
1149
|
-
initialProps: {
|
|
1150
|
-
mapPreset: {
|
|
1151
|
-
layers: [
|
|
1152
|
-
],
|
|
1153
|
-
proj: {
|
|
1154
|
-
bbox: {
|
|
1155
|
-
left: -2782987.27,
|
|
1156
|
-
bottom: 3503549.84,
|
|
1157
|
-
right: 5009377.09,
|
|
1158
|
-
top: 11753184.62
|
|
1159
|
-
},
|
|
1160
|
-
srs: "EPSG:3857"
|
|
1161
|
-
}
|
|
1162
|
-
},
|
|
1163
|
-
geoJson: {
|
|
1164
|
-
type: "FeatureCollection",
|
|
1165
|
-
features: [
|
|
1166
|
-
]
|
|
1167
|
-
}
|
|
1168
|
-
},
|
|
1169
|
-
title: "CAP warnings map"
|
|
1170
|
-
},
|
|
1171
|
-
{
|
|
1172
|
-
mosaicNodeId: "cap-list",
|
|
1173
|
-
componentType: "CapWarningList",
|
|
1174
|
-
initialProps: {
|
|
1175
|
-
mapPreset: {
|
|
1176
|
-
layers: [
|
|
1177
|
-
],
|
|
1178
|
-
proj: {
|
|
1179
|
-
bbox: {
|
|
1180
|
-
left: -2782987.27,
|
|
1181
|
-
bottom: 3503549.84,
|
|
1182
|
-
right: 5009377.09,
|
|
1183
|
-
top: 11753184.62
|
|
1184
|
-
},
|
|
1185
|
-
srs: "EPSG:3857"
|
|
1186
|
-
}
|
|
1187
|
-
},
|
|
1188
|
-
geoJson: {
|
|
1189
|
-
type: "FeatureCollection",
|
|
1190
|
-
features: [
|
|
1191
|
-
]
|
|
1192
|
-
}
|
|
1193
|
-
},
|
|
1194
|
-
title: "CAP warnings list"
|
|
1195
|
-
}
|
|
1196
|
-
],
|
|
1197
|
-
syncGroups: [
|
|
1198
|
-
],
|
|
1199
|
-
mosaicNode: {
|
|
1200
|
-
direction: "row",
|
|
1201
|
-
first: "cap-map",
|
|
1202
|
-
second: "cap-list",
|
|
1203
|
-
splitPercentage: 50
|
|
1204
|
-
}
|
|
1205
|
-
}
|
|
1206
|
-
];
|
|
1051
|
+
var AVIATION_COMPONENT_TYPES = ['AirmetModule', 'SigmetModule'];
|
|
1052
|
+
var CAP_COMPONENT_TYPES = ['CapWarningList', 'CapWarningMap'];
|
|
1053
|
+
// 1) Map-like components
|
|
1054
|
+
var SUPPORTED_COMPONENT_TYPES = ['Map', 'MultiMap', 'ModelRunInterval', 'HarmonieTempAndPrecipPreset', 'TimeSlider'];
|
|
1055
|
+
// 2) TimeSeries components
|
|
1056
|
+
var SUPPORTED_TIMESERIES_COMPONENT_TYPES = ['TimeSeries'];
|
|
1057
|
+
// or keep your old union type if it already exists
|
|
1058
|
+
// 3) Warning list components
|
|
1059
|
+
var WARNING_LIST_COMPONENT_TYPES = ['WarningList', 'MaritimeWarnings', 'WarningsTimeline'];
|
|
1060
|
+
// TODO: expand it and move to a more centralized place
|
|
1061
|
+
var ALL_COMPONENT_TYPES = [].concat(SUPPORTED_COMPONENT_TYPES, SUPPORTED_TIMESERIES_COMPONENT_TYPES, WARNING_LIST_COMPONENT_TYPES, AVIATION_COMPONENT_TYPES, CAP_COMPONENT_TYPES, ['TafModule', 'TrajksModule', 'SpaceweatherModule', 'Plugin', 'Soundings', 'CrossSection']);
|
|
1062
|
+
var ViewPresetErrorComponent;
|
|
1063
|
+
(function (ViewPresetErrorComponent) {
|
|
1064
|
+
ViewPresetErrorComponent["PRESET_DETAIL"] = "PRESET_DETAIL";
|
|
1065
|
+
ViewPresetErrorComponent["PRESET_LIST"] = "PRESET_LIST";
|
|
1066
|
+
})(ViewPresetErrorComponent || (ViewPresetErrorComponent = {}));
|
|
1067
|
+
var ViewPresetErrorType;
|
|
1068
|
+
(function (ViewPresetErrorType) {
|
|
1069
|
+
ViewPresetErrorType["AUTH"] = "AUTH";
|
|
1070
|
+
ViewPresetErrorType["GENERIC"] = "GENERIC";
|
|
1071
|
+
})(ViewPresetErrorType || (ViewPresetErrorType = {}));
|
|
1072
|
+
var PresetAction;
|
|
1073
|
+
(function (PresetAction) {
|
|
1074
|
+
PresetAction["OPEN"] = "Open";
|
|
1075
|
+
PresetAction["DELETE"] = "Delete";
|
|
1076
|
+
PresetAction["SAVE"] = "Save";
|
|
1077
|
+
PresetAction["SAVE_AS"] = "Save as";
|
|
1078
|
+
PresetAction["SHARE"] = "Share";
|
|
1079
|
+
PresetAction["EDIT"] = "Edit";
|
|
1080
|
+
PresetAction["RESET"] = "Reset";
|
|
1081
|
+
})(PresetAction || (PresetAction = {}));
|
|
1207
1082
|
|
|
1208
1083
|
/* *
|
|
1209
1084
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1218,300 +1093,338 @@ var workspacePresetsFallback = [
|
|
|
1218
1093
|
* See the License for the specific language governing permissions and
|
|
1219
1094
|
* limitations under the License.
|
|
1220
1095
|
*
|
|
1221
|
-
* Copyright
|
|
1222
|
-
* Copyright
|
|
1223
|
-
* Copyright
|
|
1096
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1097
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1098
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1224
1099
|
* */
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
var
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
};
|
|
1235
|
-
var
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1100
|
+
var WorkspaceListErrorCategory;
|
|
1101
|
+
(function (WorkspaceListErrorCategory) {
|
|
1102
|
+
WorkspaceListErrorCategory["AUTH"] = "AUTH";
|
|
1103
|
+
WorkspaceListErrorCategory["GENERIC"] = "GENERIC";
|
|
1104
|
+
})(WorkspaceListErrorCategory || (WorkspaceListErrorCategory = {}));
|
|
1105
|
+
var WorkspaceListErrorType;
|
|
1106
|
+
(function (WorkspaceListErrorType) {
|
|
1107
|
+
WorkspaceListErrorType["TRANSLATABLE_ERROR"] = "TRANSLATABLE_ERROR";
|
|
1108
|
+
WorkspaceListErrorType["VERBATIM_ERROR"] = "VERBATIM_ERROR";
|
|
1109
|
+
})(WorkspaceListErrorType || (WorkspaceListErrorType = {}));
|
|
1110
|
+
var PresetFilterType;
|
|
1111
|
+
(function (PresetFilterType) {
|
|
1112
|
+
PresetFilterType["personal"] = "personal";
|
|
1113
|
+
PresetFilterType["shared"] = "shared";
|
|
1114
|
+
PresetFilterType["system"] = "system";
|
|
1115
|
+
PresetFilterType["plugin"] = "plugin";
|
|
1116
|
+
PresetFilterType["templates"] = "templates";
|
|
1117
|
+
PresetFilterType["favourites"] = "favourites";
|
|
1118
|
+
})(PresetFilterType || (PresetFilterType = {}));
|
|
1119
|
+
|
|
1120
|
+
/* *
|
|
1121
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1122
|
+
* you may not use this file except in compliance with the License.
|
|
1123
|
+
* You may obtain a copy of the License at
|
|
1124
|
+
*
|
|
1125
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1126
|
+
*
|
|
1127
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1128
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1129
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1130
|
+
* See the License for the specific language governing permissions and
|
|
1131
|
+
* limitations under the License.
|
|
1132
|
+
*
|
|
1133
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1134
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1135
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1136
|
+
* */
|
|
1137
|
+
var WORKSPACE_NAMESPACE = 'workspace';
|
|
1138
|
+
var initWorkspaceTestI18n = function initWorkspaceTestI18n() {
|
|
1139
|
+
safelyInitI18nForTestsAndStories(i18n, WORKSPACE_NAMESPACE, [{
|
|
1140
|
+
ns: WORKSPACE_NAMESPACE,
|
|
1141
|
+
translations: workspaceTranslations
|
|
1142
|
+
}, {
|
|
1143
|
+
ns: SHARED_NAMESPACE,
|
|
1144
|
+
translations: sharedTranslations
|
|
1145
|
+
}, {
|
|
1146
|
+
ns: CORE_NAMESPACE,
|
|
1147
|
+
translations: coreTranslations
|
|
1148
|
+
}, {
|
|
1149
|
+
ns: WEBMAP_REACT_NAMESPACE,
|
|
1150
|
+
translations: webmapReactTranslations
|
|
1151
|
+
}, {
|
|
1152
|
+
ns: FORM_FIELDS_NAMESPACE,
|
|
1153
|
+
translations: formFieldsTranslations
|
|
1154
|
+
}, {
|
|
1155
|
+
ns: WARN_NAMESPACE,
|
|
1156
|
+
translations: warningsTranslations
|
|
1157
|
+
}, {
|
|
1158
|
+
ns: TIME_SERIES_NAMESPACE,
|
|
1159
|
+
translations: timeseriesTranslations
|
|
1160
|
+
}, {
|
|
1161
|
+
ns: DATA_EXPLORER_NAMESPACE,
|
|
1162
|
+
translations: dataExplorerTranslations
|
|
1163
|
+
}]);
|
|
1250
1164
|
};
|
|
1251
|
-
var
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
return {
|
|
1255
|
-
id: preset.id,
|
|
1256
|
-
title: preset.title,
|
|
1257
|
-
scope: preset.scope,
|
|
1258
|
-
viewType: preset.viewType,
|
|
1259
|
-
"abstract": (_preset$abstract = preset["abstract"]) != null ? _preset$abstract : '',
|
|
1260
|
-
description: preset.description,
|
|
1261
|
-
username: preset.username
|
|
1262
|
-
};
|
|
1263
|
-
});
|
|
1264
|
-
if (!params) {
|
|
1265
|
-
return list;
|
|
1266
|
-
}
|
|
1267
|
-
return list.filter(function (preset) {
|
|
1268
|
-
if (params.scope && preset.scope !== params.scope) {
|
|
1269
|
-
return false;
|
|
1270
|
-
}
|
|
1271
|
-
if (params.search) {
|
|
1272
|
-
var query = params.search.toLowerCase();
|
|
1273
|
-
return preset.title.toLowerCase().includes(query) || preset["abstract"].toLowerCase().includes(query);
|
|
1274
|
-
}
|
|
1275
|
-
return true;
|
|
1276
|
-
});
|
|
1165
|
+
var ns = [WORKSPACE_NAMESPACE, SHARED_NAMESPACE];
|
|
1166
|
+
var useWorkspaceTranslation = function useWorkspaceTranslation() {
|
|
1167
|
+
return useTranslation(ns);
|
|
1277
1168
|
};
|
|
1278
|
-
|
|
1279
|
-
|
|
1169
|
+
|
|
1170
|
+
var _excluded$7 = ["views"];
|
|
1171
|
+
var getSnackbarMessage$1 = function getSnackbarMessage(action, title, is_shared) {
|
|
1172
|
+
// Trim and add quotes
|
|
1173
|
+
var trimmedTitle = title.trim();
|
|
1174
|
+
switch (action) {
|
|
1175
|
+
case WorkspacePresetAction.DELETE:
|
|
1176
|
+
return {
|
|
1177
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1178
|
+
key: 'workspace-list-success-delete',
|
|
1179
|
+
params: {
|
|
1180
|
+
TITLE: trimmedTitle
|
|
1181
|
+
}
|
|
1182
|
+
};
|
|
1183
|
+
case WorkspacePresetAction.DELETE_SYSTEM_PRESET:
|
|
1184
|
+
return {
|
|
1185
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1186
|
+
key: 'workspace-list-success-delete-system',
|
|
1187
|
+
params: {
|
|
1188
|
+
TITLE: trimmedTitle
|
|
1189
|
+
}
|
|
1190
|
+
};
|
|
1191
|
+
case WorkspacePresetAction.DUPLICATE:
|
|
1192
|
+
return {
|
|
1193
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1194
|
+
key: 'workspace-list-success-duplicate',
|
|
1195
|
+
params: {
|
|
1196
|
+
TITLE: trimmedTitle
|
|
1197
|
+
}
|
|
1198
|
+
};
|
|
1199
|
+
case WorkspacePresetAction.EDIT:
|
|
1200
|
+
return {
|
|
1201
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1202
|
+
key: 'workspace-list-success-edit',
|
|
1203
|
+
params: {
|
|
1204
|
+
TITLE: trimmedTitle
|
|
1205
|
+
}
|
|
1206
|
+
};
|
|
1207
|
+
case WorkspacePresetAction.RESET:
|
|
1208
|
+
return {
|
|
1209
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1210
|
+
key: 'workspace-list-success-reset',
|
|
1211
|
+
params: {
|
|
1212
|
+
TITLE: trimmedTitle
|
|
1213
|
+
}
|
|
1214
|
+
};
|
|
1215
|
+
case WorkspacePresetAction.SHARE:
|
|
1216
|
+
return {
|
|
1217
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1218
|
+
key: is_shared ? 'workspace-list-success-unshare' : 'workspace-list-success-share',
|
|
1219
|
+
params: {
|
|
1220
|
+
TITLE: trimmedTitle
|
|
1221
|
+
}
|
|
1222
|
+
};
|
|
1223
|
+
default:
|
|
1224
|
+
return {
|
|
1225
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1226
|
+
key: 'workspace-list-success-save',
|
|
1227
|
+
params: {
|
|
1228
|
+
TITLE: trimmedTitle
|
|
1229
|
+
}
|
|
1230
|
+
};
|
|
1231
|
+
}
|
|
1280
1232
|
};
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1233
|
+
function getEmptyWorkspaceListItem(t) {
|
|
1234
|
+
return {
|
|
1235
|
+
id: undefined,
|
|
1236
|
+
title: t ? t('workspace-new') : undefined,
|
|
1237
|
+
labels: undefined,
|
|
1238
|
+
scope: 'system',
|
|
1239
|
+
"abstract": '',
|
|
1240
|
+
viewType: 'singleWindow'
|
|
1241
|
+
};
|
|
1242
|
+
}
|
|
1243
|
+
function getEmptyMapWorkspace(t) {
|
|
1244
|
+
return Object.assign({}, getEmptyWorkspaceListItem(t), {
|
|
1245
|
+
views: {
|
|
1246
|
+
allIds: ['1_screen'],
|
|
1247
|
+
byId: {
|
|
1248
|
+
'1_screen': {
|
|
1249
|
+
title: t ? t('workspace-mappreset-new') : undefined,
|
|
1250
|
+
componentType: 'Map',
|
|
1251
|
+
initialProps: {
|
|
1252
|
+
mapPreset: {
|
|
1253
|
+
shouldShowLayerManager: true,
|
|
1254
|
+
dockedLayerManagerSize: 'sizeSmall'
|
|
1255
|
+
},
|
|
1256
|
+
syncGroupsIds: []
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
},
|
|
1261
|
+
mosaicNode: '1_screen'
|
|
1290
1262
|
});
|
|
1291
|
-
}
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1263
|
+
}
|
|
1264
|
+
var getEmptyWorkspacePreset = function getEmptyWorkspacePreset() {
|
|
1265
|
+
return {
|
|
1266
|
+
scope: 'system',
|
|
1267
|
+
"abstract": '',
|
|
1268
|
+
views: {
|
|
1269
|
+
allIds: ['1_screen'],
|
|
1270
|
+
byId: {
|
|
1271
|
+
'1_screen': {
|
|
1272
|
+
componentType: 'Map',
|
|
1273
|
+
initialProps: {
|
|
1274
|
+
mapPreset: {
|
|
1275
|
+
shouldShowLayerManager: true,
|
|
1276
|
+
dockedLayerManagerSize: 'sizeSmall'
|
|
1277
|
+
},
|
|
1278
|
+
syncGroupsIds: []
|
|
1301
1279
|
}
|
|
1302
|
-
|
|
1303
|
-
case 1:
|
|
1304
|
-
return _context.a(2, fetch(getPresetBaseUrl() + "/viewpreset/" + viewpresetId, {
|
|
1305
|
-
headers: getHeaders(auth)
|
|
1306
|
-
}).then(handleResponse));
|
|
1280
|
+
}
|
|
1307
1281
|
}
|
|
1308
|
-
},
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1282
|
+
},
|
|
1283
|
+
mosaicNode: '1_screen',
|
|
1284
|
+
viewType: 'singleWindow',
|
|
1285
|
+
username: 'global'
|
|
1312
1286
|
};
|
|
1313
|
-
}
|
|
1314
|
-
var
|
|
1315
|
-
var
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1287
|
+
};
|
|
1288
|
+
var createCustomEmptyMapWorkspace = function createCustomEmptyMapWorkspace(emptyWorkspaceTitle, emptyMapWorkspaceTitle, customMapPreset) {
|
|
1289
|
+
var customEmptyMapWorkspace = cloneDeep(getEmptyWorkspacePreset());
|
|
1290
|
+
if (customMapPreset) {
|
|
1291
|
+
customEmptyMapWorkspace.views.byId['1_screen'].initialProps.mapPreset = customMapPreset;
|
|
1292
|
+
}
|
|
1293
|
+
customEmptyMapWorkspace.views.byId['1_screen'].title = emptyMapWorkspaceTitle;
|
|
1294
|
+
var emptyWorkspacePreset = Object.assign({}, customEmptyMapWorkspace, {
|
|
1295
|
+
title: emptyWorkspaceTitle
|
|
1296
|
+
});
|
|
1297
|
+
return emptyWorkspacePreset;
|
|
1298
|
+
};
|
|
1299
|
+
var FALLBACK_TEMPLATE_LANGUAGE = 'en';
|
|
1300
|
+
// Falls back to English and then to the first title, so a template does not
|
|
1301
|
+
// need a title for every language
|
|
1302
|
+
var getTemplatePresetTitle = function getTemplatePresetTitle(title, language) {
|
|
1303
|
+
var _language, _Object$values$;
|
|
1304
|
+
if (language === void 0) {
|
|
1305
|
+
language = i18n.language;
|
|
1306
|
+
}
|
|
1307
|
+
if (typeof title === 'string') {
|
|
1308
|
+
return title;
|
|
1309
|
+
}
|
|
1310
|
+
var languageCode = [language, (_language = language) == null ? void 0 : _language.split('-')[0], FALLBACK_TEMPLATE_LANGUAGE].find(function (code) {
|
|
1311
|
+
return code && title[code];
|
|
1312
|
+
});
|
|
1313
|
+
return languageCode ? title[languageCode] : (_Object$values$ = Object.values(title)[0]) != null ? _Object$values$ : '';
|
|
1314
|
+
};
|
|
1315
|
+
var findWorkspaceTemplatePreset = function findWorkspaceTemplatePreset(defaultPresets, presetId) {
|
|
1316
|
+
return (defaultPresets != null ? defaultPresets : []).find(function (preset) {
|
|
1317
|
+
return (preset.id || undefined) === (presetId || undefined);
|
|
1318
|
+
});
|
|
1319
|
+
};
|
|
1320
|
+
var isWorkspaceTemplatePresetId = function isWorkspaceTemplatePresetId(defaultPresets, presetId) {
|
|
1321
|
+
return findWorkspaceTemplatePreset(defaultPresets, presetId) !== undefined;
|
|
1322
|
+
};
|
|
1323
|
+
var toWorkspacePresetFromTemplate = function toWorkspacePresetFromTemplate(preset, language) {
|
|
1324
|
+
var views = preset.views,
|
|
1325
|
+
rest = _objectWithoutPropertiesLoose(preset, _excluded$7);
|
|
1326
|
+
return Object.assign({}, rest, {
|
|
1327
|
+
title: getTemplatePresetTitle(preset.title, language),
|
|
1328
|
+
views: {
|
|
1329
|
+
allIds: views.allIds,
|
|
1330
|
+
byId: Object.fromEntries(views.allIds.map(function (viewId) {
|
|
1331
|
+
var view = views.byId[viewId];
|
|
1332
|
+
return [viewId, Object.assign({}, view, {
|
|
1333
|
+
title: view.title === undefined ? undefined : getTemplatePresetTitle(view.title, language)
|
|
1334
|
+
})];
|
|
1335
|
+
}))
|
|
1336
|
+
}
|
|
1337
|
+
});
|
|
1338
|
+
};
|
|
1339
|
+
var getEmptyMapWorkspaceTitles = function getEmptyMapWorkspaceTitles(preset, language) {
|
|
1340
|
+
var _views$byId$views$all, _views$byId$views$all2;
|
|
1341
|
+
var _toWorkspacePresetFro = toWorkspacePresetFromTemplate(preset, language),
|
|
1342
|
+
title = _toWorkspacePresetFro.title,
|
|
1343
|
+
views = _toWorkspacePresetFro.views;
|
|
1344
|
+
return {
|
|
1345
|
+
newWorkspaceText: title,
|
|
1346
|
+
newMapPresetText: (_views$byId$views$all = (_views$byId$views$all2 = views.byId[views.allIds[0]]) == null ? void 0 : _views$byId$views$all2.title) != null ? _views$byId$views$all : title
|
|
1329
1347
|
};
|
|
1330
|
-
}
|
|
1331
|
-
var
|
|
1332
|
-
var
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
}
|
|
1342
|
-
}, _callee3);
|
|
1343
|
-
}));
|
|
1344
|
-
return function updateViewPreset(_x4, _x5, _x6) {
|
|
1345
|
-
return _ref3.apply(this, arguments);
|
|
1348
|
+
};
|
|
1349
|
+
var toWorkspaceTemplateListItem = function toWorkspaceTemplateListItem(preset, language) {
|
|
1350
|
+
var _preset$scope, _preset$abstract, _preset$viewType;
|
|
1351
|
+
return {
|
|
1352
|
+
id: preset.id,
|
|
1353
|
+
title: getTemplatePresetTitle(preset.title, language),
|
|
1354
|
+
labels: preset.labels,
|
|
1355
|
+
scope: (_preset$scope = preset.scope) != null ? _preset$scope : 'system',
|
|
1356
|
+
"abstract": (_preset$abstract = preset["abstract"]) != null ? _preset$abstract : '',
|
|
1357
|
+
viewType: (_preset$viewType = preset.viewType) != null ? _preset$viewType : 'singleWindow',
|
|
1358
|
+
isWorkspaceTemplate: true
|
|
1346
1359
|
};
|
|
1347
|
-
}();
|
|
1348
|
-
var saveViewPreset = /*#__PURE__*/function () {
|
|
1349
|
-
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(viewPresetId, data, auth) {
|
|
1350
|
-
var payload;
|
|
1351
|
-
return _regenerator().w(function (_context4) {
|
|
1352
|
-
while (1) switch (_context4.n) {
|
|
1353
|
-
case 0:
|
|
1354
|
-
payload = data.initialProps === null ? Object.assign({}, data, {
|
|
1355
|
-
initialProps: {}
|
|
1356
|
-
}) : data;
|
|
1357
|
-
return _context4.a(2, fetch(getPresetBaseUrl() + "/viewpreset/" + viewPresetId + "/", {
|
|
1358
|
-
headers: getHeaders(auth),
|
|
1359
|
-
method: 'PUT',
|
|
1360
|
-
body: JSON.stringify(payload)
|
|
1361
|
-
}).then(handleResponse));
|
|
1362
|
-
}
|
|
1363
|
-
}, _callee4);
|
|
1364
|
-
}));
|
|
1365
|
-
return function saveViewPreset(_x7, _x8, _x9) {
|
|
1366
|
-
return _ref4.apply(this, arguments);
|
|
1367
|
-
};
|
|
1368
|
-
}();
|
|
1369
|
-
var saveViewPresetAs = /*#__PURE__*/function () {
|
|
1370
|
-
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(data, auth) {
|
|
1371
|
-
var _response$headers$get;
|
|
1372
|
-
var payload, response, headerLocation;
|
|
1373
|
-
return _regenerator().w(function (_context5) {
|
|
1374
|
-
while (1) switch (_context5.n) {
|
|
1375
|
-
case 0:
|
|
1376
|
-
payload = data.initialProps === null ? Object.assign({}, data, {
|
|
1377
|
-
initialProps: {}
|
|
1378
|
-
}) : data;
|
|
1379
|
-
_context5.n = 1;
|
|
1380
|
-
return fetch(getPresetBaseUrl() + "/viewpreset/", {
|
|
1381
|
-
headers: getHeaders(auth),
|
|
1382
|
-
method: 'POST',
|
|
1383
|
-
body: JSON.stringify(payload)
|
|
1384
|
-
});
|
|
1385
|
-
case 1:
|
|
1386
|
-
response = _context5.v;
|
|
1387
|
-
_context5.n = 2;
|
|
1388
|
-
return handleResponse(response);
|
|
1389
|
-
case 2:
|
|
1390
|
-
headerLocation = (_response$headers$get = response.headers.get('Location')) != null ? _response$headers$get : response.headers.get('location');
|
|
1391
|
-
return _context5.a(2, getIdFromUrl(headerLocation));
|
|
1392
|
-
}
|
|
1393
|
-
}, _callee5);
|
|
1394
|
-
}));
|
|
1395
|
-
return function saveViewPresetAs(_x0, _x1) {
|
|
1396
|
-
return _ref5.apply(this, arguments);
|
|
1397
|
-
};
|
|
1398
|
-
}();
|
|
1399
|
-
var deleteViewPreset = /*#__PURE__*/function () {
|
|
1400
|
-
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(viewPresetId, auth) {
|
|
1401
|
-
return _regenerator().w(function (_context6) {
|
|
1402
|
-
while (1) switch (_context6.n) {
|
|
1403
|
-
case 0:
|
|
1404
|
-
return _context6.a(2, fetch(getPresetBaseUrl() + "/viewpreset/" + viewPresetId, {
|
|
1405
|
-
method: 'DELETE',
|
|
1406
|
-
headers: getHeaders(auth)
|
|
1407
|
-
}).then(handleResponse));
|
|
1408
|
-
}
|
|
1409
|
-
}, _callee6);
|
|
1410
|
-
}));
|
|
1411
|
-
return function deleteViewPreset(_x10, _x11) {
|
|
1412
|
-
return _ref6.apply(this, arguments);
|
|
1413
|
-
};
|
|
1414
|
-
}();
|
|
1415
|
-
|
|
1416
|
-
var API_KEY$1 = 'viewpreset-api';
|
|
1417
|
-
var generateViewPresetQueryKeys = function generateViewPresetQueryKeys() {
|
|
1418
|
-
for (var _len = arguments.length, queryKeys = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
1419
|
-
queryKeys[_key] = arguments[_key];
|
|
1420
|
-
}
|
|
1421
|
-
return [LIB_KEY, API_KEY$1].concat(queryKeys);
|
|
1422
1360
|
};
|
|
1423
|
-
var
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
}
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
var _queryFn = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
1440
|
-
return _regenerator().w(function (_context) {
|
|
1441
|
-
while (1) switch (_context.n) {
|
|
1442
|
-
case 0:
|
|
1443
|
-
return _context.a(2, getViewPreset(id, credentials));
|
|
1444
|
-
}
|
|
1445
|
-
}, _callee);
|
|
1446
|
-
}));
|
|
1447
|
-
function queryFn() {
|
|
1448
|
-
return _queryFn.apply(this, arguments);
|
|
1449
|
-
}
|
|
1450
|
-
return queryFn;
|
|
1451
|
-
}()
|
|
1452
|
-
});
|
|
1453
|
-
},
|
|
1454
|
-
getViewPresets: function getViewPresets(credentials) {
|
|
1455
|
-
return queryOptions({
|
|
1456
|
-
queryKey: viewpresetQueryOptions.keys.lists(),
|
|
1457
|
-
queryFn: function () {
|
|
1458
|
-
var _queryFn2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
1459
|
-
return _regenerator().w(function (_context2) {
|
|
1460
|
-
while (1) switch (_context2.n) {
|
|
1461
|
-
case 0:
|
|
1462
|
-
return _context2.a(2, getViewPresets$1(credentials));
|
|
1463
|
-
}
|
|
1464
|
-
}, _callee2);
|
|
1465
|
-
}));
|
|
1466
|
-
function queryFn() {
|
|
1467
|
-
return _queryFn2.apply(this, arguments);
|
|
1468
|
-
}
|
|
1469
|
-
return queryFn;
|
|
1470
|
-
}(),
|
|
1471
|
-
staleTime: 2 * 60 * 1000,
|
|
1472
|
-
refetchOnMount: true
|
|
1473
|
-
});
|
|
1474
|
-
},
|
|
1475
|
-
saveViewPreset: function saveViewPreset$1(id, data, credentials) {
|
|
1476
|
-
return queryOptions({
|
|
1477
|
-
queryKey: [].concat(viewpresetQueryOptions.keys.views(), [id, 'save']),
|
|
1478
|
-
staleTime: 0,
|
|
1479
|
-
queryFn: function () {
|
|
1480
|
-
var _queryFn3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
1481
|
-
return _regenerator().w(function (_context3) {
|
|
1482
|
-
while (1) switch (_context3.n) {
|
|
1483
|
-
case 0:
|
|
1484
|
-
return _context3.a(2, saveViewPreset(id, data, credentials));
|
|
1485
|
-
}
|
|
1486
|
-
}, _callee3);
|
|
1487
|
-
}));
|
|
1488
|
-
function queryFn() {
|
|
1489
|
-
return _queryFn3.apply(this, arguments);
|
|
1490
|
-
}
|
|
1491
|
-
return queryFn;
|
|
1492
|
-
}()
|
|
1493
|
-
});
|
|
1494
|
-
},
|
|
1495
|
-
saveViewPresetAs: function saveViewPresetAs$1(data, credentials) {
|
|
1496
|
-
return queryOptions({
|
|
1497
|
-
queryKey: [].concat(viewpresetQueryOptions.keys.views(), ['save-as']),
|
|
1498
|
-
staleTime: 0,
|
|
1499
|
-
queryFn: function () {
|
|
1500
|
-
var _queryFn4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
|
|
1501
|
-
return _regenerator().w(function (_context4) {
|
|
1502
|
-
while (1) switch (_context4.n) {
|
|
1503
|
-
case 0:
|
|
1504
|
-
return _context4.a(2, saveViewPresetAs(data, credentials));
|
|
1505
|
-
}
|
|
1506
|
-
}, _callee4);
|
|
1507
|
-
}));
|
|
1508
|
-
function queryFn() {
|
|
1509
|
-
return _queryFn4.apply(this, arguments);
|
|
1510
|
-
}
|
|
1511
|
-
return queryFn;
|
|
1512
|
-
}()
|
|
1361
|
+
var toWorkspaceTemplateListItems = function toWorkspaceTemplateListItems(defaultPresets, language) {
|
|
1362
|
+
return (defaultPresets != null ? defaultPresets : []).map(function (preset) {
|
|
1363
|
+
return toWorkspaceTemplateListItem(preset, language);
|
|
1364
|
+
});
|
|
1365
|
+
};
|
|
1366
|
+
var getBEViewsFromState = function getBEViewsFromState(workspace) {
|
|
1367
|
+
var _workspace$views$allI, _workspace$views;
|
|
1368
|
+
var result = [];
|
|
1369
|
+
((_workspace$views$allI = workspace == null || (_workspace$views = workspace.views) == null ? void 0 : _workspace$views.allIds) != null ? _workspace$views$allI : []).forEach(function (id) {
|
|
1370
|
+
var _workspace$views$byId;
|
|
1371
|
+
var view = (_workspace$views$byId = workspace.views.byId[id]) != null ? _workspace$views$byId : {};
|
|
1372
|
+
result.push({
|
|
1373
|
+
mosaicNodeId: id,
|
|
1374
|
+
title: typeof view.title === 'string' && view.title.trim() ? view.title : id,
|
|
1375
|
+
componentType: view.componentType,
|
|
1376
|
+
initialProps: view.initialProps
|
|
1513
1377
|
});
|
|
1378
|
+
});
|
|
1379
|
+
return result;
|
|
1380
|
+
};
|
|
1381
|
+
var togglePresetFilter = function togglePresetFilter(filters, id, isSelected, isAdmin, isFavouritesEnabled, isTemplatesEnabled) {
|
|
1382
|
+
if (isAdmin === void 0) {
|
|
1383
|
+
isAdmin = false;
|
|
1514
1384
|
}
|
|
1385
|
+
if (isFavouritesEnabled === void 0) {
|
|
1386
|
+
isFavouritesEnabled = true;
|
|
1387
|
+
}
|
|
1388
|
+
if (isTemplatesEnabled === void 0) {
|
|
1389
|
+
isTemplatesEnabled = true;
|
|
1390
|
+
}
|
|
1391
|
+
if (!filters.some(function (filter) {
|
|
1392
|
+
return filter.id === id;
|
|
1393
|
+
})) {
|
|
1394
|
+
return filters;
|
|
1395
|
+
}
|
|
1396
|
+
var availableFilters = filters.filter(function (filter) {
|
|
1397
|
+
if (filter.id === PresetFilterType.favourites) {
|
|
1398
|
+
return isFavouritesEnabled;
|
|
1399
|
+
}
|
|
1400
|
+
if (filter.id === PresetFilterType.templates && !isTemplatesEnabled) {
|
|
1401
|
+
return false;
|
|
1402
|
+
}
|
|
1403
|
+
return !isAdmin || filter.id === PresetFilterType.system || filter.id === PresetFilterType.shared || filter.id === PresetFilterType.templates;
|
|
1404
|
+
});
|
|
1405
|
+
var allSelected = availableFilters.every(function (filter) {
|
|
1406
|
+
return filter.isSelected;
|
|
1407
|
+
});
|
|
1408
|
+
var allUnselected = availableFilters.every(function (filter) {
|
|
1409
|
+
return filter.id === id ? !isSelected : !filter.isSelected;
|
|
1410
|
+
});
|
|
1411
|
+
return filters.map(function (filter) {
|
|
1412
|
+
if (allSelected) {
|
|
1413
|
+
return Object.assign({}, filter, {
|
|
1414
|
+
isSelected: filter.id === id && isSelected
|
|
1415
|
+
});
|
|
1416
|
+
}
|
|
1417
|
+
// Admins select one scope at a time, deselecting goes through the
|
|
1418
|
+
// regular flow so the last deselected chip falls back to all
|
|
1419
|
+
if (isAdmin && isSelected && id !== PresetFilterType.favourites && filter.id !== PresetFilterType.favourites) {
|
|
1420
|
+
return Object.assign({}, filter, {
|
|
1421
|
+
isSelected: filter.id === id
|
|
1422
|
+
});
|
|
1423
|
+
}
|
|
1424
|
+
return Object.assign({}, filter, {
|
|
1425
|
+
isSelected: allUnselected || (filter.id === id ? isSelected : filter.isSelected)
|
|
1426
|
+
});
|
|
1427
|
+
});
|
|
1515
1428
|
};
|
|
1516
1429
|
|
|
1517
1430
|
/* *
|
|
@@ -1531,14 +1444,134 @@ var viewpresetQueryOptions = {
|
|
|
1531
1444
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1532
1445
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1533
1446
|
* */
|
|
1534
|
-
var
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1447
|
+
var personalFilterState = {
|
|
1448
|
+
label: 'shared-filter-my-presets',
|
|
1449
|
+
id: PresetFilterType.personal,
|
|
1450
|
+
isSelected: true,
|
|
1451
|
+
isDisabled: false
|
|
1538
1452
|
};
|
|
1539
|
-
var
|
|
1540
|
-
|
|
1453
|
+
var systemFilterState = {
|
|
1454
|
+
label: 'shared-filter-system-presets',
|
|
1455
|
+
id: PresetFilterType.system,
|
|
1456
|
+
isSelected: true,
|
|
1457
|
+
isDisabled: false
|
|
1541
1458
|
};
|
|
1459
|
+
var sharedFilterState = {
|
|
1460
|
+
label: 'shared-filter-shared-presets',
|
|
1461
|
+
id: PresetFilterType.shared,
|
|
1462
|
+
isSelected: true,
|
|
1463
|
+
isDisabled: false
|
|
1464
|
+
};
|
|
1465
|
+
({
|
|
1466
|
+
id: PresetFilterType.plugin});
|
|
1467
|
+
var templatesFilterState = {
|
|
1468
|
+
label: 'shared-filter-template-presets',
|
|
1469
|
+
id: PresetFilterType.templates,
|
|
1470
|
+
isSelected: true,
|
|
1471
|
+
isDisabled: false
|
|
1472
|
+
};
|
|
1473
|
+
var favouriteFilterState = {
|
|
1474
|
+
label: 'workspace-favourites',
|
|
1475
|
+
id: PresetFilterType.favourites,
|
|
1476
|
+
isSelected: true,
|
|
1477
|
+
isDisabled: false
|
|
1478
|
+
};
|
|
1479
|
+
var defaultPresetFilterState = [personalFilterState, systemFilterState, sharedFilterState, templatesFilterState, favouriteFilterState];
|
|
1480
|
+
var ADMIN_WORKSPACE_FILTER_IDS = [PresetFilterType.system, PresetFilterType.shared, PresetFilterType.templates, PresetFilterType.favourites];
|
|
1481
|
+
var initialState$2 = {
|
|
1482
|
+
error: undefined,
|
|
1483
|
+
isWorkspaceListDialogOpen: false,
|
|
1484
|
+
searchQuery: '',
|
|
1485
|
+
workspaceListFilters: defaultPresetFilterState,
|
|
1486
|
+
workspaceLabelFilters: undefined
|
|
1487
|
+
};
|
|
1488
|
+
var slice$2 = createSlice({
|
|
1489
|
+
initialState: initialState$2,
|
|
1490
|
+
name: 'workspaceList',
|
|
1491
|
+
reducers: {
|
|
1492
|
+
openWorkspaceActionDialogOptions: function openWorkspaceActionDialogOptions(draft, action) {
|
|
1493
|
+
draft.workspaceActionDialog = Object.assign({}, action.payload, {
|
|
1494
|
+
error: undefined
|
|
1495
|
+
});
|
|
1496
|
+
},
|
|
1497
|
+
onSuccessWorkspaceSaveDialog: function onSuccessWorkspaceSaveDialog(draft, action) {
|
|
1498
|
+
if (!draft.workspaceActionDialog) {
|
|
1499
|
+
return;
|
|
1500
|
+
}
|
|
1501
|
+
var presetId = action.payload.presetId;
|
|
1502
|
+
if (presetId) {
|
|
1503
|
+
draft.workspaceActionDialog.presetId = presetId;
|
|
1504
|
+
}
|
|
1505
|
+
draft.workspaceActionDialog.hasSaved = true;
|
|
1506
|
+
},
|
|
1507
|
+
submitFormWorkspaceActionDialogOptions: function submitFormWorkspaceActionDialogOptions(draft, _action) {
|
|
1508
|
+
if (!draft.workspaceActionDialog) {
|
|
1509
|
+
return;
|
|
1510
|
+
}
|
|
1511
|
+
draft.workspaceActionDialog.error = undefined;
|
|
1512
|
+
},
|
|
1513
|
+
closeWorkspaceActionDialogOptions: function closeWorkspaceActionDialogOptions(draft) {
|
|
1514
|
+
delete draft.workspaceActionDialog;
|
|
1515
|
+
},
|
|
1516
|
+
// action is intercepted in mapPresets/listener
|
|
1517
|
+
onSuccessWorkspacePresetAction: function onSuccessWorkspacePresetAction(draft, _action) {
|
|
1518
|
+
delete draft.workspaceActionDialog;
|
|
1519
|
+
},
|
|
1520
|
+
onErrorWorkspacePresetAction: function onErrorWorkspacePresetAction(draft, action) {
|
|
1521
|
+
var error = action.payload.error;
|
|
1522
|
+
if (draft.workspaceActionDialog) {
|
|
1523
|
+
draft.workspaceActionDialog.error = error;
|
|
1524
|
+
} else {
|
|
1525
|
+
// fallback if dialog isn't open (e.g. SHARE action)
|
|
1526
|
+
draft.error = error;
|
|
1527
|
+
}
|
|
1528
|
+
},
|
|
1529
|
+
toggleWorkspaceDialog: function toggleWorkspaceDialog(draft, action) {
|
|
1530
|
+
var isListDialogOpen = action.payload.isWorkspaceListDialogOpen;
|
|
1531
|
+
draft.isWorkspaceListDialogOpen = isListDialogOpen;
|
|
1532
|
+
},
|
|
1533
|
+
toggleSelectFilterChip: function toggleSelectFilterChip(draft, action) {
|
|
1534
|
+
var _action$payload = action.payload,
|
|
1535
|
+
id = _action$payload.id,
|
|
1536
|
+
isSelected = _action$payload.isSelected,
|
|
1537
|
+
isAdmin = _action$payload.isAdmin,
|
|
1538
|
+
isFavouritesEnabled = _action$payload.isFavouritesEnabled,
|
|
1539
|
+
isTemplatesEnabled = _action$payload.isTemplatesEnabled;
|
|
1540
|
+
draft.workspaceListFilters = togglePresetFilter(draft.workspaceListFilters, id, isSelected, isAdmin, isFavouritesEnabled, isTemplatesEnabled);
|
|
1541
|
+
},
|
|
1542
|
+
setSelectAllFilterChip: function setSelectAllFilterChip(draft) {
|
|
1543
|
+
draft.workspaceListFilters = draft.workspaceListFilters.map(function (filter) {
|
|
1544
|
+
return Object.assign({}, filter, {
|
|
1545
|
+
isSelected: true
|
|
1546
|
+
});
|
|
1547
|
+
});
|
|
1548
|
+
},
|
|
1549
|
+
setFilterChips: function setFilterChips(draft, action) {
|
|
1550
|
+
var payload = action.payload;
|
|
1551
|
+
draft.workspaceListFilters.forEach(function (filter, index) {
|
|
1552
|
+
var existingFilter = payload.find(function (existingFilter) {
|
|
1553
|
+
return existingFilter.id === filter.id;
|
|
1554
|
+
});
|
|
1555
|
+
var updatedFilter = Object.assign({}, filter, {
|
|
1556
|
+
isSelected: existingFilter ? existingFilter.isSelected : filter.isSelected
|
|
1557
|
+
});
|
|
1558
|
+
draft.workspaceListFilters[index] = updatedFilter;
|
|
1559
|
+
});
|
|
1560
|
+
},
|
|
1561
|
+
setWorkspaceLabelFilters: function setWorkspaceLabelFilters(draft, action) {
|
|
1562
|
+
draft.workspaceLabelFilters = action.payload.labels;
|
|
1563
|
+
},
|
|
1564
|
+
clearLabelFilters: function clearLabelFilters(draft) {
|
|
1565
|
+
draft.workspaceLabelFilters = undefined;
|
|
1566
|
+
},
|
|
1567
|
+
searchFilter: function searchFilter(draft, action) {
|
|
1568
|
+
var searchQuery = action.payload.searchQuery;
|
|
1569
|
+
draft.searchQuery = searchQuery;
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
});
|
|
1573
|
+
var workspaceListReducer = slice$2.reducer,
|
|
1574
|
+
workspaceListActions = slice$2.actions;
|
|
1542
1575
|
|
|
1543
1576
|
/* *
|
|
1544
1577
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1557,866 +1590,307 @@ var getWorkspaceRouteUrl = function getWorkspaceRouteUrl(workspaceId) {
|
|
|
1557
1590
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1558
1591
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1559
1592
|
* */
|
|
1560
|
-
var
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
}
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
// 2) TimeSeries components
|
|
1588
|
-
var SUPPORTED_TIMESERIES_COMPONENT_TYPES = ['TimeSeries'];
|
|
1589
|
-
// or keep your old union type if it already exists
|
|
1590
|
-
// 3) Warning list components
|
|
1591
|
-
var WARNING_LIST_COMPONENT_TYPES = ['WarningList', 'MaritimeWarnings', 'WarningsTimeline'];
|
|
1592
|
-
// TODO: expand it and move to a more centralized place
|
|
1593
|
-
var ALL_COMPONENT_TYPES = [].concat(SUPPORTED_COMPONENT_TYPES, SUPPORTED_TIMESERIES_COMPONENT_TYPES, WARNING_LIST_COMPONENT_TYPES, AVIATION_COMPONENT_TYPES, CAP_COMPONENT_TYPES, ['TafModule', 'TrajksModule', 'SpaceweatherModule', 'Plugin', 'Soundings']);
|
|
1594
|
-
var ViewPresetErrorComponent;
|
|
1595
|
-
(function (ViewPresetErrorComponent) {
|
|
1596
|
-
ViewPresetErrorComponent["PRESET_DETAIL"] = "PRESET_DETAIL";
|
|
1597
|
-
ViewPresetErrorComponent["PRESET_LIST"] = "PRESET_LIST";
|
|
1598
|
-
})(ViewPresetErrorComponent || (ViewPresetErrorComponent = {}));
|
|
1599
|
-
var ViewPresetErrorType;
|
|
1600
|
-
(function (ViewPresetErrorType) {
|
|
1601
|
-
ViewPresetErrorType["AUTH"] = "AUTH";
|
|
1602
|
-
ViewPresetErrorType["GENERIC"] = "GENERIC";
|
|
1603
|
-
})(ViewPresetErrorType || (ViewPresetErrorType = {}));
|
|
1604
|
-
var PresetAction;
|
|
1605
|
-
(function (PresetAction) {
|
|
1606
|
-
PresetAction["OPEN"] = "Open";
|
|
1607
|
-
PresetAction["DELETE"] = "Delete";
|
|
1608
|
-
PresetAction["SAVE"] = "Save";
|
|
1609
|
-
PresetAction["SAVE_AS"] = "Save as";
|
|
1610
|
-
PresetAction["SHARE"] = "Share";
|
|
1611
|
-
PresetAction["EDIT"] = "Edit";
|
|
1612
|
-
PresetAction["RESET"] = "Reset";
|
|
1613
|
-
})(PresetAction || (PresetAction = {}));
|
|
1614
|
-
|
|
1615
|
-
/* *
|
|
1616
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1617
|
-
* you may not use this file except in compliance with the License.
|
|
1618
|
-
* You may obtain a copy of the License at
|
|
1619
|
-
*
|
|
1620
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1621
|
-
*
|
|
1622
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1623
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1624
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1625
|
-
* See the License for the specific language governing permissions and
|
|
1626
|
-
* limitations under the License.
|
|
1627
|
-
*
|
|
1628
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1629
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1630
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1631
|
-
* */
|
|
1632
|
-
var WorkspaceListErrorCategory;
|
|
1633
|
-
(function (WorkspaceListErrorCategory) {
|
|
1634
|
-
WorkspaceListErrorCategory["AUTH"] = "AUTH";
|
|
1635
|
-
WorkspaceListErrorCategory["GENERIC"] = "GENERIC";
|
|
1636
|
-
})(WorkspaceListErrorCategory || (WorkspaceListErrorCategory = {}));
|
|
1637
|
-
var WorkspaceListErrorType;
|
|
1638
|
-
(function (WorkspaceListErrorType) {
|
|
1639
|
-
WorkspaceListErrorType["TRANSLATABLE_ERROR"] = "TRANSLATABLE_ERROR";
|
|
1640
|
-
WorkspaceListErrorType["VERBATIM_ERROR"] = "VERBATIM_ERROR";
|
|
1641
|
-
})(WorkspaceListErrorType || (WorkspaceListErrorType = {}));
|
|
1642
|
-
var PresetFilterType;
|
|
1643
|
-
(function (PresetFilterType) {
|
|
1644
|
-
PresetFilterType["personal"] = "personal";
|
|
1645
|
-
PresetFilterType["shared"] = "shared";
|
|
1646
|
-
PresetFilterType["system"] = "system";
|
|
1647
|
-
PresetFilterType["plugin"] = "plugin";
|
|
1648
|
-
PresetFilterType["templates"] = "templates";
|
|
1649
|
-
PresetFilterType["favourites"] = "favourites";
|
|
1650
|
-
})(PresetFilterType || (PresetFilterType = {}));
|
|
1651
|
-
|
|
1652
|
-
/* *
|
|
1653
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1654
|
-
* you may not use this file except in compliance with the License.
|
|
1655
|
-
* You may obtain a copy of the License at
|
|
1656
|
-
*
|
|
1657
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1658
|
-
*
|
|
1659
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1660
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1661
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1662
|
-
* See the License for the specific language governing permissions and
|
|
1663
|
-
* limitations under the License.
|
|
1664
|
-
*
|
|
1665
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1666
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1667
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1668
|
-
* */
|
|
1669
|
-
var WORKSPACE_NAMESPACE = 'workspace';
|
|
1670
|
-
var initWorkspaceTestI18n = function initWorkspaceTestI18n() {
|
|
1671
|
-
safelyInitI18nForTestsAndStories(i18n, WORKSPACE_NAMESPACE, [{
|
|
1672
|
-
ns: WORKSPACE_NAMESPACE,
|
|
1673
|
-
translations: workspaceTranslations
|
|
1674
|
-
}, {
|
|
1675
|
-
ns: SHARED_NAMESPACE,
|
|
1676
|
-
translations: sharedTranslations
|
|
1677
|
-
}, {
|
|
1678
|
-
ns: CORE_NAMESPACE,
|
|
1679
|
-
translations: coreTranslations
|
|
1680
|
-
}, {
|
|
1681
|
-
ns: WEBMAP_REACT_NAMESPACE,
|
|
1682
|
-
translations: webmapReactTranslations
|
|
1683
|
-
}, {
|
|
1684
|
-
ns: FORM_FIELDS_NAMESPACE,
|
|
1685
|
-
translations: formFieldsTranslations
|
|
1686
|
-
}, {
|
|
1687
|
-
ns: WARN_NAMESPACE,
|
|
1688
|
-
translations: warningsTranslations
|
|
1689
|
-
}]);
|
|
1690
|
-
};
|
|
1691
|
-
var ns = [WORKSPACE_NAMESPACE, SHARED_NAMESPACE];
|
|
1692
|
-
var useWorkspaceTranslation = function useWorkspaceTranslation() {
|
|
1693
|
-
return useTranslation(ns);
|
|
1593
|
+
var defaultViewPresetsFilters = [{
|
|
1594
|
+
label: 'shared-filter-my-view-presets',
|
|
1595
|
+
id: PresetFilterType.personal,
|
|
1596
|
+
isSelected: true,
|
|
1597
|
+
isDisabled: false
|
|
1598
|
+
}, {
|
|
1599
|
+
label: 'shared-filter-system-view-presets',
|
|
1600
|
+
id: PresetFilterType.system,
|
|
1601
|
+
isSelected: true,
|
|
1602
|
+
isDisabled: false
|
|
1603
|
+
}, {
|
|
1604
|
+
label: 'shared-filter-shared-view-presets',
|
|
1605
|
+
id: PresetFilterType.shared,
|
|
1606
|
+
isSelected: true,
|
|
1607
|
+
isDisabled: false
|
|
1608
|
+
}, {
|
|
1609
|
+
label: 'shared-filter-template-presets',
|
|
1610
|
+
id: PresetFilterType.templates,
|
|
1611
|
+
isSelected: true,
|
|
1612
|
+
isDisabled: false
|
|
1613
|
+
}, favouriteFilterState];
|
|
1614
|
+
var ADMIN_VIEW_PRESET_FILTER_IDS = [PresetFilterType.system, PresetFilterType.shared, PresetFilterType.templates, PresetFilterType.favourites];
|
|
1615
|
+
var pluginViewPresetsFilter = {
|
|
1616
|
+
label: 'shared-filter-plugin-view-presets',
|
|
1617
|
+
id: PresetFilterType.plugin,
|
|
1618
|
+
isSelected: true,
|
|
1619
|
+
isDisabled: false
|
|
1694
1620
|
};
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
var trimmedTitle = title.trim();
|
|
1700
|
-
switch (action) {
|
|
1701
|
-
case WorkspacePresetAction.DELETE:
|
|
1702
|
-
return {
|
|
1703
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1704
|
-
key: 'workspace-list-success-delete',
|
|
1705
|
-
params: {
|
|
1706
|
-
TITLE: trimmedTitle
|
|
1707
|
-
}
|
|
1708
|
-
};
|
|
1709
|
-
case WorkspacePresetAction.DELETE_SYSTEM_PRESET:
|
|
1710
|
-
return {
|
|
1711
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1712
|
-
key: 'workspace-list-success-delete-system',
|
|
1713
|
-
params: {
|
|
1714
|
-
TITLE: trimmedTitle
|
|
1715
|
-
}
|
|
1716
|
-
};
|
|
1717
|
-
case WorkspacePresetAction.DUPLICATE:
|
|
1718
|
-
return {
|
|
1719
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1720
|
-
key: 'workspace-list-success-duplicate',
|
|
1721
|
-
params: {
|
|
1722
|
-
TITLE: trimmedTitle
|
|
1723
|
-
}
|
|
1724
|
-
};
|
|
1725
|
-
case WorkspacePresetAction.EDIT:
|
|
1726
|
-
return {
|
|
1727
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1728
|
-
key: 'workspace-list-success-edit',
|
|
1729
|
-
params: {
|
|
1730
|
-
TITLE: trimmedTitle
|
|
1731
|
-
}
|
|
1732
|
-
};
|
|
1733
|
-
case WorkspacePresetAction.RESET:
|
|
1734
|
-
return {
|
|
1735
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1736
|
-
key: 'workspace-list-success-reset',
|
|
1737
|
-
params: {
|
|
1738
|
-
TITLE: trimmedTitle
|
|
1739
|
-
}
|
|
1740
|
-
};
|
|
1741
|
-
case WorkspacePresetAction.SHARE:
|
|
1742
|
-
return {
|
|
1743
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1744
|
-
key: is_shared ? 'workspace-list-success-unshare' : 'workspace-list-success-share',
|
|
1745
|
-
params: {
|
|
1746
|
-
TITLE: trimmedTitle
|
|
1747
|
-
}
|
|
1748
|
-
};
|
|
1749
|
-
default:
|
|
1750
|
-
return {
|
|
1751
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
1752
|
-
key: 'workspace-list-success-save',
|
|
1753
|
-
params: {
|
|
1754
|
-
TITLE: trimmedTitle
|
|
1755
|
-
}
|
|
1756
|
-
};
|
|
1621
|
+
var viewPresetsAdapter = createEntityAdapter({
|
|
1622
|
+
// we use panelId as id (panelId can be mapId or viewId)
|
|
1623
|
+
selectId: function selectId(mapPreset) {
|
|
1624
|
+
return mapPreset.panelId;
|
|
1757
1625
|
}
|
|
1758
|
-
};
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1626
|
+
});
|
|
1627
|
+
var initialState$1 = viewPresetsAdapter.getInitialState();
|
|
1628
|
+
var warningsPresetChangeActions = [warningsFiltersActions.setWarningFilters, warningsFiltersActions.setExpandedSectionsForPanel];
|
|
1629
|
+
var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
|
|
1630
|
+
var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, layerActions.layerChangeAcceptanceTime, layerActions.SetLayerLegendVisibilityPayload, 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, mapActions.setAnimationLength, mapActions.changeOverlayer, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox, mapActions.toggleClock, mapActions.toggleClockOptions, mapActions.setClockPositionSize, mapActions.setLegendPositionSize, mapActions.setDockedLayerManagerSize, mapActions.setDockedLayerManagerPosition, mapActions.setDockedLayerManagerDimensions];
|
|
1631
|
+
var pluginPresetChangeActions = [pluginsActions.setGeoWebPluginState];
|
|
1632
|
+
var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.duplicatePlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle, timeSeriesActions.setLocationMenuSizeAndPosition, timeSeriesActions.setLocationsDialogOpen, timeSeriesActions.reorderPlots, timeSeriesActions.setPlotIsOpen, timeSeriesActions.setPlotSize];
|
|
1633
|
+
var soundingsChangeActions = [soundingsActions.updateSelectedSource, soundingsActions.updateSelectedLocation, soundingsActions.updateDiagramType, soundingsActions.toggleLocationMarkers, soundingsActions.updateProfileDataPreferences, soundingsActions.changeSoundingPanelOrder, soundingsActions.toggleSoundingPanelVisibility, soundingsActions.setPanelIsOpen, soundingsActions.setPanelCustomWidth, soundingsActions.toggleLegendVisibility, soundingsActions.updateSelectedTime, soundingsActions.toggleTimeSliderVisibility, soundingsActions.setLocationMenuSizeAndPosition, soundingsActions.setLocationsMenuOpen];
|
|
1634
|
+
var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.legend, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
|
|
1635
|
+
var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
|
|
1636
|
+
var supportedSoundingsActionOrigins = [SoundingsTypes.SoundingsActionOrigin.soundingsComponent, SoundingsTypes.SoundingsActionOrigin.soundingsManager];
|
|
1637
|
+
var slice$1 = createSlice({
|
|
1638
|
+
initialState: initialState$1,
|
|
1639
|
+
name: 'viewPresets',
|
|
1640
|
+
reducers: {
|
|
1641
|
+
// fetch list actions
|
|
1642
|
+
fetchViewPresets: function fetchViewPresets(draft, action) {
|
|
1643
|
+
var panelId = action.payload.panelId;
|
|
1644
|
+
var entity = draft.entities[panelId];
|
|
1645
|
+
if (entity) {
|
|
1646
|
+
entity.isFetching = true;
|
|
1647
|
+
entity.error = undefined;
|
|
1648
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1649
|
+
}
|
|
1650
|
+
},
|
|
1651
|
+
fetchedViewPreset: function fetchedViewPreset(draft, action) {
|
|
1652
|
+
var _action$payload = action.payload,
|
|
1653
|
+
panelId = _action$payload.panelId,
|
|
1654
|
+
mapPresetId = _action$payload.viewPresetId;
|
|
1655
|
+
var entity = draft.entities[panelId];
|
|
1656
|
+
if (entity) {
|
|
1657
|
+
entity.isFetching = false;
|
|
1658
|
+
entity.activeViewPresetId = mapPresetId;
|
|
1659
|
+
entity.hasChanges = false;
|
|
1660
|
+
entity.error = undefined;
|
|
1661
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1662
|
+
}
|
|
1663
|
+
},
|
|
1664
|
+
saveViewPreset: function saveViewPreset(draft, action) {
|
|
1665
|
+
var panelId = action.payload.panelId;
|
|
1666
|
+
var entity = draft.entities[panelId];
|
|
1667
|
+
if (entity) {
|
|
1668
|
+
entity.isFetching = true;
|
|
1669
|
+
entity.error = undefined;
|
|
1670
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1671
|
+
}
|
|
1672
|
+
},
|
|
1673
|
+
savedViewPreset: function savedViewPreset(draft, action) {
|
|
1674
|
+
var _action$payload2 = action.payload,
|
|
1675
|
+
panelId = _action$payload2.panelId,
|
|
1676
|
+
viewPresetId = _action$payload2.viewPresetId;
|
|
1677
|
+
var entity = draft.entities[panelId];
|
|
1678
|
+
if (entity) {
|
|
1679
|
+
entity.isFetching = false;
|
|
1680
|
+
entity.hasChanges = false;
|
|
1681
|
+
entity.activeViewPresetId = viewPresetId;
|
|
1682
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1683
|
+
}
|
|
1684
|
+
},
|
|
1685
|
+
errorViewPreset: function errorViewPreset(draft, action) {
|
|
1686
|
+
var _action$payload3 = action.payload,
|
|
1687
|
+
panelId = _action$payload3.panelId,
|
|
1688
|
+
error = _action$payload3.error;
|
|
1689
|
+
var entity = draft.entities[panelId];
|
|
1690
|
+
if (entity) {
|
|
1691
|
+
entity.error = error;
|
|
1692
|
+
entity.isFetching = false;
|
|
1693
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1694
|
+
}
|
|
1695
|
+
},
|
|
1696
|
+
// map actions
|
|
1697
|
+
setViewPresetHasChanges: function setViewPresetHasChanges(draft, action) {
|
|
1698
|
+
var _action$payload4 = action.payload,
|
|
1699
|
+
panelId = _action$payload4.panelId,
|
|
1700
|
+
hasChanges = _action$payload4.hasChanges;
|
|
1701
|
+
var entity = draft.entities[panelId];
|
|
1702
|
+
if (entity) {
|
|
1703
|
+
entity.hasChanges = hasChanges;
|
|
1704
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1705
|
+
}
|
|
1706
|
+
},
|
|
1707
|
+
setViewPresetInline: function setViewPresetInline(draft, action) {
|
|
1708
|
+
var _action$payload5 = action.payload,
|
|
1709
|
+
panelId = _action$payload5.panelId,
|
|
1710
|
+
isInline = _action$payload5.isInline;
|
|
1711
|
+
var entity = draft.entities[panelId];
|
|
1712
|
+
if (entity) {
|
|
1713
|
+
if (isInline) {
|
|
1714
|
+
entity.activeViewPresetId = '';
|
|
1784
1715
|
}
|
|
1716
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1785
1717
|
}
|
|
1786
1718
|
},
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1719
|
+
setActiveViewPresetId: function setActiveViewPresetId(draft, action) {
|
|
1720
|
+
var _action$payload6 = action.payload,
|
|
1721
|
+
panelId = _action$payload6.panelId,
|
|
1722
|
+
mapPresetId = _action$payload6.viewPresetId;
|
|
1723
|
+
var entity = draft.entities[panelId];
|
|
1724
|
+
if (entity) {
|
|
1725
|
+
entity.activeViewPresetId = mapPresetId;
|
|
1726
|
+
entity.hasChanges = false;
|
|
1727
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1728
|
+
}
|
|
1729
|
+
},
|
|
1730
|
+
selectViewPreset: function selectViewPreset(draft, action) {
|
|
1731
|
+
var _action$payload7 = action.payload,
|
|
1732
|
+
panelId = _action$payload7.panelId,
|
|
1733
|
+
mapPresetId = _action$payload7.viewPresetId;
|
|
1734
|
+
var entity = draft.entities[panelId];
|
|
1735
|
+
if (entity) {
|
|
1736
|
+
// only update activeMapPresetId after selecting a NEW preset
|
|
1737
|
+
// existing mapPresets are getting an activeMapPresetId after a succesfull fetch
|
|
1738
|
+
if (mapPresetId === '') {
|
|
1739
|
+
entity.activeViewPresetId = '';
|
|
1740
|
+
entity.error = undefined;
|
|
1806
1741
|
}
|
|
1742
|
+
entity.isViewPresetListDialogOpen = false;
|
|
1743
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1807
1744
|
}
|
|
1808
1745
|
},
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
}
|
|
1819
|
-
customEmptyMapWorkspace.views.byId['1_screen'].title = emptyMapWorkspaceTitle;
|
|
1820
|
-
var emptyWorkspacePreset = Object.assign({}, customEmptyMapWorkspace, {
|
|
1821
|
-
title: emptyWorkspaceTitle
|
|
1822
|
-
});
|
|
1823
|
-
return emptyWorkspacePreset;
|
|
1824
|
-
};
|
|
1825
|
-
var FALLBACK_TEMPLATE_LANGUAGE = 'en';
|
|
1826
|
-
// Falls back to English and then to the first title, so a template does not
|
|
1827
|
-
// need a title for every language
|
|
1828
|
-
var getTemplatePresetTitle = function getTemplatePresetTitle(title, language) {
|
|
1829
|
-
var _language, _Object$values$;
|
|
1830
|
-
if (language === void 0) {
|
|
1831
|
-
language = i18n.language;
|
|
1832
|
-
}
|
|
1833
|
-
if (typeof title === 'string') {
|
|
1834
|
-
return title;
|
|
1835
|
-
}
|
|
1836
|
-
var languageCode = [language, (_language = language) == null ? void 0 : _language.split('-')[0], FALLBACK_TEMPLATE_LANGUAGE].find(function (code) {
|
|
1837
|
-
return code && title[code];
|
|
1838
|
-
});
|
|
1839
|
-
return languageCode ? title[languageCode] : (_Object$values$ = Object.values(title)[0]) != null ? _Object$values$ : '';
|
|
1840
|
-
};
|
|
1841
|
-
var findWorkspaceTemplatePreset = function findWorkspaceTemplatePreset(defaultPresets, presetId) {
|
|
1842
|
-
return (defaultPresets != null ? defaultPresets : []).find(function (preset) {
|
|
1843
|
-
return (preset.id || undefined) === (presetId || undefined);
|
|
1844
|
-
});
|
|
1845
|
-
};
|
|
1846
|
-
var isWorkspaceTemplatePresetId = function isWorkspaceTemplatePresetId(defaultPresets, presetId) {
|
|
1847
|
-
return findWorkspaceTemplatePreset(defaultPresets, presetId) !== undefined;
|
|
1848
|
-
};
|
|
1849
|
-
var toWorkspacePresetFromTemplate = function toWorkspacePresetFromTemplate(preset, language) {
|
|
1850
|
-
var views = preset.views,
|
|
1851
|
-
rest = _objectWithoutPropertiesLoose(preset, _excluded$7);
|
|
1852
|
-
return Object.assign({}, rest, {
|
|
1853
|
-
title: getTemplatePresetTitle(preset.title, language),
|
|
1854
|
-
views: {
|
|
1855
|
-
allIds: views.allIds,
|
|
1856
|
-
byId: Object.fromEntries(views.allIds.map(function (viewId) {
|
|
1857
|
-
var view = views.byId[viewId];
|
|
1858
|
-
return [viewId, Object.assign({}, view, {
|
|
1859
|
-
title: view.title === undefined ? undefined : getTemplatePresetTitle(view.title, language)
|
|
1860
|
-
})];
|
|
1861
|
-
}))
|
|
1862
|
-
}
|
|
1863
|
-
});
|
|
1864
|
-
};
|
|
1865
|
-
var getEmptyMapWorkspaceTitles = function getEmptyMapWorkspaceTitles(preset, language) {
|
|
1866
|
-
var _views$byId$views$all, _views$byId$views$all2;
|
|
1867
|
-
var _toWorkspacePresetFro = toWorkspacePresetFromTemplate(preset, language),
|
|
1868
|
-
title = _toWorkspacePresetFro.title,
|
|
1869
|
-
views = _toWorkspacePresetFro.views;
|
|
1870
|
-
return {
|
|
1871
|
-
newWorkspaceText: title,
|
|
1872
|
-
newMapPresetText: (_views$byId$views$all = (_views$byId$views$all2 = views.byId[views.allIds[0]]) == null ? void 0 : _views$byId$views$all2.title) != null ? _views$byId$views$all : title
|
|
1873
|
-
};
|
|
1874
|
-
};
|
|
1875
|
-
var toWorkspaceTemplateListItem = function toWorkspaceTemplateListItem(preset, language) {
|
|
1876
|
-
var _preset$scope, _preset$abstract, _preset$viewType;
|
|
1877
|
-
return {
|
|
1878
|
-
id: preset.id,
|
|
1879
|
-
title: getTemplatePresetTitle(preset.title, language),
|
|
1880
|
-
labels: preset.labels,
|
|
1881
|
-
scope: (_preset$scope = preset.scope) != null ? _preset$scope : 'system',
|
|
1882
|
-
"abstract": (_preset$abstract = preset["abstract"]) != null ? _preset$abstract : '',
|
|
1883
|
-
viewType: (_preset$viewType = preset.viewType) != null ? _preset$viewType : 'singleWindow',
|
|
1884
|
-
isWorkspaceTemplate: true
|
|
1885
|
-
};
|
|
1886
|
-
};
|
|
1887
|
-
var toWorkspaceTemplateListItems = function toWorkspaceTemplateListItems(defaultPresets, language) {
|
|
1888
|
-
return (defaultPresets != null ? defaultPresets : []).map(function (preset) {
|
|
1889
|
-
return toWorkspaceTemplateListItem(preset, language);
|
|
1890
|
-
});
|
|
1891
|
-
};
|
|
1892
|
-
var getBEViewsFromState = function getBEViewsFromState(workspace) {
|
|
1893
|
-
var _workspace$views$allI, _workspace$views;
|
|
1894
|
-
var result = [];
|
|
1895
|
-
((_workspace$views$allI = workspace == null || (_workspace$views = workspace.views) == null ? void 0 : _workspace$views.allIds) != null ? _workspace$views$allI : []).forEach(function (id) {
|
|
1896
|
-
var _workspace$views$byId;
|
|
1897
|
-
var view = (_workspace$views$byId = workspace.views.byId[id]) != null ? _workspace$views$byId : {};
|
|
1898
|
-
result.push({
|
|
1899
|
-
mosaicNodeId: id,
|
|
1900
|
-
title: typeof view.title === 'string' && view.title.trim() ? view.title : id,
|
|
1901
|
-
componentType: view.componentType,
|
|
1902
|
-
initialProps: view.initialProps
|
|
1903
|
-
});
|
|
1904
|
-
});
|
|
1905
|
-
return result;
|
|
1906
|
-
};
|
|
1907
|
-
var togglePresetFilter = function togglePresetFilter(filters, id, isSelected, isAdmin, isFavouritesEnabled, isTemplatesEnabled) {
|
|
1908
|
-
if (isAdmin === void 0) {
|
|
1909
|
-
isAdmin = false;
|
|
1910
|
-
}
|
|
1911
|
-
if (isFavouritesEnabled === void 0) {
|
|
1912
|
-
isFavouritesEnabled = true;
|
|
1913
|
-
}
|
|
1914
|
-
if (isTemplatesEnabled === void 0) {
|
|
1915
|
-
isTemplatesEnabled = true;
|
|
1916
|
-
}
|
|
1917
|
-
if (!filters.some(function (filter) {
|
|
1918
|
-
return filter.id === id;
|
|
1919
|
-
})) {
|
|
1920
|
-
return filters;
|
|
1921
|
-
}
|
|
1922
|
-
var availableFilters = filters.filter(function (filter) {
|
|
1923
|
-
if (filter.id === PresetFilterType.favourites) {
|
|
1924
|
-
return isFavouritesEnabled;
|
|
1925
|
-
}
|
|
1926
|
-
if (filter.id === PresetFilterType.templates && !isTemplatesEnabled) {
|
|
1927
|
-
return false;
|
|
1928
|
-
}
|
|
1929
|
-
return !isAdmin || filter.id === PresetFilterType.system || filter.id === PresetFilterType.shared || filter.id === PresetFilterType.templates;
|
|
1930
|
-
});
|
|
1931
|
-
var allSelected = availableFilters.every(function (filter) {
|
|
1932
|
-
return filter.isSelected;
|
|
1933
|
-
});
|
|
1934
|
-
var allUnselected = availableFilters.every(function (filter) {
|
|
1935
|
-
return filter.id === id ? !isSelected : !filter.isSelected;
|
|
1936
|
-
});
|
|
1937
|
-
return filters.map(function (filter) {
|
|
1938
|
-
if (allSelected) {
|
|
1939
|
-
return Object.assign({}, filter, {
|
|
1940
|
-
isSelected: filter.id === id && isSelected
|
|
1941
|
-
});
|
|
1942
|
-
}
|
|
1943
|
-
// Admins select one scope at a time, deselecting goes through the
|
|
1944
|
-
// regular flow so the last deselected chip falls back to all
|
|
1945
|
-
if (isAdmin && isSelected && id !== PresetFilterType.favourites && filter.id !== PresetFilterType.favourites) {
|
|
1946
|
-
return Object.assign({}, filter, {
|
|
1947
|
-
isSelected: filter.id === id
|
|
1948
|
-
});
|
|
1949
|
-
}
|
|
1950
|
-
return Object.assign({}, filter, {
|
|
1951
|
-
isSelected: allUnselected || (filter.id === id ? isSelected : filter.isSelected)
|
|
1952
|
-
});
|
|
1953
|
-
});
|
|
1954
|
-
};
|
|
1955
|
-
|
|
1956
|
-
/* *
|
|
1957
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1958
|
-
* you may not use this file except in compliance with the License.
|
|
1959
|
-
* You may obtain a copy of the License at
|
|
1960
|
-
*
|
|
1961
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1962
|
-
*
|
|
1963
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1964
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1965
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1966
|
-
* See the License for the specific language governing permissions and
|
|
1967
|
-
* limitations under the License.
|
|
1968
|
-
*
|
|
1969
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1970
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1971
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1972
|
-
* */
|
|
1973
|
-
var personalFilterState = {
|
|
1974
|
-
label: 'shared-filter-my-presets',
|
|
1975
|
-
id: PresetFilterType.personal,
|
|
1976
|
-
isSelected: true,
|
|
1977
|
-
isDisabled: false
|
|
1978
|
-
};
|
|
1979
|
-
var systemFilterState = {
|
|
1980
|
-
label: 'shared-filter-system-presets',
|
|
1981
|
-
id: PresetFilterType.system,
|
|
1982
|
-
isSelected: true,
|
|
1983
|
-
isDisabled: false
|
|
1984
|
-
};
|
|
1985
|
-
var sharedFilterState = {
|
|
1986
|
-
label: 'shared-filter-shared-presets',
|
|
1987
|
-
id: PresetFilterType.shared,
|
|
1988
|
-
isSelected: true,
|
|
1989
|
-
isDisabled: false
|
|
1990
|
-
};
|
|
1991
|
-
({
|
|
1992
|
-
id: PresetFilterType.plugin});
|
|
1993
|
-
var templatesFilterState = {
|
|
1994
|
-
label: 'shared-filter-template-presets',
|
|
1995
|
-
id: PresetFilterType.templates,
|
|
1996
|
-
isSelected: true,
|
|
1997
|
-
isDisabled: false
|
|
1998
|
-
};
|
|
1999
|
-
var favouriteFilterState = {
|
|
2000
|
-
label: 'workspace-favourites',
|
|
2001
|
-
id: PresetFilterType.favourites,
|
|
2002
|
-
isSelected: true,
|
|
2003
|
-
isDisabled: false
|
|
2004
|
-
};
|
|
2005
|
-
var defaultPresetFilterState = [personalFilterState, systemFilterState, sharedFilterState, templatesFilterState, favouriteFilterState];
|
|
2006
|
-
var ADMIN_WORKSPACE_FILTER_IDS = [PresetFilterType.system, PresetFilterType.shared, PresetFilterType.templates, PresetFilterType.favourites];
|
|
2007
|
-
var initialState$2 = {
|
|
2008
|
-
error: undefined,
|
|
2009
|
-
isWorkspaceListDialogOpen: false,
|
|
2010
|
-
searchQuery: '',
|
|
2011
|
-
workspaceListFilters: defaultPresetFilterState,
|
|
2012
|
-
workspaceLabelFilters: undefined
|
|
2013
|
-
};
|
|
2014
|
-
var slice$2 = createSlice({
|
|
2015
|
-
initialState: initialState$2,
|
|
2016
|
-
name: 'workspaceList',
|
|
2017
|
-
reducers: {
|
|
2018
|
-
openWorkspaceActionDialogOptions: function openWorkspaceActionDialogOptions(draft, action) {
|
|
2019
|
-
draft.workspaceActionDialog = Object.assign({}, action.payload, {
|
|
2020
|
-
error: undefined
|
|
2021
|
-
});
|
|
2022
|
-
},
|
|
2023
|
-
onSuccessWorkspaceSaveDialog: function onSuccessWorkspaceSaveDialog(draft, action) {
|
|
2024
|
-
if (!draft.workspaceActionDialog) {
|
|
2025
|
-
return;
|
|
2026
|
-
}
|
|
2027
|
-
var presetId = action.payload.presetId;
|
|
2028
|
-
if (presetId) {
|
|
2029
|
-
draft.workspaceActionDialog.presetId = presetId;
|
|
2030
|
-
}
|
|
2031
|
-
draft.workspaceActionDialog.hasSaved = true;
|
|
2032
|
-
},
|
|
2033
|
-
submitFormWorkspaceActionDialogOptions: function submitFormWorkspaceActionDialogOptions(draft, _action) {
|
|
2034
|
-
if (!draft.workspaceActionDialog) {
|
|
2035
|
-
return;
|
|
1746
|
+
// the view itself is replaced in viewPresets/listener
|
|
1747
|
+
selectViewTemplate: function selectViewTemplate(draft, action) {
|
|
1748
|
+
var panelId = action.payload.panelId;
|
|
1749
|
+
var entity = draft.entities[panelId];
|
|
1750
|
+
if (entity) {
|
|
1751
|
+
entity.activeViewPresetId = '';
|
|
1752
|
+
entity.error = undefined;
|
|
1753
|
+
entity.isViewPresetListDialogOpen = false;
|
|
1754
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
2036
1755
|
}
|
|
2037
|
-
draft.workspaceActionDialog.error = undefined;
|
|
2038
1756
|
},
|
|
2039
|
-
|
|
2040
|
-
|
|
1757
|
+
selectViewPlugin: function selectViewPlugin(draft, action) {
|
|
1758
|
+
var _action$payload8 = action.payload,
|
|
1759
|
+
panelId = _action$payload8.panelId,
|
|
1760
|
+
pluginMetaData = _action$payload8.pluginMetaData;
|
|
1761
|
+
var entity = draft.entities[panelId];
|
|
1762
|
+
entity.activeViewPresetId = (pluginMetaData == null ? void 0 : pluginMetaData.id) || '';
|
|
1763
|
+
entity.error = undefined;
|
|
1764
|
+
entity.isViewPresetListDialogOpen = false;
|
|
2041
1765
|
},
|
|
2042
1766
|
// action is intercepted in mapPresets/listener
|
|
2043
|
-
|
|
2044
|
-
|
|
1767
|
+
onSuccessViewPresetAction: function onSuccessViewPresetAction(_draft, _action) {},
|
|
1768
|
+
registerViewPreset: function registerViewPreset(draft, action) {
|
|
1769
|
+
var _action$payload9 = action.payload,
|
|
1770
|
+
mapId = _action$payload9.panelId,
|
|
1771
|
+
mapPresetId = _action$payload9.viewPresetId,
|
|
1772
|
+
filters = _action$payload9.filters;
|
|
1773
|
+
viewPresetsAdapter.setOne(draft, {
|
|
1774
|
+
panelId: mapId,
|
|
1775
|
+
activeViewPresetId: mapPresetId,
|
|
1776
|
+
hasChanges: false,
|
|
1777
|
+
isFetching: false,
|
|
1778
|
+
error: undefined,
|
|
1779
|
+
isViewPresetListDialogOpen: false,
|
|
1780
|
+
filters: filters != null ? filters : defaultViewPresetsFilters,
|
|
1781
|
+
searchQuery: '',
|
|
1782
|
+
filterResults: {
|
|
1783
|
+
ids: [],
|
|
1784
|
+
entities: {}
|
|
1785
|
+
}
|
|
1786
|
+
});
|
|
2045
1787
|
},
|
|
2046
|
-
|
|
2047
|
-
var
|
|
2048
|
-
|
|
2049
|
-
draft.workspaceActionDialog.error = error;
|
|
2050
|
-
} else {
|
|
2051
|
-
// fallback if dialog isn't open (e.g. SHARE action)
|
|
2052
|
-
draft.error = error;
|
|
2053
|
-
}
|
|
1788
|
+
unregisterViewPreset: function unregisterViewPreset(draft, action) {
|
|
1789
|
+
var panelId = action.payload.panelId;
|
|
1790
|
+
viewPresetsAdapter.removeOne(draft, panelId);
|
|
2054
1791
|
},
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
1792
|
+
// dialog actions
|
|
1793
|
+
openViewPresetDialog: function openViewPresetDialog(draft, action) {
|
|
1794
|
+
var viewPresetDialog = action.payload.viewPresetDialog;
|
|
1795
|
+
draft.viewPresetDialog = viewPresetDialog;
|
|
2058
1796
|
},
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
id = _action$payload.id,
|
|
2062
|
-
isSelected = _action$payload.isSelected,
|
|
2063
|
-
isAdmin = _action$payload.isAdmin,
|
|
2064
|
-
isFavouritesEnabled = _action$payload.isFavouritesEnabled,
|
|
2065
|
-
isTemplatesEnabled = _action$payload.isTemplatesEnabled;
|
|
2066
|
-
draft.workspaceListFilters = togglePresetFilter(draft.workspaceListFilters, id, isSelected, isAdmin, isFavouritesEnabled, isTemplatesEnabled);
|
|
2067
|
-
},
|
|
2068
|
-
setSelectAllFilterChip: function setSelectAllFilterChip(draft) {
|
|
2069
|
-
draft.workspaceListFilters = draft.workspaceListFilters.map(function (filter) {
|
|
2070
|
-
return Object.assign({}, filter, {
|
|
2071
|
-
isSelected: true
|
|
2072
|
-
});
|
|
2073
|
-
});
|
|
2074
|
-
},
|
|
2075
|
-
setFilterChips: function setFilterChips(draft, action) {
|
|
2076
|
-
var payload = action.payload;
|
|
2077
|
-
draft.workspaceListFilters.forEach(function (filter, index) {
|
|
2078
|
-
var existingFilter = payload.find(function (existingFilter) {
|
|
2079
|
-
return existingFilter.id === filter.id;
|
|
2080
|
-
});
|
|
2081
|
-
var updatedFilter = Object.assign({}, filter, {
|
|
2082
|
-
isSelected: existingFilter ? existingFilter.isSelected : filter.isSelected
|
|
2083
|
-
});
|
|
2084
|
-
draft.workspaceListFilters[index] = updatedFilter;
|
|
2085
|
-
});
|
|
2086
|
-
},
|
|
2087
|
-
setWorkspaceLabelFilters: function setWorkspaceLabelFilters(draft, action) {
|
|
2088
|
-
draft.workspaceLabelFilters = action.payload.labels;
|
|
2089
|
-
},
|
|
2090
|
-
clearLabelFilters: function clearLabelFilters(draft) {
|
|
2091
|
-
draft.workspaceLabelFilters = undefined;
|
|
1797
|
+
closeViewPresetDialog: function closeViewPresetDialog(draft) {
|
|
1798
|
+
delete draft.viewPresetDialog;
|
|
2092
1799
|
},
|
|
2093
|
-
|
|
2094
|
-
var
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
}
|
|
2098
|
-
});
|
|
2099
|
-
var workspaceListReducer = slice$2.reducer,
|
|
2100
|
-
workspaceListActions = slice$2.actions;
|
|
2101
|
-
|
|
2102
|
-
/* *
|
|
2103
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2104
|
-
* you may not use this file except in compliance with the License.
|
|
2105
|
-
* You may obtain a copy of the License at
|
|
2106
|
-
*
|
|
2107
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2108
|
-
*
|
|
2109
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
2110
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2111
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2112
|
-
* See the License for the specific language governing permissions and
|
|
2113
|
-
* limitations under the License.
|
|
2114
|
-
*
|
|
2115
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
2116
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2117
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
2118
|
-
* */
|
|
2119
|
-
var defaultViewPresetsFilters = [{
|
|
2120
|
-
label: 'shared-filter-my-view-presets',
|
|
2121
|
-
id: PresetFilterType.personal,
|
|
2122
|
-
isSelected: true,
|
|
2123
|
-
isDisabled: false
|
|
2124
|
-
}, {
|
|
2125
|
-
label: 'shared-filter-system-view-presets',
|
|
2126
|
-
id: PresetFilterType.system,
|
|
2127
|
-
isSelected: true,
|
|
2128
|
-
isDisabled: false
|
|
2129
|
-
}, {
|
|
2130
|
-
label: 'shared-filter-shared-view-presets',
|
|
2131
|
-
id: PresetFilterType.shared,
|
|
2132
|
-
isSelected: true,
|
|
2133
|
-
isDisabled: false
|
|
2134
|
-
}, {
|
|
2135
|
-
label: 'shared-filter-template-presets',
|
|
2136
|
-
id: PresetFilterType.templates,
|
|
2137
|
-
isSelected: true,
|
|
2138
|
-
isDisabled: false
|
|
2139
|
-
}, favouriteFilterState];
|
|
2140
|
-
var ADMIN_VIEW_PRESET_FILTER_IDS = [PresetFilterType.system, PresetFilterType.shared, PresetFilterType.templates, PresetFilterType.favourites];
|
|
2141
|
-
var pluginViewPresetsFilter = {
|
|
2142
|
-
label: 'shared-filter-plugin-view-presets',
|
|
2143
|
-
id: PresetFilterType.plugin,
|
|
2144
|
-
isSelected: true,
|
|
2145
|
-
isDisabled: false
|
|
2146
|
-
};
|
|
2147
|
-
var viewPresetsAdapter = createEntityAdapter({
|
|
2148
|
-
// we use panelId as id (panelId can be mapId or viewId)
|
|
2149
|
-
selectId: function selectId(mapPreset) {
|
|
2150
|
-
return mapPreset.panelId;
|
|
2151
|
-
}
|
|
2152
|
-
});
|
|
2153
|
-
var initialState$1 = viewPresetsAdapter.getInitialState();
|
|
2154
|
-
var warningsPresetChangeActions = [warningsFiltersActions.setWarningFilters, warningsFiltersActions.setExpandedSectionsForPanel];
|
|
2155
|
-
var syncGroupChangeActions = [syncGroupsActions.syncGroupRemoveTarget, syncGroupsActions.syncGroupAddTarget];
|
|
2156
|
-
var mapPresetChangeActions = [layerActions.setBaseLayers, layerActions.layerDelete, layerActions.addLayer, layerActions.duplicateMapLayer, layerActions.layerChangeEnabled, layerActions.layerChangeName, layerActions.layerChangeStyle, layerActions.layerChangeOpacity, layerActions.layerChangeDimension, layerActions.layerChangeAcceptanceTime, layerActions.SetLayerLegendVisibilityPayload, 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, mapActions.setAnimationLength, mapActions.changeOverlayer, uiActions.setActiveMapIdForDialog, uiActions.setToggleOpenDialog, genericActions.setBbox, mapActions.setBbox, mapActions.toggleClock, mapActions.toggleClockOptions, mapActions.setClockPositionSize, mapActions.setLegendPositionSize, mapActions.setDockedLayerManagerSize, mapActions.setDockedLayerManagerPosition, mapActions.setDockedLayerManagerDimensions];
|
|
2157
|
-
var pluginPresetChangeActions = [pluginsActions.setGeoWebPluginState];
|
|
2158
|
-
var timeSeriesPresetChangeActions = [timeSeriesActions.addParameter, timeSeriesActions.addPlot, timeSeriesActions.duplicatePlot, timeSeriesActions.deleteParameter, timeSeriesActions.deletePlot, timeSeriesActions.moveParameter, timeSeriesActions.movePlot, timeSeriesActions.toggleParameter, timeSeriesActions.togglePlot, timeSeriesActions.patchParameter, timeSeriesActions.updateTitle, timeSeriesActions.setLocationMenuSizeAndPosition, timeSeriesActions.setLocationsDialogOpen, timeSeriesActions.reorderPlots, timeSeriesActions.setPlotIsOpen, timeSeriesActions.setPlotSize];
|
|
2159
|
-
var soundingsChangeActions = [soundingsActions.updateSelectedSource, soundingsActions.updateSelectedLocation, soundingsActions.updateDiagramType, soundingsActions.toggleLocationMarkers, soundingsActions.updateProfileDataPreferences, soundingsActions.changeSoundingPanelOrder, soundingsActions.toggleSoundingPanelVisibility, soundingsActions.setPanelIsOpen, soundingsActions.setPanelCustomWidth, soundingsActions.toggleLegendVisibility, soundingsActions.updateSelectedTime, soundingsActions.toggleTimeSliderVisibility, soundingsActions.setLocationMenuSizeAndPosition, soundingsActions.setLocationsMenuOpen];
|
|
2160
|
-
var supportedMapActionOrigins = [layerTypes.LayerActionOrigin.layerManager, layerTypes.LayerActionOrigin.legend, layerTypes.LayerActionOrigin.wmsLoader, mapEnums.MapActionOrigin.map];
|
|
2161
|
-
var supportedTimeSeriesActionOrigins = [TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesManager, TimeSeriesTypes.TimeSeriesActionOrigin.timeSeriesSelect];
|
|
2162
|
-
var supportedSoundingsActionOrigins = [SoundingsTypes.SoundingsActionOrigin.soundingsComponent, SoundingsTypes.SoundingsActionOrigin.soundingsManager];
|
|
2163
|
-
var slice$1 = createSlice({
|
|
2164
|
-
initialState: initialState$1,
|
|
2165
|
-
name: 'viewPresets',
|
|
2166
|
-
reducers: {
|
|
2167
|
-
// fetch list actions
|
|
2168
|
-
fetchViewPresets: function fetchViewPresets(draft, action) {
|
|
2169
|
-
var panelId = action.payload.panelId;
|
|
1800
|
+
toggleViewPresetListDialog: function toggleViewPresetListDialog(draft, action) {
|
|
1801
|
+
var _action$payload0 = action.payload,
|
|
1802
|
+
isViewPresetDialogOpen = _action$payload0.isViewPresetListDialogOpen,
|
|
1803
|
+
panelId = _action$payload0.panelId;
|
|
2170
1804
|
var entity = draft.entities[panelId];
|
|
2171
1805
|
if (entity) {
|
|
2172
|
-
entity.
|
|
2173
|
-
entity.error = undefined;
|
|
1806
|
+
entity.isViewPresetListDialogOpen = isViewPresetDialogOpen;
|
|
2174
1807
|
viewPresetsAdapter.setOne(draft, entity);
|
|
2175
1808
|
}
|
|
2176
1809
|
},
|
|
2177
|
-
|
|
2178
|
-
var _action$
|
|
2179
|
-
|
|
2180
|
-
|
|
1810
|
+
toggleSelectFilterChip: function toggleSelectFilterChip(draft, action) {
|
|
1811
|
+
var _action$payload1 = action.payload,
|
|
1812
|
+
id = _action$payload1.id,
|
|
1813
|
+
isSelected = _action$payload1.isSelected,
|
|
1814
|
+
panelId = _action$payload1.panelId,
|
|
1815
|
+
isAdmin = _action$payload1.isAdmin,
|
|
1816
|
+
isFavouritesEnabled = _action$payload1.isFavouritesEnabled;
|
|
2181
1817
|
var entity = draft.entities[panelId];
|
|
2182
1818
|
if (entity) {
|
|
2183
|
-
entity.
|
|
2184
|
-
entity.activeViewPresetId = mapPresetId;
|
|
2185
|
-
entity.hasChanges = false;
|
|
2186
|
-
entity.error = undefined;
|
|
2187
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
1819
|
+
entity.filters = togglePresetFilter(entity.filters, id, isSelected, isAdmin, isFavouritesEnabled);
|
|
2188
1820
|
}
|
|
2189
1821
|
},
|
|
2190
|
-
|
|
1822
|
+
setSelectAllFilterChip: function setSelectAllFilterChip(draft, action) {
|
|
2191
1823
|
var panelId = action.payload.panelId;
|
|
2192
1824
|
var entity = draft.entities[panelId];
|
|
2193
1825
|
if (entity) {
|
|
2194
|
-
entity.
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
savedViewPreset: function savedViewPreset(draft, action) {
|
|
2200
|
-
var _action$payload2 = action.payload,
|
|
2201
|
-
panelId = _action$payload2.panelId,
|
|
2202
|
-
viewPresetId = _action$payload2.viewPresetId;
|
|
2203
|
-
var entity = draft.entities[panelId];
|
|
2204
|
-
if (entity) {
|
|
2205
|
-
entity.isFetching = false;
|
|
2206
|
-
entity.hasChanges = false;
|
|
2207
|
-
entity.activeViewPresetId = viewPresetId;
|
|
2208
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
1826
|
+
entity.filters = entity.filters.map(function (filter) {
|
|
1827
|
+
return Object.assign({}, filter, {
|
|
1828
|
+
isSelected: true
|
|
1829
|
+
});
|
|
1830
|
+
});
|
|
2209
1831
|
}
|
|
2210
1832
|
},
|
|
2211
|
-
|
|
2212
|
-
var _action$
|
|
2213
|
-
panelId = _action$
|
|
2214
|
-
|
|
1833
|
+
setFilterChips: function setFilterChips(draft, action) {
|
|
1834
|
+
var _action$payload10 = action.payload,
|
|
1835
|
+
panelId = _action$payload10.panelId,
|
|
1836
|
+
filters = _action$payload10.filters;
|
|
2215
1837
|
var entity = draft.entities[panelId];
|
|
2216
|
-
if (entity) {
|
|
2217
|
-
|
|
2218
|
-
entity.isFetching = false;
|
|
2219
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
1838
|
+
if (!entity) {
|
|
1839
|
+
return;
|
|
2220
1840
|
}
|
|
1841
|
+
entity.filters.forEach(function (filter, index) {
|
|
1842
|
+
var existingFilter = filters.find(function (existingFilter) {
|
|
1843
|
+
return existingFilter.id === filter.id;
|
|
1844
|
+
});
|
|
1845
|
+
var updatedFilter = Object.assign({}, filter, {
|
|
1846
|
+
isSelected: existingFilter ? existingFilter.isSelected : filter.isSelected
|
|
1847
|
+
});
|
|
1848
|
+
entity.filters[index] = updatedFilter;
|
|
1849
|
+
});
|
|
2221
1850
|
},
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
panelId = _action$
|
|
2226
|
-
hasChanges = _action$payload4.hasChanges;
|
|
1851
|
+
searchFilter: function searchFilter(draft, action) {
|
|
1852
|
+
var _action$payload11 = action.payload,
|
|
1853
|
+
searchQuery = _action$payload11.searchQuery,
|
|
1854
|
+
panelId = _action$payload11.panelId;
|
|
2227
1855
|
var entity = draft.entities[panelId];
|
|
2228
1856
|
if (entity) {
|
|
2229
|
-
entity.
|
|
2230
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
1857
|
+
entity.searchQuery = searchQuery;
|
|
2231
1858
|
}
|
|
2232
1859
|
},
|
|
2233
|
-
|
|
2234
|
-
var _action$
|
|
2235
|
-
panelId = _action$
|
|
2236
|
-
|
|
1860
|
+
setViewPresetLabelFilters: function setViewPresetLabelFilters(draft, action) {
|
|
1861
|
+
var _action$payload12 = action.payload,
|
|
1862
|
+
panelId = _action$payload12.panelId,
|
|
1863
|
+
labels = _action$payload12.labels;
|
|
2237
1864
|
var entity = draft.entities[panelId];
|
|
2238
|
-
if (entity) {
|
|
2239
|
-
|
|
2240
|
-
entity.activeViewPresetId = '';
|
|
2241
|
-
}
|
|
2242
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
1865
|
+
if (!entity) {
|
|
1866
|
+
return;
|
|
2243
1867
|
}
|
|
1868
|
+
entity.labelFilters = labels;
|
|
1869
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
2244
1870
|
},
|
|
2245
|
-
|
|
2246
|
-
var
|
|
2247
|
-
panelId = _action$payload6.panelId,
|
|
2248
|
-
mapPresetId = _action$payload6.viewPresetId;
|
|
1871
|
+
clearViewPresetLabelFilters: function clearViewPresetLabelFilters(draft, action) {
|
|
1872
|
+
var panelId = action.payload.panelId;
|
|
2249
1873
|
var entity = draft.entities[panelId];
|
|
2250
|
-
if (entity) {
|
|
2251
|
-
|
|
2252
|
-
entity.hasChanges = false;
|
|
2253
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
1874
|
+
if (!entity) {
|
|
1875
|
+
return;
|
|
2254
1876
|
}
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
1877
|
+
entity.labelFilters = undefined;
|
|
1878
|
+
viewPresetsAdapter.setOne(draft, entity);
|
|
1879
|
+
}
|
|
1880
|
+
},
|
|
1881
|
+
extraReducers: function extraReducers(builder) {
|
|
1882
|
+
builder.addCase(mapActions.setMapPresetError, function (draft, action) {
|
|
1883
|
+
var _action$payload13 = action.payload,
|
|
1884
|
+
mapId = _action$payload13.mapId,
|
|
1885
|
+
error = _action$payload13.error;
|
|
1886
|
+
var entity = draft.entities[mapId];
|
|
2261
1887
|
if (entity) {
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
entity.isViewPresetListDialogOpen = false;
|
|
2269
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
2270
|
-
}
|
|
2271
|
-
},
|
|
2272
|
-
// the view itself is replaced in viewPresets/listener
|
|
2273
|
-
selectViewTemplate: function selectViewTemplate(draft, action) {
|
|
2274
|
-
var panelId = action.payload.panelId;
|
|
2275
|
-
var entity = draft.entities[panelId];
|
|
2276
|
-
if (entity) {
|
|
2277
|
-
entity.activeViewPresetId = '';
|
|
2278
|
-
entity.error = undefined;
|
|
2279
|
-
entity.isViewPresetListDialogOpen = false;
|
|
2280
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
2281
|
-
}
|
|
2282
|
-
},
|
|
2283
|
-
selectViewPlugin: function selectViewPlugin(draft, action) {
|
|
2284
|
-
var _action$payload8 = action.payload,
|
|
2285
|
-
panelId = _action$payload8.panelId,
|
|
2286
|
-
pluginMetaData = _action$payload8.pluginMetaData;
|
|
2287
|
-
var entity = draft.entities[panelId];
|
|
2288
|
-
entity.activeViewPresetId = (pluginMetaData == null ? void 0 : pluginMetaData.id) || '';
|
|
2289
|
-
entity.error = undefined;
|
|
2290
|
-
entity.isViewPresetListDialogOpen = false;
|
|
2291
|
-
},
|
|
2292
|
-
// action is intercepted in mapPresets/listener
|
|
2293
|
-
onSuccessViewPresetAction: function onSuccessViewPresetAction(_draft, _action) {},
|
|
2294
|
-
registerViewPreset: function registerViewPreset(draft, action) {
|
|
2295
|
-
var _action$payload9 = action.payload,
|
|
2296
|
-
mapId = _action$payload9.panelId,
|
|
2297
|
-
mapPresetId = _action$payload9.viewPresetId,
|
|
2298
|
-
filters = _action$payload9.filters;
|
|
2299
|
-
viewPresetsAdapter.setOne(draft, {
|
|
2300
|
-
panelId: mapId,
|
|
2301
|
-
activeViewPresetId: mapPresetId,
|
|
2302
|
-
hasChanges: false,
|
|
2303
|
-
isFetching: false,
|
|
2304
|
-
error: undefined,
|
|
2305
|
-
isViewPresetListDialogOpen: false,
|
|
2306
|
-
filters: filters != null ? filters : defaultViewPresetsFilters,
|
|
2307
|
-
searchQuery: '',
|
|
2308
|
-
filterResults: {
|
|
2309
|
-
ids: [],
|
|
2310
|
-
entities: {}
|
|
2311
|
-
}
|
|
2312
|
-
});
|
|
2313
|
-
},
|
|
2314
|
-
unregisterViewPreset: function unregisterViewPreset(draft, action) {
|
|
2315
|
-
var panelId = action.payload.panelId;
|
|
2316
|
-
viewPresetsAdapter.removeOne(draft, panelId);
|
|
2317
|
-
},
|
|
2318
|
-
// dialog actions
|
|
2319
|
-
openViewPresetDialog: function openViewPresetDialog(draft, action) {
|
|
2320
|
-
var viewPresetDialog = action.payload.viewPresetDialog;
|
|
2321
|
-
draft.viewPresetDialog = viewPresetDialog;
|
|
2322
|
-
},
|
|
2323
|
-
closeViewPresetDialog: function closeViewPresetDialog(draft) {
|
|
2324
|
-
delete draft.viewPresetDialog;
|
|
2325
|
-
},
|
|
2326
|
-
toggleViewPresetListDialog: function toggleViewPresetListDialog(draft, action) {
|
|
2327
|
-
var _action$payload0 = action.payload,
|
|
2328
|
-
isViewPresetDialogOpen = _action$payload0.isViewPresetListDialogOpen,
|
|
2329
|
-
panelId = _action$payload0.panelId;
|
|
2330
|
-
var entity = draft.entities[panelId];
|
|
2331
|
-
if (entity) {
|
|
2332
|
-
entity.isViewPresetListDialogOpen = isViewPresetDialogOpen;
|
|
2333
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
2334
|
-
}
|
|
2335
|
-
},
|
|
2336
|
-
toggleSelectFilterChip: function toggleSelectFilterChip(draft, action) {
|
|
2337
|
-
var _action$payload1 = action.payload,
|
|
2338
|
-
id = _action$payload1.id,
|
|
2339
|
-
isSelected = _action$payload1.isSelected,
|
|
2340
|
-
panelId = _action$payload1.panelId,
|
|
2341
|
-
isAdmin = _action$payload1.isAdmin,
|
|
2342
|
-
isFavouritesEnabled = _action$payload1.isFavouritesEnabled;
|
|
2343
|
-
var entity = draft.entities[panelId];
|
|
2344
|
-
if (entity) {
|
|
2345
|
-
entity.filters = togglePresetFilter(entity.filters, id, isSelected, isAdmin, isFavouritesEnabled);
|
|
2346
|
-
}
|
|
2347
|
-
},
|
|
2348
|
-
setSelectAllFilterChip: function setSelectAllFilterChip(draft, action) {
|
|
2349
|
-
var panelId = action.payload.panelId;
|
|
2350
|
-
var entity = draft.entities[panelId];
|
|
2351
|
-
if (entity) {
|
|
2352
|
-
entity.filters = entity.filters.map(function (filter) {
|
|
2353
|
-
return Object.assign({}, filter, {
|
|
2354
|
-
isSelected: true
|
|
2355
|
-
});
|
|
2356
|
-
});
|
|
2357
|
-
}
|
|
2358
|
-
},
|
|
2359
|
-
setFilterChips: function setFilterChips(draft, action) {
|
|
2360
|
-
var _action$payload10 = action.payload,
|
|
2361
|
-
panelId = _action$payload10.panelId,
|
|
2362
|
-
filters = _action$payload10.filters;
|
|
2363
|
-
var entity = draft.entities[panelId];
|
|
2364
|
-
if (!entity) {
|
|
2365
|
-
return;
|
|
2366
|
-
}
|
|
2367
|
-
entity.filters.forEach(function (filter, index) {
|
|
2368
|
-
var existingFilter = filters.find(function (existingFilter) {
|
|
2369
|
-
return existingFilter.id === filter.id;
|
|
2370
|
-
});
|
|
2371
|
-
var updatedFilter = Object.assign({}, filter, {
|
|
2372
|
-
isSelected: existingFilter ? existingFilter.isSelected : filter.isSelected
|
|
2373
|
-
});
|
|
2374
|
-
entity.filters[index] = updatedFilter;
|
|
2375
|
-
});
|
|
2376
|
-
},
|
|
2377
|
-
searchFilter: function searchFilter(draft, action) {
|
|
2378
|
-
var _action$payload11 = action.payload,
|
|
2379
|
-
searchQuery = _action$payload11.searchQuery,
|
|
2380
|
-
panelId = _action$payload11.panelId;
|
|
2381
|
-
var entity = draft.entities[panelId];
|
|
2382
|
-
if (entity) {
|
|
2383
|
-
entity.searchQuery = searchQuery;
|
|
2384
|
-
}
|
|
2385
|
-
},
|
|
2386
|
-
setViewPresetLabelFilters: function setViewPresetLabelFilters(draft, action) {
|
|
2387
|
-
var _action$payload12 = action.payload,
|
|
2388
|
-
panelId = _action$payload12.panelId,
|
|
2389
|
-
labels = _action$payload12.labels;
|
|
2390
|
-
var entity = draft.entities[panelId];
|
|
2391
|
-
if (!entity) {
|
|
2392
|
-
return;
|
|
2393
|
-
}
|
|
2394
|
-
entity.labelFilters = labels;
|
|
2395
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
2396
|
-
},
|
|
2397
|
-
clearViewPresetLabelFilters: function clearViewPresetLabelFilters(draft, action) {
|
|
2398
|
-
var panelId = action.payload.panelId;
|
|
2399
|
-
var entity = draft.entities[panelId];
|
|
2400
|
-
if (!entity) {
|
|
2401
|
-
return;
|
|
2402
|
-
}
|
|
2403
|
-
entity.labelFilters = undefined;
|
|
2404
|
-
viewPresetsAdapter.setOne(draft, entity);
|
|
2405
|
-
}
|
|
2406
|
-
},
|
|
2407
|
-
extraReducers: function extraReducers(builder) {
|
|
2408
|
-
builder.addCase(mapActions.setMapPresetError, function (draft, action) {
|
|
2409
|
-
var _action$payload13 = action.payload,
|
|
2410
|
-
mapId = _action$payload13.mapId,
|
|
2411
|
-
error = _action$payload13.error;
|
|
2412
|
-
var entity = draft.entities[mapId];
|
|
2413
|
-
if (entity) {
|
|
2414
|
-
entity.error = error ? {
|
|
2415
|
-
message: error,
|
|
2416
|
-
component: ViewPresetErrorComponent.PRESET_DETAIL,
|
|
2417
|
-
errorType: ViewPresetErrorType.GENERIC
|
|
2418
|
-
} : undefined;
|
|
2419
|
-
entity.isFetching = false;
|
|
1888
|
+
entity.error = error ? {
|
|
1889
|
+
message: error,
|
|
1890
|
+
component: ViewPresetErrorComponent.PRESET_DETAIL,
|
|
1891
|
+
errorType: ViewPresetErrorType.GENERIC
|
|
1892
|
+
} : undefined;
|
|
1893
|
+
entity.isFetching = false;
|
|
2420
1894
|
viewPresetsAdapter.setOne(draft, entity);
|
|
2421
1895
|
}
|
|
2422
1896
|
});
|
|
@@ -2975,6 +2449,9 @@ var emptyViewPreset = function emptyViewPreset(componentType) {
|
|
|
2975
2449
|
},
|
|
2976
2450
|
Soundings: undefined,
|
|
2977
2451
|
// TODO: empty soundings preset https://gitlab.com/opengeoweb/opengeoweb/-/issues/6029
|
|
2452
|
+
CrossSection: {
|
|
2453
|
+
syncGroupsIds: []
|
|
2454
|
+
},
|
|
2978
2455
|
ViewError: undefined,
|
|
2979
2456
|
ViewLoading: undefined,
|
|
2980
2457
|
MultiMap: undefined,
|
|
@@ -3248,6 +2725,9 @@ var getViewPresetToSendToBackend = createSelector(getViewById, getViewComponentT
|
|
|
3248
2725
|
Soundings: Object.assign({}, soundingsPreset, {
|
|
3249
2726
|
syncGroupsIds: syncGroupsIds
|
|
3250
2727
|
}),
|
|
2728
|
+
CrossSection: Object.assign({}, workspaceView == null ? void 0 : workspaceView.initialProps, {
|
|
2729
|
+
syncGroupsIds: syncGroupsIds
|
|
2730
|
+
}),
|
|
3251
2731
|
Plugin: Object.assign({}, workspaceView == null ? void 0 : workspaceView.initialProps, {
|
|
3252
2732
|
syncGroupsIds: syncGroupsIds
|
|
3253
2733
|
}, pluginState && {
|
|
@@ -3279,27 +2759,764 @@ var getWorkspaceToSendToBackend = function getWorkspaceToSendToBackend(store) {
|
|
|
3279
2759
|
});
|
|
3280
2760
|
};
|
|
3281
2761
|
|
|
3282
|
-
var selectors$1 = /*#__PURE__*/Object.freeze({
|
|
3283
|
-
__proto__: null,
|
|
3284
|
-
getComponentTypesFromActiveViews: getComponentTypesFromActiveViews,
|
|
3285
|
-
getMosaicNode: getMosaicNode,
|
|
3286
|
-
getSelectedWorkspaceScope: getSelectedWorkspaceScope,
|
|
3287
|
-
getSelectedWorkspaceTitle: getSelectedWorkspaceTitle,
|
|
3288
|
-
getShouldPreventClose: getShouldPreventClose,
|
|
3289
|
-
getViewById: getViewById,
|
|
3290
|
-
getViewComponentType: getViewComponentType,
|
|
3291
|
-
getViewIds: getViewIds,
|
|
3292
|
-
getViewPresetToSendToBackend: getViewPresetToSendToBackend,
|
|
3293
|
-
getViewType: getViewType,
|
|
3294
|
-
getViewsById: getViewsById,
|
|
3295
|
-
getWorkspaceData: getWorkspaceData,
|
|
3296
|
-
getWorkspaceError: getWorkspaceError,
|
|
3297
|
-
getWorkspaceId: getWorkspaceId,
|
|
3298
|
-
getWorkspaceState: getWorkspaceState,
|
|
3299
|
-
getWorkspaceToSendToBackend: getWorkspaceToSendToBackend,
|
|
3300
|
-
hasWorkspaceChanges: hasWorkspaceChanges,
|
|
3301
|
-
isWorkspaceLoading: isWorkspaceLoading
|
|
3302
|
-
});
|
|
2762
|
+
var selectors$1 = /*#__PURE__*/Object.freeze({
|
|
2763
|
+
__proto__: null,
|
|
2764
|
+
getComponentTypesFromActiveViews: getComponentTypesFromActiveViews,
|
|
2765
|
+
getMosaicNode: getMosaicNode,
|
|
2766
|
+
getSelectedWorkspaceScope: getSelectedWorkspaceScope,
|
|
2767
|
+
getSelectedWorkspaceTitle: getSelectedWorkspaceTitle,
|
|
2768
|
+
getShouldPreventClose: getShouldPreventClose,
|
|
2769
|
+
getViewById: getViewById,
|
|
2770
|
+
getViewComponentType: getViewComponentType,
|
|
2771
|
+
getViewIds: getViewIds,
|
|
2772
|
+
getViewPresetToSendToBackend: getViewPresetToSendToBackend,
|
|
2773
|
+
getViewType: getViewType,
|
|
2774
|
+
getViewsById: getViewsById,
|
|
2775
|
+
getWorkspaceData: getWorkspaceData,
|
|
2776
|
+
getWorkspaceError: getWorkspaceError,
|
|
2777
|
+
getWorkspaceId: getWorkspaceId,
|
|
2778
|
+
getWorkspaceState: getWorkspaceState,
|
|
2779
|
+
getWorkspaceToSendToBackend: getWorkspaceToSendToBackend,
|
|
2780
|
+
hasWorkspaceChanges: hasWorkspaceChanges,
|
|
2781
|
+
isWorkspaceLoading: isWorkspaceLoading
|
|
2782
|
+
});
|
|
2783
|
+
|
|
2784
|
+
var VIEW_PRESETS_DOWNLOAD_TIMEOUT_MS = 30000;
|
|
2785
|
+
var MAP_SIZES_TIMEOUT_MS = 10000;
|
|
2786
|
+
var restoreTimeoutMessage = {
|
|
2787
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
2788
|
+
key: 'workspace-map-views-restore-timeout'
|
|
2789
|
+
};
|
|
2790
|
+
/** Resolves true once the state is ready, or false when the timeout passes first. */
|
|
2791
|
+
var waitForState = /*#__PURE__*/function () {
|
|
2792
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(listenerApi, isReady, timeout) {
|
|
2793
|
+
return _regenerator().w(function (_context) {
|
|
2794
|
+
while (1) switch (_context.n) {
|
|
2795
|
+
case 0:
|
|
2796
|
+
return _context.a(2, isReady(listenerApi.getState()) || listenerApi.condition(function (_action, currentState) {
|
|
2797
|
+
return isReady(currentState);
|
|
2798
|
+
}, timeout));
|
|
2799
|
+
}
|
|
2800
|
+
}, _callee);
|
|
2801
|
+
}));
|
|
2802
|
+
return function waitForState(_x, _x2, _x3) {
|
|
2803
|
+
return _ref.apply(this, arguments);
|
|
2804
|
+
};
|
|
2805
|
+
}();
|
|
2806
|
+
var areViewPresetsDownloaded = function areViewPresetsDownloaded(state) {
|
|
2807
|
+
return getViewIds(state).every(function (viewId) {
|
|
2808
|
+
var _getViewById;
|
|
2809
|
+
return ((_getViewById = getViewById(state, viewId)) == null ? void 0 : _getViewById.componentType) !== 'ViewLoading';
|
|
2810
|
+
});
|
|
2811
|
+
};
|
|
2812
|
+
var collectSavedBboxes = function collectSavedBboxes(state) {
|
|
2813
|
+
return getViewIds(state).reduce(function (savedBboxes, viewId) {
|
|
2814
|
+
var _getViewById2, _initialProps$mapPres, _proj$bbox, _Object$assign;
|
|
2815
|
+
var initialProps = (_getViewById2 = getViewById(state, viewId)) == null ? void 0 : _getViewById2.initialProps;
|
|
2816
|
+
var proj = initialProps == null || (_initialProps$mapPres = initialProps.mapPreset) == null ? void 0 : _initialProps$mapPres.proj;
|
|
2817
|
+
return getViewComponentType(state, viewId) === 'Map' && (proj == null || (_proj$bbox = proj.bbox) == null ? void 0 : _proj$bbox.left) !== undefined ? Object.assign({}, savedBboxes, (_Object$assign = {}, _Object$assign[viewId] = {
|
|
2818
|
+
bbox: proj.bbox,
|
|
2819
|
+
srs: proj.srs
|
|
2820
|
+
}, _Object$assign)) : savedBboxes;
|
|
2821
|
+
}, {});
|
|
2822
|
+
};
|
|
2823
|
+
var getBboxSyncGroupMembers = function getBboxSyncGroupMembers(state, mapIds) {
|
|
2824
|
+
var _syncGroupsSelectors$, _groups$allIds;
|
|
2825
|
+
var groups = (_syncGroupsSelectors$ = syncGroupsSelectors.getSynchronizationGroupState(state)) == null ? void 0 : _syncGroupsSelectors$.groups;
|
|
2826
|
+
return ((_groups$allIds = groups == null ? void 0 : groups.allIds) != null ? _groups$allIds : []).reduce(function (membersByGroupId, groupId) {
|
|
2827
|
+
var _Object$assign2;
|
|
2828
|
+
var group = groups.byId[groupId];
|
|
2829
|
+
var memberMapIds = group.type === syncConstants.SYNCGROUPS_TYPE_SETBBOX ? group.targets.allIds.filter(function (targetId) {
|
|
2830
|
+
return mapIds.includes(targetId);
|
|
2831
|
+
}) : [];
|
|
2832
|
+
return memberMapIds.length ? Object.assign({}, membersByGroupId, (_Object$assign2 = {}, _Object$assign2[groupId] = memberMapIds, _Object$assign2)) : membersByGroupId;
|
|
2833
|
+
}, {});
|
|
2834
|
+
};
|
|
2835
|
+
var haveMapSizes = function haveMapSizes(state, mapIds) {
|
|
2836
|
+
return mapIds.every(function (mapId) {
|
|
2837
|
+
return !!mapSelectors.getMapSize(state, mapId);
|
|
2838
|
+
});
|
|
2839
|
+
};
|
|
2840
|
+
var getSizedFitMembers = function getSizedFitMembers(state, memberMapIds, presetBboxes) {
|
|
2841
|
+
return compact(memberMapIds.map(function (mapId) {
|
|
2842
|
+
var mapSize = mapSelectors.getMapSize(state, mapId);
|
|
2843
|
+
return mapSize && {
|
|
2844
|
+
mapId: mapId,
|
|
2845
|
+
bbox: presetBboxes[mapId].bbox,
|
|
2846
|
+
mapSize: mapSize
|
|
2847
|
+
};
|
|
2848
|
+
}));
|
|
2849
|
+
};
|
|
2850
|
+
/** Sets the group view once and stores what the members show, so a save right after the restore keeps this view. */
|
|
2851
|
+
var applySyncGroupFit = function applySyncGroupFit(listenerApi, groupId, memberMapIds, savedBboxes) {
|
|
2852
|
+
var members = getSizedFitMembers(listenerApi.getState(), memberMapIds, savedBboxes);
|
|
2853
|
+
var fit = calculateSyncGroupFit(members);
|
|
2854
|
+
if (!fit) {
|
|
2855
|
+
return;
|
|
2856
|
+
}
|
|
2857
|
+
var chosenMember = members.find(function (member) {
|
|
2858
|
+
return member.mapId === fit.mapId;
|
|
2859
|
+
});
|
|
2860
|
+
var srs = savedBboxes[chosenMember.mapId].srs;
|
|
2861
|
+
setSyncGroupViewFit(groupId, fit, srs);
|
|
2862
|
+
listenerApi.dispatch(genericActions.setBbox({
|
|
2863
|
+
sourceId: chosenMember.mapId,
|
|
2864
|
+
bbox: getVisibleArea(fit, chosenMember.mapSize),
|
|
2865
|
+
srs: srs,
|
|
2866
|
+
origin: 'restoreSyncGroupViews'
|
|
2867
|
+
}));
|
|
2868
|
+
};
|
|
2869
|
+
/** Restores each zoom sync group's shared view once every view preset is downloaded and every member map has its size. */
|
|
2870
|
+
var restoreSyncGroupViews = /*#__PURE__*/function () {
|
|
2871
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(listenerApi) {
|
|
2872
|
+
var isDownloaded, savedBboxes, membersByGroupId, memberMapIds, areMapsSized;
|
|
2873
|
+
return _regenerator().w(function (_context2) {
|
|
2874
|
+
while (1) switch (_context2.n) {
|
|
2875
|
+
case 0:
|
|
2876
|
+
_context2.n = 1;
|
|
2877
|
+
return waitForState(listenerApi, areViewPresetsDownloaded, VIEW_PRESETS_DOWNLOAD_TIMEOUT_MS);
|
|
2878
|
+
case 1:
|
|
2879
|
+
isDownloaded = _context2.v;
|
|
2880
|
+
savedBboxes = collectSavedBboxes(listenerApi.getState());
|
|
2881
|
+
membersByGroupId = getBboxSyncGroupMembers(listenerApi.getState(), Object.keys(savedBboxes));
|
|
2882
|
+
memberMapIds = Object.values(membersByGroupId).flat();
|
|
2883
|
+
_context2.n = 2;
|
|
2884
|
+
return waitForState(listenerApi, function (state) {
|
|
2885
|
+
return haveMapSizes(state, memberMapIds);
|
|
2886
|
+
}, MAP_SIZES_TIMEOUT_MS);
|
|
2887
|
+
case 2:
|
|
2888
|
+
areMapsSized = _context2.v;
|
|
2889
|
+
Object.entries(membersByGroupId).forEach(function (_ref3) {
|
|
2890
|
+
var groupId = _ref3[0],
|
|
2891
|
+
groupMemberMapIds = _ref3[1];
|
|
2892
|
+
return applySyncGroupFit(listenerApi, groupId, groupMemberMapIds, savedBboxes);
|
|
2893
|
+
});
|
|
2894
|
+
listenerApi.dispatch(mapActions.endViewsSettling());
|
|
2895
|
+
if (!isDownloaded || !areMapsSized) {
|
|
2896
|
+
listenerApi.dispatch(snackbarActions.openSnackbar(restoreTimeoutMessage));
|
|
2897
|
+
}
|
|
2898
|
+
case 3:
|
|
2899
|
+
return _context2.a(2);
|
|
2900
|
+
}
|
|
2901
|
+
}, _callee2);
|
|
2902
|
+
}));
|
|
2903
|
+
return function restoreSyncGroupViews(_x4) {
|
|
2904
|
+
return _ref2.apply(this, arguments);
|
|
2905
|
+
};
|
|
2906
|
+
}();
|
|
2907
|
+
|
|
2908
|
+
var workspacePresetsFallback = [
|
|
2909
|
+
{
|
|
2910
|
+
id: "newSplitMap2x1Workspace",
|
|
2911
|
+
title: "Two maps",
|
|
2912
|
+
scope: "system",
|
|
2913
|
+
abstract: "",
|
|
2914
|
+
viewType: "multiWindow",
|
|
2915
|
+
views: [
|
|
2916
|
+
{
|
|
2917
|
+
mosaicNodeId: "left-map",
|
|
2918
|
+
componentType: "Map",
|
|
2919
|
+
initialProps: {
|
|
2920
|
+
mapPreset: {
|
|
2921
|
+
layers: [
|
|
2922
|
+
],
|
|
2923
|
+
proj: {
|
|
2924
|
+
bbox: {
|
|
2925
|
+
left: -2782987.27,
|
|
2926
|
+
bottom: 3503549.84,
|
|
2927
|
+
right: 5009377.09,
|
|
2928
|
+
top: 11753184.62
|
|
2929
|
+
},
|
|
2930
|
+
srs: "EPSG:3857"
|
|
2931
|
+
},
|
|
2932
|
+
showTimeSlider: false,
|
|
2933
|
+
displayMapPin: false,
|
|
2934
|
+
shouldShowZoomControls: true
|
|
2935
|
+
},
|
|
2936
|
+
syncGroupsIds: [
|
|
2937
|
+
]
|
|
2938
|
+
},
|
|
2939
|
+
title: "Map A"
|
|
2940
|
+
},
|
|
2941
|
+
{
|
|
2942
|
+
mosaicNodeId: "right-map",
|
|
2943
|
+
componentType: "Map",
|
|
2944
|
+
initialProps: {
|
|
2945
|
+
mapPreset: {
|
|
2946
|
+
layers: [
|
|
2947
|
+
],
|
|
2948
|
+
proj: {
|
|
2949
|
+
bbox: {
|
|
2950
|
+
left: -2782987.27,
|
|
2951
|
+
bottom: 3503549.84,
|
|
2952
|
+
right: 5009377.09,
|
|
2953
|
+
top: 11753184.62
|
|
2954
|
+
},
|
|
2955
|
+
srs: "EPSG:3857"
|
|
2956
|
+
},
|
|
2957
|
+
showTimeSlider: false,
|
|
2958
|
+
displayMapPin: false,
|
|
2959
|
+
shouldShowZoomControls: true
|
|
2960
|
+
},
|
|
2961
|
+
syncGroupsIds: [
|
|
2962
|
+
]
|
|
2963
|
+
},
|
|
2964
|
+
title: "Map B"
|
|
2965
|
+
}
|
|
2966
|
+
],
|
|
2967
|
+
syncGroups: [
|
|
2968
|
+
],
|
|
2969
|
+
mosaicNode: {
|
|
2970
|
+
direction: "row",
|
|
2971
|
+
first: "left-map",
|
|
2972
|
+
second: "right-map",
|
|
2973
|
+
splitPercentage: 50
|
|
2974
|
+
}
|
|
2975
|
+
},
|
|
2976
|
+
{
|
|
2977
|
+
id: "timeSeriesWorkspace",
|
|
2978
|
+
title: "Timeseries",
|
|
2979
|
+
scope: "system",
|
|
2980
|
+
abstract: "",
|
|
2981
|
+
viewType: "multiWindow",
|
|
2982
|
+
views: [
|
|
2983
|
+
{
|
|
2984
|
+
mosaicNodeId: "timeseries-map",
|
|
2985
|
+
componentType: "Map",
|
|
2986
|
+
initialProps: {
|
|
2987
|
+
mapPreset: {
|
|
2988
|
+
layers: [
|
|
2989
|
+
],
|
|
2990
|
+
proj: {
|
|
2991
|
+
bbox: {
|
|
2992
|
+
left: -2782987.27,
|
|
2993
|
+
bottom: 3503549.84,
|
|
2994
|
+
right: 5009377.09,
|
|
2995
|
+
top: 11753184.62
|
|
2996
|
+
},
|
|
2997
|
+
srs: "EPSG:3857"
|
|
2998
|
+
},
|
|
2999
|
+
showTimeSlider: true,
|
|
3000
|
+
displayMapPin: true,
|
|
3001
|
+
shouldShowZoomControls: true
|
|
3002
|
+
},
|
|
3003
|
+
syncGroupsIds: [
|
|
3004
|
+
"Area_TimeSeries",
|
|
3005
|
+
"Time_TimeSeries"
|
|
3006
|
+
]
|
|
3007
|
+
},
|
|
3008
|
+
title: "Map"
|
|
3009
|
+
},
|
|
3010
|
+
{
|
|
3011
|
+
mosaicNodeId: "timeseries-panel",
|
|
3012
|
+
componentType: "TimeSeries",
|
|
3013
|
+
initialProps: {
|
|
3014
|
+
plotPreset: {
|
|
3015
|
+
mapId: "timeseries-map",
|
|
3016
|
+
plots: [
|
|
3017
|
+
],
|
|
3018
|
+
parameters: [
|
|
3019
|
+
]
|
|
3020
|
+
},
|
|
3021
|
+
services: [
|
|
3022
|
+
]
|
|
3023
|
+
},
|
|
3024
|
+
title: "Timeseries"
|
|
3025
|
+
}
|
|
3026
|
+
],
|
|
3027
|
+
syncGroups: [
|
|
3028
|
+
{
|
|
3029
|
+
id: "Area_TimeSeries",
|
|
3030
|
+
type: "SYNCGROUPS_TYPE_SETBBOX"
|
|
3031
|
+
},
|
|
3032
|
+
{
|
|
3033
|
+
id: "Time_TimeSeries",
|
|
3034
|
+
type: "SYNCGROUPS_TYPE_SETTIME"
|
|
3035
|
+
}
|
|
3036
|
+
],
|
|
3037
|
+
linking: {
|
|
3038
|
+
"timeseries-panel": [
|
|
3039
|
+
"timeseries-map"
|
|
3040
|
+
]
|
|
3041
|
+
},
|
|
3042
|
+
mosaicNode: {
|
|
3043
|
+
direction: "row",
|
|
3044
|
+
first: "timeseries-map",
|
|
3045
|
+
second: "timeseries-panel",
|
|
3046
|
+
splitPercentage: 50
|
|
3047
|
+
}
|
|
3048
|
+
},
|
|
3049
|
+
{
|
|
3050
|
+
id: "soundingWorkspace",
|
|
3051
|
+
title: "Soundings",
|
|
3052
|
+
scope: "system",
|
|
3053
|
+
abstract: "Vertical profile observations",
|
|
3054
|
+
viewType: "multiWindow",
|
|
3055
|
+
views: [
|
|
3056
|
+
{
|
|
3057
|
+
mosaicNodeId: "sounding-map",
|
|
3058
|
+
componentType: "Map",
|
|
3059
|
+
initialProps: {
|
|
3060
|
+
mapPreset: {
|
|
3061
|
+
layers: [
|
|
3062
|
+
],
|
|
3063
|
+
proj: {
|
|
3064
|
+
bbox: {
|
|
3065
|
+
left: -2782987.27,
|
|
3066
|
+
bottom: 3503549.84,
|
|
3067
|
+
right: 5009377.09,
|
|
3068
|
+
top: 11753184.62
|
|
3069
|
+
},
|
|
3070
|
+
srs: "EPSG:3857"
|
|
3071
|
+
},
|
|
3072
|
+
showTimeSlider: true,
|
|
3073
|
+
displayMapPin: true,
|
|
3074
|
+
shouldShowZoomControls: true
|
|
3075
|
+
},
|
|
3076
|
+
syncGroupsIds: [
|
|
3077
|
+
"Area_Sounding",
|
|
3078
|
+
"Time_Sounding"
|
|
3079
|
+
]
|
|
3080
|
+
},
|
|
3081
|
+
title: "Map"
|
|
3082
|
+
},
|
|
3083
|
+
{
|
|
3084
|
+
mosaicNodeId: "sounding-panel",
|
|
3085
|
+
componentType: "Soundings",
|
|
3086
|
+
initialProps: {
|
|
3087
|
+
selectedSources: {
|
|
3088
|
+
},
|
|
3089
|
+
selectedLocations: {
|
|
3090
|
+
}
|
|
3091
|
+
},
|
|
3092
|
+
title: "Sounding"
|
|
3093
|
+
}
|
|
3094
|
+
],
|
|
3095
|
+
syncGroups: [
|
|
3096
|
+
{
|
|
3097
|
+
id: "Area_Sounding",
|
|
3098
|
+
type: "SYNCGROUPS_TYPE_SETBBOX"
|
|
3099
|
+
},
|
|
3100
|
+
{
|
|
3101
|
+
id: "Time_Sounding",
|
|
3102
|
+
type: "SYNCGROUPS_TYPE_SETTIME"
|
|
3103
|
+
}
|
|
3104
|
+
],
|
|
3105
|
+
linking: {
|
|
3106
|
+
"sounding-panel": [
|
|
3107
|
+
"sounding-map"
|
|
3108
|
+
]
|
|
3109
|
+
},
|
|
3110
|
+
mosaicNode: {
|
|
3111
|
+
direction: "row",
|
|
3112
|
+
first: "sounding-map",
|
|
3113
|
+
second: "sounding-panel",
|
|
3114
|
+
splitPercentage: 50
|
|
3115
|
+
}
|
|
3116
|
+
},
|
|
3117
|
+
{
|
|
3118
|
+
id: "capWarningsWorkspace",
|
|
3119
|
+
title: "Cap warnings",
|
|
3120
|
+
scope: "system",
|
|
3121
|
+
abstract: "",
|
|
3122
|
+
viewType: "multiWindow",
|
|
3123
|
+
views: [
|
|
3124
|
+
{
|
|
3125
|
+
mosaicNodeId: "cap-map",
|
|
3126
|
+
componentType: "CapWarningMap",
|
|
3127
|
+
initialProps: {
|
|
3128
|
+
mapPreset: {
|
|
3129
|
+
layers: [
|
|
3130
|
+
],
|
|
3131
|
+
proj: {
|
|
3132
|
+
bbox: {
|
|
3133
|
+
left: -2782987.27,
|
|
3134
|
+
bottom: 3503549.84,
|
|
3135
|
+
right: 5009377.09,
|
|
3136
|
+
top: 11753184.62
|
|
3137
|
+
},
|
|
3138
|
+
srs: "EPSG:3857"
|
|
3139
|
+
}
|
|
3140
|
+
},
|
|
3141
|
+
geoJson: {
|
|
3142
|
+
type: "FeatureCollection",
|
|
3143
|
+
features: [
|
|
3144
|
+
]
|
|
3145
|
+
}
|
|
3146
|
+
},
|
|
3147
|
+
title: "CAP warnings map"
|
|
3148
|
+
},
|
|
3149
|
+
{
|
|
3150
|
+
mosaicNodeId: "cap-list",
|
|
3151
|
+
componentType: "CapWarningList",
|
|
3152
|
+
initialProps: {
|
|
3153
|
+
mapPreset: {
|
|
3154
|
+
layers: [
|
|
3155
|
+
],
|
|
3156
|
+
proj: {
|
|
3157
|
+
bbox: {
|
|
3158
|
+
left: -2782987.27,
|
|
3159
|
+
bottom: 3503549.84,
|
|
3160
|
+
right: 5009377.09,
|
|
3161
|
+
top: 11753184.62
|
|
3162
|
+
},
|
|
3163
|
+
srs: "EPSG:3857"
|
|
3164
|
+
}
|
|
3165
|
+
},
|
|
3166
|
+
geoJson: {
|
|
3167
|
+
type: "FeatureCollection",
|
|
3168
|
+
features: [
|
|
3169
|
+
]
|
|
3170
|
+
}
|
|
3171
|
+
},
|
|
3172
|
+
title: "CAP warnings list"
|
|
3173
|
+
}
|
|
3174
|
+
],
|
|
3175
|
+
syncGroups: [
|
|
3176
|
+
],
|
|
3177
|
+
mosaicNode: {
|
|
3178
|
+
direction: "row",
|
|
3179
|
+
first: "cap-map",
|
|
3180
|
+
second: "cap-list",
|
|
3181
|
+
splitPercentage: 50
|
|
3182
|
+
}
|
|
3183
|
+
}
|
|
3184
|
+
];
|
|
3185
|
+
|
|
3186
|
+
/* *
|
|
3187
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3188
|
+
* you may not use this file except in compliance with the License.
|
|
3189
|
+
* You may obtain a copy of the License at
|
|
3190
|
+
*
|
|
3191
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3192
|
+
*
|
|
3193
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3194
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3195
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3196
|
+
* See the License for the specific language governing permissions and
|
|
3197
|
+
* limitations under the License.
|
|
3198
|
+
*
|
|
3199
|
+
* Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3200
|
+
* Copyright 2026 - Finnish Meteorological Institute (FMI)
|
|
3201
|
+
* Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
|
|
3202
|
+
* */
|
|
3203
|
+
/*
|
|
3204
|
+
configureLibraryDefaults([LIB_KEY], {
|
|
3205
|
+
staleTime: 5 * 60 * 1000,
|
|
3206
|
+
});
|
|
3207
|
+
*/
|
|
3208
|
+
var LIB_KEY = 'workspace-lib';
|
|
3209
|
+
var getPresetBaseUrl = function getPresetBaseUrl() {
|
|
3210
|
+
var config = sessionStorageProvider.getConfig();
|
|
3211
|
+
return (config == null ? void 0 : config.GW_PRESET_BACKEND_URL) || '';
|
|
3212
|
+
};
|
|
3213
|
+
var getIdFromUrl = function getIdFromUrl(url) {
|
|
3214
|
+
return url && /[^/]+$/.exec(url)[0];
|
|
3215
|
+
};
|
|
3216
|
+
var ERROR_NOT_FOUND$1 = 'Request failed with status code 400';
|
|
3217
|
+
var hasNoPresetBackend = function hasNoPresetBackend() {
|
|
3218
|
+
return !getPresetBaseUrl() && process.env.NODE_ENV !== 'test';
|
|
3219
|
+
};
|
|
3220
|
+
var extractWorkspacePresetFromJSON = function extractWorkspacePresetFromJSON(workspacePresetId) {
|
|
3221
|
+
var preset = workspacePresetsFallback.find(function (element) {
|
|
3222
|
+
return element.id === workspacePresetId;
|
|
3223
|
+
});
|
|
3224
|
+
if (!preset) {
|
|
3225
|
+
throw new Error(ERROR_NOT_FOUND$1);
|
|
3226
|
+
}
|
|
3227
|
+
return preset;
|
|
3228
|
+
};
|
|
3229
|
+
var filterWorkspacePresetList = function filterWorkspacePresetList(params) {
|
|
3230
|
+
var list = workspacePresetsFallback.map(function (preset) {
|
|
3231
|
+
var _preset$abstract;
|
|
3232
|
+
return {
|
|
3233
|
+
id: preset.id,
|
|
3234
|
+
title: preset.title,
|
|
3235
|
+
scope: preset.scope,
|
|
3236
|
+
viewType: preset.viewType,
|
|
3237
|
+
"abstract": (_preset$abstract = preset["abstract"]) != null ? _preset$abstract : '',
|
|
3238
|
+
description: preset.description,
|
|
3239
|
+
username: preset.username
|
|
3240
|
+
};
|
|
3241
|
+
});
|
|
3242
|
+
if (!params) {
|
|
3243
|
+
return list;
|
|
3244
|
+
}
|
|
3245
|
+
return list.filter(function (preset) {
|
|
3246
|
+
if (params.scope && preset.scope !== params.scope) {
|
|
3247
|
+
return false;
|
|
3248
|
+
}
|
|
3249
|
+
if (params.search) {
|
|
3250
|
+
var query = params.search.toLowerCase();
|
|
3251
|
+
return preset.title.toLowerCase().includes(query) || preset["abstract"].toLowerCase().includes(query);
|
|
3252
|
+
}
|
|
3253
|
+
return true;
|
|
3254
|
+
});
|
|
3255
|
+
};
|
|
3256
|
+
var favouritePresetKey = function favouritePresetKey(type, preset) {
|
|
3257
|
+
return type + ":" + preset.id;
|
|
3258
|
+
};
|
|
3259
|
+
var updateCachedFavourite = function updateCachedFavourite(client, queryKey, key, isFavourite) {
|
|
3260
|
+
client.setQueryData(queryKey, function (preferences) {
|
|
3261
|
+
var _preferences$favourit;
|
|
3262
|
+
var favourites = (_preferences$favourit = preferences == null ? void 0 : preferences.favouritePresets) != null ? _preferences$favourit : [];
|
|
3263
|
+
return Object.assign({}, preferences, {
|
|
3264
|
+
favouritePresets: isFavourite ? Array.from(new Set([].concat(favourites, [key]))) : favourites.filter(function (value) {
|
|
3265
|
+
return value !== key;
|
|
3266
|
+
})
|
|
3267
|
+
});
|
|
3268
|
+
});
|
|
3269
|
+
};
|
|
3270
|
+
|
|
3271
|
+
var getViewPreset = /*#__PURE__*/function () {
|
|
3272
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(viewpresetId, auth) {
|
|
3273
|
+
return _regenerator().w(function (_context) {
|
|
3274
|
+
while (1) switch (_context.n) {
|
|
3275
|
+
case 0:
|
|
3276
|
+
if (viewpresetId) {
|
|
3277
|
+
_context.n = 1;
|
|
3278
|
+
break;
|
|
3279
|
+
}
|
|
3280
|
+
return _context.a(2, null);
|
|
3281
|
+
case 1:
|
|
3282
|
+
return _context.a(2, fetch(getPresetBaseUrl() + "/viewpreset/" + viewpresetId, {
|
|
3283
|
+
headers: getHeaders(auth)
|
|
3284
|
+
}).then(handleResponse));
|
|
3285
|
+
}
|
|
3286
|
+
}, _callee);
|
|
3287
|
+
}));
|
|
3288
|
+
return function getViewPreset(_x, _x2) {
|
|
3289
|
+
return _ref.apply(this, arguments);
|
|
3290
|
+
};
|
|
3291
|
+
}();
|
|
3292
|
+
var getViewPresets$1 = /*#__PURE__*/function () {
|
|
3293
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(auth) {
|
|
3294
|
+
var url;
|
|
3295
|
+
return _regenerator().w(function (_context2) {
|
|
3296
|
+
while (1) switch (_context2.n) {
|
|
3297
|
+
case 0:
|
|
3298
|
+
url = getPresetBaseUrl() + "/viewpreset";
|
|
3299
|
+
return _context2.a(2, fetch(url, {
|
|
3300
|
+
headers: getHeaders(auth)
|
|
3301
|
+
}).then(handleResponse));
|
|
3302
|
+
}
|
|
3303
|
+
}, _callee2);
|
|
3304
|
+
}));
|
|
3305
|
+
return function getViewPresets(_x3) {
|
|
3306
|
+
return _ref2.apply(this, arguments);
|
|
3307
|
+
};
|
|
3308
|
+
}();
|
|
3309
|
+
var updateViewPreset = /*#__PURE__*/function () {
|
|
3310
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(viewpresetId, data, auth) {
|
|
3311
|
+
return _regenerator().w(function (_context3) {
|
|
3312
|
+
while (1) switch (_context3.n) {
|
|
3313
|
+
case 0:
|
|
3314
|
+
return _context3.a(2, fetch(getPresetBaseUrl() + "/viewpreset/" + viewpresetId, {
|
|
3315
|
+
headers: getHeaders(auth),
|
|
3316
|
+
method: 'PUT',
|
|
3317
|
+
body: JSON.stringify(data)
|
|
3318
|
+
}).then(handleResponse));
|
|
3319
|
+
}
|
|
3320
|
+
}, _callee3);
|
|
3321
|
+
}));
|
|
3322
|
+
return function updateViewPreset(_x4, _x5, _x6) {
|
|
3323
|
+
return _ref3.apply(this, arguments);
|
|
3324
|
+
};
|
|
3325
|
+
}();
|
|
3326
|
+
var saveViewPreset = /*#__PURE__*/function () {
|
|
3327
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(viewPresetId, data, auth) {
|
|
3328
|
+
var payload;
|
|
3329
|
+
return _regenerator().w(function (_context4) {
|
|
3330
|
+
while (1) switch (_context4.n) {
|
|
3331
|
+
case 0:
|
|
3332
|
+
payload = data.initialProps === null ? Object.assign({}, data, {
|
|
3333
|
+
initialProps: {}
|
|
3334
|
+
}) : data;
|
|
3335
|
+
return _context4.a(2, fetch(getPresetBaseUrl() + "/viewpreset/" + viewPresetId + "/", {
|
|
3336
|
+
headers: getHeaders(auth),
|
|
3337
|
+
method: 'PUT',
|
|
3338
|
+
body: JSON.stringify(payload)
|
|
3339
|
+
}).then(handleResponse));
|
|
3340
|
+
}
|
|
3341
|
+
}, _callee4);
|
|
3342
|
+
}));
|
|
3343
|
+
return function saveViewPreset(_x7, _x8, _x9) {
|
|
3344
|
+
return _ref4.apply(this, arguments);
|
|
3345
|
+
};
|
|
3346
|
+
}();
|
|
3347
|
+
var saveViewPresetAs = /*#__PURE__*/function () {
|
|
3348
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(data, auth) {
|
|
3349
|
+
var _response$headers$get;
|
|
3350
|
+
var payload, response, headerLocation;
|
|
3351
|
+
return _regenerator().w(function (_context5) {
|
|
3352
|
+
while (1) switch (_context5.n) {
|
|
3353
|
+
case 0:
|
|
3354
|
+
payload = data.initialProps === null ? Object.assign({}, data, {
|
|
3355
|
+
initialProps: {}
|
|
3356
|
+
}) : data;
|
|
3357
|
+
_context5.n = 1;
|
|
3358
|
+
return fetch(getPresetBaseUrl() + "/viewpreset/", {
|
|
3359
|
+
headers: getHeaders(auth),
|
|
3360
|
+
method: 'POST',
|
|
3361
|
+
body: JSON.stringify(payload)
|
|
3362
|
+
});
|
|
3363
|
+
case 1:
|
|
3364
|
+
response = _context5.v;
|
|
3365
|
+
_context5.n = 2;
|
|
3366
|
+
return handleResponse(response);
|
|
3367
|
+
case 2:
|
|
3368
|
+
headerLocation = (_response$headers$get = response.headers.get('Location')) != null ? _response$headers$get : response.headers.get('location');
|
|
3369
|
+
return _context5.a(2, getIdFromUrl(headerLocation));
|
|
3370
|
+
}
|
|
3371
|
+
}, _callee5);
|
|
3372
|
+
}));
|
|
3373
|
+
return function saveViewPresetAs(_x0, _x1) {
|
|
3374
|
+
return _ref5.apply(this, arguments);
|
|
3375
|
+
};
|
|
3376
|
+
}();
|
|
3377
|
+
var deleteViewPreset = /*#__PURE__*/function () {
|
|
3378
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(viewPresetId, auth) {
|
|
3379
|
+
return _regenerator().w(function (_context6) {
|
|
3380
|
+
while (1) switch (_context6.n) {
|
|
3381
|
+
case 0:
|
|
3382
|
+
return _context6.a(2, fetch(getPresetBaseUrl() + "/viewpreset/" + viewPresetId, {
|
|
3383
|
+
method: 'DELETE',
|
|
3384
|
+
headers: getHeaders(auth)
|
|
3385
|
+
}).then(handleResponse));
|
|
3386
|
+
}
|
|
3387
|
+
}, _callee6);
|
|
3388
|
+
}));
|
|
3389
|
+
return function deleteViewPreset(_x10, _x11) {
|
|
3390
|
+
return _ref6.apply(this, arguments);
|
|
3391
|
+
};
|
|
3392
|
+
}();
|
|
3393
|
+
|
|
3394
|
+
var API_KEY$1 = 'viewpreset-api';
|
|
3395
|
+
var generateViewPresetQueryKeys = function generateViewPresetQueryKeys() {
|
|
3396
|
+
for (var _len = arguments.length, queryKeys = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
3397
|
+
queryKeys[_key] = arguments[_key];
|
|
3398
|
+
}
|
|
3399
|
+
return [LIB_KEY, API_KEY$1].concat(queryKeys);
|
|
3400
|
+
};
|
|
3401
|
+
var viewpresetQueryOptions = {
|
|
3402
|
+
keys: {
|
|
3403
|
+
all: function all() {
|
|
3404
|
+
return generateViewPresetQueryKeys();
|
|
3405
|
+
},
|
|
3406
|
+
views: function views() {
|
|
3407
|
+
return [].concat(viewpresetQueryOptions.keys.all(), ['view']);
|
|
3408
|
+
},
|
|
3409
|
+
lists: function lists() {
|
|
3410
|
+
return [].concat(viewpresetQueryOptions.keys.all(), ['list']);
|
|
3411
|
+
}
|
|
3412
|
+
},
|
|
3413
|
+
getViewPreset: function getViewPreset$1(id, credentials) {
|
|
3414
|
+
return queryOptions({
|
|
3415
|
+
queryKey: [].concat(viewpresetQueryOptions.keys.views(), [id]),
|
|
3416
|
+
queryFn: function () {
|
|
3417
|
+
var _queryFn = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
3418
|
+
return _regenerator().w(function (_context) {
|
|
3419
|
+
while (1) switch (_context.n) {
|
|
3420
|
+
case 0:
|
|
3421
|
+
return _context.a(2, getViewPreset(id, credentials));
|
|
3422
|
+
}
|
|
3423
|
+
}, _callee);
|
|
3424
|
+
}));
|
|
3425
|
+
function queryFn() {
|
|
3426
|
+
return _queryFn.apply(this, arguments);
|
|
3427
|
+
}
|
|
3428
|
+
return queryFn;
|
|
3429
|
+
}()
|
|
3430
|
+
});
|
|
3431
|
+
},
|
|
3432
|
+
getViewPresets: function getViewPresets(credentials) {
|
|
3433
|
+
return queryOptions({
|
|
3434
|
+
queryKey: viewpresetQueryOptions.keys.lists(),
|
|
3435
|
+
queryFn: function () {
|
|
3436
|
+
var _queryFn2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
3437
|
+
return _regenerator().w(function (_context2) {
|
|
3438
|
+
while (1) switch (_context2.n) {
|
|
3439
|
+
case 0:
|
|
3440
|
+
return _context2.a(2, getViewPresets$1(credentials));
|
|
3441
|
+
}
|
|
3442
|
+
}, _callee2);
|
|
3443
|
+
}));
|
|
3444
|
+
function queryFn() {
|
|
3445
|
+
return _queryFn2.apply(this, arguments);
|
|
3446
|
+
}
|
|
3447
|
+
return queryFn;
|
|
3448
|
+
}(),
|
|
3449
|
+
staleTime: 2 * 60 * 1000,
|
|
3450
|
+
refetchOnMount: true
|
|
3451
|
+
});
|
|
3452
|
+
},
|
|
3453
|
+
saveViewPreset: function saveViewPreset$1(id, data, credentials) {
|
|
3454
|
+
return queryOptions({
|
|
3455
|
+
queryKey: [].concat(viewpresetQueryOptions.keys.views(), [id, 'save']),
|
|
3456
|
+
staleTime: 0,
|
|
3457
|
+
queryFn: function () {
|
|
3458
|
+
var _queryFn3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
|
|
3459
|
+
return _regenerator().w(function (_context3) {
|
|
3460
|
+
while (1) switch (_context3.n) {
|
|
3461
|
+
case 0:
|
|
3462
|
+
return _context3.a(2, saveViewPreset(id, data, credentials));
|
|
3463
|
+
}
|
|
3464
|
+
}, _callee3);
|
|
3465
|
+
}));
|
|
3466
|
+
function queryFn() {
|
|
3467
|
+
return _queryFn3.apply(this, arguments);
|
|
3468
|
+
}
|
|
3469
|
+
return queryFn;
|
|
3470
|
+
}()
|
|
3471
|
+
});
|
|
3472
|
+
},
|
|
3473
|
+
saveViewPresetAs: function saveViewPresetAs$1(data, credentials) {
|
|
3474
|
+
return queryOptions({
|
|
3475
|
+
queryKey: [].concat(viewpresetQueryOptions.keys.views(), ['save-as']),
|
|
3476
|
+
staleTime: 0,
|
|
3477
|
+
queryFn: function () {
|
|
3478
|
+
var _queryFn4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
|
|
3479
|
+
return _regenerator().w(function (_context4) {
|
|
3480
|
+
while (1) switch (_context4.n) {
|
|
3481
|
+
case 0:
|
|
3482
|
+
return _context4.a(2, saveViewPresetAs(data, credentials));
|
|
3483
|
+
}
|
|
3484
|
+
}, _callee4);
|
|
3485
|
+
}));
|
|
3486
|
+
function queryFn() {
|
|
3487
|
+
return _queryFn4.apply(this, arguments);
|
|
3488
|
+
}
|
|
3489
|
+
return queryFn;
|
|
3490
|
+
}()
|
|
3491
|
+
});
|
|
3492
|
+
}
|
|
3493
|
+
};
|
|
3494
|
+
|
|
3495
|
+
/* *
|
|
3496
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3497
|
+
* you may not use this file except in compliance with the License.
|
|
3498
|
+
* You may obtain a copy of the License at
|
|
3499
|
+
*
|
|
3500
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3501
|
+
*
|
|
3502
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3503
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3504
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3505
|
+
* See the License for the specific language governing permissions and
|
|
3506
|
+
* limitations under the License.
|
|
3507
|
+
*
|
|
3508
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3509
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
3510
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
3511
|
+
* */
|
|
3512
|
+
var routes = {
|
|
3513
|
+
root: '/',
|
|
3514
|
+
workspace: '/workspace',
|
|
3515
|
+
workspaceDetail: '/workspace/:workspaceId'
|
|
3516
|
+
};
|
|
3517
|
+
var getWorkspaceRouteUrl = function getWorkspaceRouteUrl(workspaceId) {
|
|
3518
|
+
return workspaceId ? routes.workspaceDetail.replace(':workspaceId', workspaceId) : routes.workspace;
|
|
3519
|
+
};
|
|
3303
3520
|
|
|
3304
3521
|
/* *
|
|
3305
3522
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -4307,6 +4524,7 @@ workspaceListener.startListening({
|
|
|
4307
4524
|
case 1:
|
|
4308
4525
|
listenerApi.dispatch(timeSeriesActions.resetTimeSeriesPanels());
|
|
4309
4526
|
listenerApi.dispatch(syncGroupsActions.syncGroupClear());
|
|
4527
|
+
listenerApi.dispatch(mapActions.startViewsSettling());
|
|
4310
4528
|
listenerApi.dispatch(workspaceActions.setPreset(payload));
|
|
4311
4529
|
allSyncGroups = getSyncGroups(payload.workspacePreset.syncGroups);
|
|
4312
4530
|
allSyncGroups.map(function (syncGroup) {
|
|
@@ -4369,6 +4587,8 @@ workspaceListener.startListening({
|
|
|
4369
4587
|
url: getWorkspaceRouteUrl()
|
|
4370
4588
|
}));
|
|
4371
4589
|
}
|
|
4590
|
+
_context4.n = 3;
|
|
4591
|
+
return restoreSyncGroupViews(listenerApi);
|
|
4372
4592
|
case 3:
|
|
4373
4593
|
return _context4.a(2);
|
|
4374
4594
|
}
|
|
@@ -4843,7 +5063,7 @@ workspaceListener.startListening({
|
|
|
4843
5063
|
actionCreator: workspaceActions.updateWorkspaceViews,
|
|
4844
5064
|
effect: function () {
|
|
4845
5065
|
var _effect9 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee13(_, listenerApi) {
|
|
4846
|
-
var viewCountBefore, viewCountAfter, aViewWasClosed
|
|
5066
|
+
var viewCountBefore, viewCountAfter, aViewWasClosed;
|
|
4847
5067
|
return _regenerator().w(function (_context13) {
|
|
4848
5068
|
while (1) switch (_context13.n) {
|
|
4849
5069
|
case 0:
|
|
@@ -4866,24 +5086,7 @@ workspaceListener.startListening({
|
|
|
4866
5086
|
if (aViewWasClosed) {
|
|
4867
5087
|
listenerApi.dispatch(soundingsActions.notifyViewClosed());
|
|
4868
5088
|
}
|
|
4869
|
-
// Adjust the bbox of the original view after the new map is added. This is a temporal solution until the OpenLayers ticket
|
|
4870
|
-
// https://github.com/openlayers/openlayers/issues/16572 is solved.
|
|
4871
|
-
_context13.n = 2;
|
|
4872
|
-
return waitForFrame();
|
|
4873
5089
|
case 2:
|
|
4874
|
-
viewIds = getViewIds(listenerApi.getState());
|
|
4875
|
-
viewIds.forEach(function (viewId) {
|
|
4876
|
-
var bbox = mapSelectors.getBbox(listenerApi.getState(), viewId);
|
|
4877
|
-
var srs = mapSelectors.getSrs(listenerApi.getState(), viewId);
|
|
4878
|
-
if ((bbox == null ? void 0 : bbox.left) !== undefined && srs) {
|
|
4879
|
-
listenerApi.dispatch(mapActions.setBbox({
|
|
4880
|
-
mapId: viewId,
|
|
4881
|
-
bbox: bbox,
|
|
4882
|
-
srs: srs
|
|
4883
|
-
}));
|
|
4884
|
-
}
|
|
4885
|
-
});
|
|
4886
|
-
case 3:
|
|
4887
5090
|
return _context13.a(2);
|
|
4888
5091
|
}
|
|
4889
5092
|
}, _callee13);
|
|
@@ -8006,13 +8209,15 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref2) {
|
|
|
8006
8209
|
minHeight: MIN_HEIGHT_SCROLLABLE_LIST,
|
|
8007
8210
|
overflow: 'hidden'
|
|
8008
8211
|
},
|
|
8009
|
-
children: [
|
|
8212
|
+
children: [jsx(Box, {
|
|
8010
8213
|
sx: {
|
|
8011
8214
|
marginBottom: '4px',
|
|
8012
8215
|
fontSize: '12px',
|
|
8013
8216
|
ml: 0.5
|
|
8014
8217
|
},
|
|
8015
|
-
children:
|
|
8218
|
+
children: t('workspace-results', {
|
|
8219
|
+
count: workspacePresets.length
|
|
8220
|
+
})
|
|
8016
8221
|
}), jsx(Box, {
|
|
8017
8222
|
sx: {
|
|
8018
8223
|
paddingTop: LIST_PADDING_TOP + "px",
|
|
@@ -9784,6 +9989,7 @@ var _WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(
|
|
|
9784
9989
|
syncGroupsIds: relatedSyncGroupIds
|
|
9785
9990
|
};
|
|
9786
9991
|
case 'Plugin':
|
|
9992
|
+
case 'CrossSection':
|
|
9787
9993
|
return getViewPresetToSendToBackend(store.getState(), panelId).initialProps;
|
|
9788
9994
|
default:
|
|
9789
9995
|
return undefined;
|
|
@@ -12139,6 +12345,17 @@ var ViewPresetsFormDialogConnect = function ViewPresetsFormDialogConnect(_ref) {
|
|
|
12139
12345
|
});
|
|
12140
12346
|
};
|
|
12141
12347
|
|
|
12348
|
+
var _templateObject, _templateObject2, _offMainThreadBarAnim;
|
|
12349
|
+
var bar1SlideKeyframes = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n 0% { transform: translateX(-35%) scaleX(0.35); }\n 60%, 100% { transform: translateX(100%) scaleX(0.9); }\n"])));
|
|
12350
|
+
var bar2SlideKeyframes = keyframes(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n 0% { transform: translateX(-200%) scaleX(2); }\n 60%, 100% { transform: translateX(107%) scaleX(0.01); }\n"])));
|
|
12351
|
+
/** MUI's indeterminate motion as transforms, which keep animating while the main thread mounts views. */
|
|
12352
|
+
var offMainThreadBarAnimation = (_offMainThreadBarAnim = {}, _offMainThreadBarAnim["& ." + linearProgressClasses.bar1 + ", & ." + linearProgressClasses.bar2] = {
|
|
12353
|
+
width: '100%'
|
|
12354
|
+
}, _offMainThreadBarAnim["& ." + linearProgressClasses.bar1] = {
|
|
12355
|
+
animation: bar1SlideKeyframes + " 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite"
|
|
12356
|
+
}, _offMainThreadBarAnim["& ." + linearProgressClasses.bar2] = {
|
|
12357
|
+
animation: bar2SlideKeyframes + " 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite"
|
|
12358
|
+
}, _offMainThreadBarAnim);
|
|
12142
12359
|
var WorkspaceDetail = function WorkspaceDetail(_ref) {
|
|
12143
12360
|
var initialWorkspaceId = _ref.initialWorkspaceId,
|
|
12144
12361
|
workspaceId = _ref.workspaceId,
|
|
@@ -12158,6 +12375,7 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
|
|
|
12158
12375
|
return getWorkspaceError(store);
|
|
12159
12376
|
});
|
|
12160
12377
|
var isLoading = useSelector(isWorkspaceLoading);
|
|
12378
|
+
var areViewsSettling = useSelector(mapSelectors.areViewsSettling);
|
|
12161
12379
|
var workspaceData = useSelector(getWorkspaceData);
|
|
12162
12380
|
var workspaceState = useSelector(getWorkspaceState);
|
|
12163
12381
|
var fetchWorkspace = React.useCallback(function (newWorkspaceId) {
|
|
@@ -12207,15 +12425,15 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
|
|
|
12207
12425
|
width: '100%',
|
|
12208
12426
|
height: '100%'
|
|
12209
12427
|
},
|
|
12210
|
-
children: [!!isLoading && jsx(LinearProgress, {
|
|
12428
|
+
children: [!!(isLoading || areViewsSettling) && jsx(LinearProgress, {
|
|
12211
12429
|
color: "secondary",
|
|
12212
12430
|
"data-testid": "loading-bar",
|
|
12213
|
-
sx: {
|
|
12431
|
+
sx: Object.assign({
|
|
12214
12432
|
position: 'absolute',
|
|
12215
12433
|
width: '100%',
|
|
12216
12434
|
top: 0,
|
|
12217
12435
|
zIndex: 100
|
|
12218
|
-
}
|
|
12436
|
+
}, offMainThreadBarAnimation)
|
|
12219
12437
|
}), !!error && error.type !== WorkspaceErrorType.SAVE && jsx(AlertBanner, Object.assign({
|
|
12220
12438
|
info: error.message,
|
|
12221
12439
|
shouldClose: true,
|
|
@@ -12266,6 +12484,351 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
|
|
|
12266
12484
|
});
|
|
12267
12485
|
};
|
|
12268
12486
|
|
|
12487
|
+
/** Error whose message is already translated and can be shown to the user as is. */
|
|
12488
|
+
var TranslatedError = /*#__PURE__*/function (_Error) {
|
|
12489
|
+
function TranslatedError() {
|
|
12490
|
+
return _Error.apply(this, arguments) || this;
|
|
12491
|
+
}
|
|
12492
|
+
_inheritsLoose(TranslatedError, _Error);
|
|
12493
|
+
return TranslatedError;
|
|
12494
|
+
}(/*#__PURE__*/_wrapNativeSuper(Error));
|
|
12495
|
+
/**
|
|
12496
|
+
* Coordinates the Data Explorer with the workspace and Timeseries panels.
|
|
12497
|
+
* Data Explorer itself does not depend on workspace or Timeseries.
|
|
12498
|
+
*/
|
|
12499
|
+
var DataExplorerTimeseriesConnect = function DataExplorerTimeseriesConnect(_ref) {
|
|
12500
|
+
var productConfigKey = _ref.productConfigKey;
|
|
12501
|
+
var store = useStore();
|
|
12502
|
+
var _useTranslation = useTranslation([DATA_EXPLORER_NAMESPACE, SHARED_NAMESPACE]),
|
|
12503
|
+
t = _useTranslation.t;
|
|
12504
|
+
var _React$useState = React.useState(),
|
|
12505
|
+
choice = _React$useState[0],
|
|
12506
|
+
setChoice = _React$useState[1];
|
|
12507
|
+
var resolveChoice = React.useRef(undefined);
|
|
12508
|
+
var mounted = React.useRef(true);
|
|
12509
|
+
React.useEffect(function () {
|
|
12510
|
+
mounted.current = true;
|
|
12511
|
+
return function () {
|
|
12512
|
+
mounted.current = false;
|
|
12513
|
+
resolveChoice.current == null || resolveChoice.current(undefined);
|
|
12514
|
+
};
|
|
12515
|
+
}, []);
|
|
12516
|
+
var choose = React.useCallback(/*#__PURE__*/function () {
|
|
12517
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(nextChoice) {
|
|
12518
|
+
return _regenerator().w(function (_context) {
|
|
12519
|
+
while (1) switch (_context.n) {
|
|
12520
|
+
case 0:
|
|
12521
|
+
setChoice(nextChoice);
|
|
12522
|
+
return _context.a(2, new Promise(function (resolve) {
|
|
12523
|
+
resolveChoice.current = resolve;
|
|
12524
|
+
}));
|
|
12525
|
+
}
|
|
12526
|
+
}, _callee);
|
|
12527
|
+
}));
|
|
12528
|
+
return function (_x) {
|
|
12529
|
+
return _ref2.apply(this, arguments);
|
|
12530
|
+
};
|
|
12531
|
+
}(), []);
|
|
12532
|
+
var finishChoice = function finishChoice(id) {
|
|
12533
|
+
setChoice(undefined);
|
|
12534
|
+
resolveChoice.current == null || resolveChoice.current(id);
|
|
12535
|
+
resolveChoice.current = undefined;
|
|
12536
|
+
};
|
|
12537
|
+
var addTimeseriesToWorkspace = React.useCallback(/*#__PURE__*/function () {
|
|
12538
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref3) {
|
|
12539
|
+
var _store$getState$works, _state$workspace, _state$workspace2, _state$workspace3, _state$workspace4, _getViewById3, _timeSeriesSelectors$2;
|
|
12540
|
+
var title, collectionLinks, targetMapId, workspaceId, collectionUrl, target, state, panels, linkedPanels, candidates, panelId, existingService, service, plotId, isNewPanel, plotPreset, mosaicNode, _t;
|
|
12541
|
+
return _regenerator().w(function (_context2) {
|
|
12542
|
+
while (1) switch (_context2.n) {
|
|
12543
|
+
case 0:
|
|
12544
|
+
title = _ref3.title, collectionLinks = _ref3.collectionLinks, targetMapId = _ref3.targetMapId;
|
|
12545
|
+
workspaceId = (_store$getState$works = store.getState().workspace) == null ? void 0 : _store$getState$works.id;
|
|
12546
|
+
if (!(collectionLinks.length === 1)) {
|
|
12547
|
+
_context2.n = 1;
|
|
12548
|
+
break;
|
|
12549
|
+
}
|
|
12550
|
+
_t = collectionLinks[0].href;
|
|
12551
|
+
_context2.n = 3;
|
|
12552
|
+
break;
|
|
12553
|
+
case 1:
|
|
12554
|
+
_context2.n = 2;
|
|
12555
|
+
return choose({
|
|
12556
|
+
title: t('dataexplorer-select-data-link'),
|
|
12557
|
+
options: collectionLinks.map(function (link) {
|
|
12558
|
+
return {
|
|
12559
|
+
id: link.href,
|
|
12560
|
+
title: link.title || link.href
|
|
12561
|
+
};
|
|
12562
|
+
})
|
|
12563
|
+
});
|
|
12564
|
+
case 2:
|
|
12565
|
+
_t = _context2.v;
|
|
12566
|
+
case 3:
|
|
12567
|
+
collectionUrl = _t;
|
|
12568
|
+
if (!(!collectionUrl || !mounted.current)) {
|
|
12569
|
+
_context2.n = 4;
|
|
12570
|
+
break;
|
|
12571
|
+
}
|
|
12572
|
+
return _context2.a(2);
|
|
12573
|
+
case 4:
|
|
12574
|
+
_context2.n = 5;
|
|
12575
|
+
return resolveEdrCollectionTarget(collectionUrl);
|
|
12576
|
+
case 5:
|
|
12577
|
+
target = _context2.v;
|
|
12578
|
+
if (mounted.current) {
|
|
12579
|
+
_context2.n = 6;
|
|
12580
|
+
break;
|
|
12581
|
+
}
|
|
12582
|
+
return _context2.a(2);
|
|
12583
|
+
case 6:
|
|
12584
|
+
state = store.getState();
|
|
12585
|
+
if (!(((_state$workspace = state.workspace) == null ? void 0 : _state$workspace.id) !== workspaceId || (_state$workspace2 = state.workspace) != null && _state$workspace2.isLoading)) {
|
|
12586
|
+
_context2.n = 7;
|
|
12587
|
+
break;
|
|
12588
|
+
}
|
|
12589
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-workspace-changed'));
|
|
12590
|
+
case 7:
|
|
12591
|
+
panels = getViewIds(state).filter(function (id) {
|
|
12592
|
+
var _getViewById;
|
|
12593
|
+
return ((_getViewById = getViewById(state, id)) == null ? void 0 : _getViewById.componentType) === 'TimeSeries';
|
|
12594
|
+
});
|
|
12595
|
+
linkedPanels = targetMapId ? panels.filter(function (id) {
|
|
12596
|
+
var linkedMaps = genericSelectors.getLinkedTargetIds(state, id);
|
|
12597
|
+
return linkedMaps.length > 0 ? linkedMaps.includes(targetMapId) : timeSeriesSelectors.getMapId(state, id) === targetMapId;
|
|
12598
|
+
}) : [];
|
|
12599
|
+
candidates = linkedPanels.length > 0 ? linkedPanels : panels;
|
|
12600
|
+
panelId = candidates.length === 1 ? candidates[0] : undefined;
|
|
12601
|
+
if (!(candidates.length > 1)) {
|
|
12602
|
+
_context2.n = 9;
|
|
12603
|
+
break;
|
|
12604
|
+
}
|
|
12605
|
+
_context2.n = 8;
|
|
12606
|
+
return choose({
|
|
12607
|
+
title: t('dataexplorer-select-timeseries-panel'),
|
|
12608
|
+
options: candidates.map(function (id, index) {
|
|
12609
|
+
var _getViewById2, _timeSeriesSelectors$;
|
|
12610
|
+
return {
|
|
12611
|
+
id: id,
|
|
12612
|
+
title: ((_getViewById2 = getViewById(state, id)) == null ? void 0 : _getViewById2.title) || t('dataexplorer-timeseries-panel', {
|
|
12613
|
+
number: index + 1
|
|
12614
|
+
}),
|
|
12615
|
+
description: (_timeSeriesSelectors$ = timeSeriesSelectors.getPlotState(state, id)) == null ? void 0 : _timeSeriesSelectors$.plots.map(function (plot) {
|
|
12616
|
+
return plot.title;
|
|
12617
|
+
}).join(', ')
|
|
12618
|
+
};
|
|
12619
|
+
})
|
|
12620
|
+
});
|
|
12621
|
+
case 8:
|
|
12622
|
+
panelId = _context2.v;
|
|
12623
|
+
if (panelId) {
|
|
12624
|
+
_context2.n = 9;
|
|
12625
|
+
break;
|
|
12626
|
+
}
|
|
12627
|
+
return _context2.a(2);
|
|
12628
|
+
case 9:
|
|
12629
|
+
state = store.getState();
|
|
12630
|
+
if (mounted.current) {
|
|
12631
|
+
_context2.n = 10;
|
|
12632
|
+
break;
|
|
12633
|
+
}
|
|
12634
|
+
return _context2.a(2);
|
|
12635
|
+
case 10:
|
|
12636
|
+
if (!(((_state$workspace3 = state.workspace) == null ? void 0 : _state$workspace3.id) !== workspaceId || (_state$workspace4 = state.workspace) != null && _state$workspace4.isLoading || panelId && ((_getViewById3 = getViewById(state, panelId)) == null ? void 0 : _getViewById3.componentType) !== 'TimeSeries')) {
|
|
12637
|
+
_context2.n = 11;
|
|
12638
|
+
break;
|
|
12639
|
+
}
|
|
12640
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-workspace-changed'));
|
|
12641
|
+
case 11:
|
|
12642
|
+
// Saved services may not have loaded yet when creating the first panel.
|
|
12643
|
+
// Hydrate them before service actions persist the current service list.
|
|
12644
|
+
store.dispatch(timeSeriesActions.loadUserAddedTimeSeriesServices(getUserAddedEDRServices()));
|
|
12645
|
+
state = store.getState();
|
|
12646
|
+
existingService = (_timeSeriesSelectors$2 = timeSeriesSelectors.getServices(state)) == null ? void 0 : _timeSeriesSelectors$2.find(function (service) {
|
|
12647
|
+
return service.type === 'EDR' && normalizeEdrServiceUrl(service.url) === normalizeEdrServiceUrl(target.serviceUrl);
|
|
12648
|
+
});
|
|
12649
|
+
service = existingService != null ? existingService : {
|
|
12650
|
+
id: v4(),
|
|
12651
|
+
url: target.serviceUrl,
|
|
12652
|
+
type: 'EDR',
|
|
12653
|
+
name: target.serviceInformation.title || new URL(target.serviceUrl).hostname,
|
|
12654
|
+
description: target.serviceInformation.description || ''
|
|
12655
|
+
};
|
|
12656
|
+
plotId = v4();
|
|
12657
|
+
isNewPanel = !panelId;
|
|
12658
|
+
panelId != null ? panelId : panelId = v4();
|
|
12659
|
+
if (!(!isNewPanel && !timeSeriesSelectors.getPlotState(state, panelId))) {
|
|
12660
|
+
_context2.n = 12;
|
|
12661
|
+
break;
|
|
12662
|
+
}
|
|
12663
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-panel-loading'));
|
|
12664
|
+
case 12:
|
|
12665
|
+
if (!existingService) {
|
|
12666
|
+
store.dispatch(timeSeriesActions.upsertService(Object.assign({}, service, {
|
|
12667
|
+
panelId: panelId,
|
|
12668
|
+
isUpdate: false
|
|
12669
|
+
})));
|
|
12670
|
+
store.dispatch(snackbarActions.openSnackbar({
|
|
12671
|
+
type: snackbarTypes.SnackbarMessageType.VERBATIM_MESSAGE,
|
|
12672
|
+
message: t('dataexplorer-timeseries-service-added', {
|
|
12673
|
+
service: service.name,
|
|
12674
|
+
host: new URL(service.url).host
|
|
12675
|
+
})
|
|
12676
|
+
}));
|
|
12677
|
+
}
|
|
12678
|
+
if (isNewPanel) {
|
|
12679
|
+
plotPreset = {
|
|
12680
|
+
mapId: targetMapId || '',
|
|
12681
|
+
plots: [{
|
|
12682
|
+
plotId: plotId,
|
|
12683
|
+
title: title
|
|
12684
|
+
}],
|
|
12685
|
+
parameters: []
|
|
12686
|
+
};
|
|
12687
|
+
store.dispatch(workspaceActions.addWorkspaceView({
|
|
12688
|
+
id: panelId,
|
|
12689
|
+
componentType: 'TimeSeries',
|
|
12690
|
+
initialProps: {
|
|
12691
|
+
plotPreset: plotPreset,
|
|
12692
|
+
services: [],
|
|
12693
|
+
syncGroupsIds: []
|
|
12694
|
+
}
|
|
12695
|
+
}));
|
|
12696
|
+
store.dispatch(viewPresetActions.setViewPresetInline({
|
|
12697
|
+
panelId: panelId,
|
|
12698
|
+
isInline: true
|
|
12699
|
+
}));
|
|
12700
|
+
mosaicNode = getMosaicNode(store.getState());
|
|
12701
|
+
store.dispatch(workspaceActions.updateWorkspaceViews({
|
|
12702
|
+
mosaicNode: mosaicNode ? {
|
|
12703
|
+
direction: 'row',
|
|
12704
|
+
first: mosaicNode,
|
|
12705
|
+
second: panelId
|
|
12706
|
+
} : panelId
|
|
12707
|
+
}));
|
|
12708
|
+
// Use the same preset at mount time, so registration preserves this plot.
|
|
12709
|
+
store.dispatch(timeSeriesActions.registerTimeSeriesPreset({
|
|
12710
|
+
panelId: panelId,
|
|
12711
|
+
plotPreset: plotPreset
|
|
12712
|
+
}));
|
|
12713
|
+
if (targetMapId) {
|
|
12714
|
+
store.dispatch(syncGroupsActions.updateLinkedMap({
|
|
12715
|
+
panelId: panelId,
|
|
12716
|
+
mapIds: [targetMapId]
|
|
12717
|
+
}));
|
|
12718
|
+
}
|
|
12719
|
+
} else {
|
|
12720
|
+
store.dispatch(timeSeriesActions.addPlot({
|
|
12721
|
+
panelId: panelId,
|
|
12722
|
+
plotId: plotId,
|
|
12723
|
+
title: title,
|
|
12724
|
+
origin: 'dataExplorer'
|
|
12725
|
+
}));
|
|
12726
|
+
}
|
|
12727
|
+
store.dispatch(viewPresetActions.setViewPresetHasChanges({
|
|
12728
|
+
panelId: panelId,
|
|
12729
|
+
hasChanges: true
|
|
12730
|
+
}));
|
|
12731
|
+
store.dispatch(workspaceActions.markWorkspaceChanged());
|
|
12732
|
+
store.dispatch(timeSeriesActions.openCollectionSelection({
|
|
12733
|
+
panelId: panelId,
|
|
12734
|
+
plotId: plotId,
|
|
12735
|
+
serviceId: service.id,
|
|
12736
|
+
collectionId: target.collection.id
|
|
12737
|
+
}));
|
|
12738
|
+
store.dispatch(uiActions.setActiveWindowId({
|
|
12739
|
+
activeWindowId: panelId
|
|
12740
|
+
}));
|
|
12741
|
+
[uiTypes.DialogTypes.TimeSeriesManager, uiTypes.DialogTypes.TimeSeriesSelect].forEach(function (type) {
|
|
12742
|
+
return store.dispatch(uiActions.setToggleOpenDialog({
|
|
12743
|
+
type: type,
|
|
12744
|
+
setOpen: true,
|
|
12745
|
+
sourcePanelId: panelId
|
|
12746
|
+
}));
|
|
12747
|
+
});
|
|
12748
|
+
case 13:
|
|
12749
|
+
return _context2.a(2);
|
|
12750
|
+
}
|
|
12751
|
+
}, _callee2);
|
|
12752
|
+
}));
|
|
12753
|
+
return function (_x2) {
|
|
12754
|
+
return _ref4.apply(this, arguments);
|
|
12755
|
+
};
|
|
12756
|
+
}(), [choose, store, t]);
|
|
12757
|
+
var addTimeseries = React.useCallback(/*#__PURE__*/function () {
|
|
12758
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(request) {
|
|
12759
|
+
var _t2;
|
|
12760
|
+
return _regenerator().w(function (_context3) {
|
|
12761
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
12762
|
+
case 0:
|
|
12763
|
+
_context3.p = 0;
|
|
12764
|
+
_context3.n = 1;
|
|
12765
|
+
return addTimeseriesToWorkspace(request);
|
|
12766
|
+
case 1:
|
|
12767
|
+
_context3.n = 5;
|
|
12768
|
+
break;
|
|
12769
|
+
case 2:
|
|
12770
|
+
_context3.p = 2;
|
|
12771
|
+
_t2 = _context3.v;
|
|
12772
|
+
if (!(_t2 instanceof TranslatedError)) {
|
|
12773
|
+
_context3.n = 3;
|
|
12774
|
+
break;
|
|
12775
|
+
}
|
|
12776
|
+
throw _t2;
|
|
12777
|
+
case 3:
|
|
12778
|
+
if (!(_t2 instanceof EdrCollectionTargetError)) {
|
|
12779
|
+
_context3.n = 4;
|
|
12780
|
+
break;
|
|
12781
|
+
}
|
|
12782
|
+
throw new TranslatedError(t("dataexplorer-timeseries-error-" + _t2.code));
|
|
12783
|
+
case 4:
|
|
12784
|
+
console.error('Unable to add dataset as Timeseries: ', _t2);
|
|
12785
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-generic'));
|
|
12786
|
+
case 5:
|
|
12787
|
+
return _context3.a(2);
|
|
12788
|
+
}
|
|
12789
|
+
}, _callee3, null, [[0, 2]]);
|
|
12790
|
+
}));
|
|
12791
|
+
return function (_x3) {
|
|
12792
|
+
return _ref5.apply(this, arguments);
|
|
12793
|
+
};
|
|
12794
|
+
}(), [addTimeseriesToWorkspace, t]);
|
|
12795
|
+
return jsxs(Fragment, {
|
|
12796
|
+
children: [jsx(DataExplorerConnect, {
|
|
12797
|
+
onAddTimeseries: addTimeseries,
|
|
12798
|
+
productConfigKey: productConfigKey
|
|
12799
|
+
}), jsxs(Dialog, {
|
|
12800
|
+
onClose: function onClose() {
|
|
12801
|
+
return finishChoice();
|
|
12802
|
+
},
|
|
12803
|
+
open: !!choice,
|
|
12804
|
+
children: [jsx(DialogTitle, {
|
|
12805
|
+
children: choice == null ? void 0 : choice.title
|
|
12806
|
+
}), jsx(List, {
|
|
12807
|
+
children: choice == null ? void 0 : choice.options.map(function (option) {
|
|
12808
|
+
return jsx(ListItemButton, {
|
|
12809
|
+
onClick: function onClick() {
|
|
12810
|
+
return finishChoice(option.id);
|
|
12811
|
+
},
|
|
12812
|
+
children: jsx(ListItemText, {
|
|
12813
|
+
primary: option.title,
|
|
12814
|
+
secondary: option.description
|
|
12815
|
+
})
|
|
12816
|
+
}, option.id);
|
|
12817
|
+
})
|
|
12818
|
+
}), jsx(DialogActions, {
|
|
12819
|
+
children: jsx(Button, {
|
|
12820
|
+
onClick: function onClick() {
|
|
12821
|
+
return finishChoice();
|
|
12822
|
+
},
|
|
12823
|
+
children: t('shared-confirmation-cancel', {
|
|
12824
|
+
ns: SHARED_NAMESPACE
|
|
12825
|
+
})
|
|
12826
|
+
})
|
|
12827
|
+
})]
|
|
12828
|
+
})]
|
|
12829
|
+
});
|
|
12830
|
+
};
|
|
12831
|
+
|
|
12269
12832
|
/* *
|
|
12270
12833
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12271
12834
|
* you may not use this file except in compliance with the License.
|
|
@@ -12478,6 +13041,20 @@ var viewPresets = [
|
|
|
12478
13041
|
]
|
|
12479
13042
|
}
|
|
12480
13043
|
},
|
|
13044
|
+
{
|
|
13045
|
+
id: "template-crosssection",
|
|
13046
|
+
title: {
|
|
13047
|
+
en: "New cross section preset",
|
|
13048
|
+
fi: "Uusi poikkileikkauspreset",
|
|
13049
|
+
no: "Ny tverrsnittpreset",
|
|
13050
|
+
nl: "Nieuwe cross section preset"
|
|
13051
|
+
},
|
|
13052
|
+
componentType: "CrossSection",
|
|
13053
|
+
initialProps: {
|
|
13054
|
+
syncGroupsIds: [
|
|
13055
|
+
]
|
|
13056
|
+
}
|
|
13057
|
+
},
|
|
12481
13058
|
{
|
|
12482
13059
|
id: "template-warninglist",
|
|
12483
13060
|
title: {
|
|
@@ -13906,4 +14483,4 @@ var workspaceEndpoints = [].concat(createUserPreferencesEndpoints(), [http.get(/
|
|
|
13906
14483
|
}, _callee6);
|
|
13907
14484
|
})))]);
|
|
13908
14485
|
|
|
13909
|
-
export { ALL_COMPONENT_TYPES, AVIATION_COMPONENT_TYPES, CAP_COMPONENT_TYPES, ComponentsLookUpWrapper, DemoWrapper, PresetAction, SUPPORTED_COMPONENT_TYPES, SUPPORTED_TIMESERIES_COMPONENT_TYPES, ViewPresetErrorComponent, ViewPresetErrorType, WARNING_LIST_COMPONENT_TYPES, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspacePresetAction, WorkspaceStoreWrapper, WorkspaceThemeProvider, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, defaultViewPresetsFilters, getEmptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, templatePresetsFixture, viewPresetActions, viewPresetsListener, viewPresetsReducer, workspaceActions, workspaceEndpoints, workspaceListActions, workspaceListListener, workspaceListReducer, workspaceListener, workspaceMiddlewares, workspaceReducer, workspaceReducersMap, routes as workspaceRoutes, workspaceSentryStateMap, workspaceTranslations };
|
|
14486
|
+
export { ALL_COMPONENT_TYPES, AVIATION_COMPONENT_TYPES, CAP_COMPONENT_TYPES, ComponentsLookUpWrapper, DataExplorerTimeseriesConnect, DemoWrapper, PresetAction, SUPPORTED_COMPONENT_TYPES, SUPPORTED_TIMESERIES_COMPONENT_TYPES, ViewPresetErrorComponent, ViewPresetErrorType, WARNING_LIST_COMPONENT_TYPES, WORKSPACE_NAMESPACE, WorkspaceDetail, WorkspaceErrorType, WorkspaceI18nProvider, WorkspacePresetAction, WorkspaceStoreWrapper, WorkspaceThemeProvider, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, defaultViewPresetsFilters, getEmptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, templatePresetsFixture, viewPresetActions, viewPresetsListener, viewPresetsReducer, workspaceActions, workspaceEndpoints, workspaceListActions, workspaceListListener, workspaceListReducer, workspaceListener, workspaceMiddlewares, workspaceReducer, workspaceReducersMap, routes as workspaceRoutes, workspaceSentryStateMap, workspaceTranslations };
|