@opengeoweb/workspace 21.1.0 → 21.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createSlice, createEntityAdapter, createSelector, createListenerMiddlew
|
|
|
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
4
|
import { syncGroupsTypes, FEATURE_GROUP_PREFIX, syncGroupsActions, layerActions, mapActions, uiActions, genericActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, createViewObjectForNewMap, syncConstants, 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 { timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer } from '@opengeoweb/time-series';
|
|
5
|
+
import { timeseriesTranslations, TIME_SERIES_NAMESPACE, timeSeriesActions, TimeSeriesTypes, timeSeriesSelectors, timeSeriesReducer, getUserAddedEDRServices, normalizeEdrServiceUrl, resolveEdrCollectionTarget, EdrCollectionTargetError } from '@opengeoweb/time-series';
|
|
6
6
|
import { chunk, cloneDeep, isEqual, isString } from 'lodash';
|
|
7
7
|
import { getLeaves, createBalancedTreeFromLeaves, MosaicContext, getAndAssertNodeAtPathExists, MosaicWindow, Mosaic } from 'react-mosaic-component';
|
|
8
8
|
import { queryOptions, useQueryClient, useQuery, useMutation, useIsMutating } from '@tanstack/react-query';
|
|
@@ -13,6 +13,7 @@ import { snackbarTypes, snackbarActions, snackbarListener, snackbarReducer, Snac
|
|
|
13
13
|
import i18n from 'i18next';
|
|
14
14
|
import { useTranslation, I18nextProvider } from 'react-i18next';
|
|
15
15
|
import { coreTranslations, CORE_NAMESPACE, LoadingIndicatorProgressBar } from '@opengeoweb/core';
|
|
16
|
+
import { dataExplorerTranslations, DATA_EXPLORER_NAMESPACE, DataExplorerConnect } from '@opengeoweb/data-explorer';
|
|
16
17
|
import { formFieldsTranslations, FORM_FIELDS_NAMESPACE, ReactHookFormHiddenInput, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
|
|
17
18
|
import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE } from '@opengeoweb/webmap-react';
|
|
18
19
|
import { isAxiosError as isAxiosError$1 } from 'axios';
|
|
@@ -21,10 +22,11 @@ import { Provider, useDispatch, useSelector, useStore, shallowEqual } from 'reac
|
|
|
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, 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 { v4 } from 'uuid';
|
|
28
30
|
import { http, HttpResponse, delay } from 'msw';
|
|
29
31
|
|
|
30
32
|
var en = {
|
|
@@ -36,7 +38,8 @@ var en = {
|
|
|
36
38
|
"workspace-new": "New workspace",
|
|
37
39
|
"workspace-loading": "Loading",
|
|
38
40
|
"workspace-options": "Options",
|
|
39
|
-
"workspace-
|
|
41
|
+
"workspace-results_one": "{{count}} result",
|
|
42
|
+
"workspace-results_other": "{{count}} results",
|
|
40
43
|
"workspace-delete": "Delete",
|
|
41
44
|
"workspce-clear": "Clear",
|
|
42
45
|
"workspace-save": "Save",
|
|
@@ -188,40 +191,47 @@ var fi = {
|
|
|
188
191
|
"workspace-add-favourite": "Lisää {{title}} suosikkeihin",
|
|
189
192
|
"workspace-remove-favourite": "Poista {{title}} suosikeista",
|
|
190
193
|
"workspace-favourites-error": "Suosikkeja ei voitu ladata tai tallentaa. Yritä uudelleen.",
|
|
191
|
-
"workspace-menu": "
|
|
192
|
-
"workspace-new": "Uusi
|
|
194
|
+
"workspace-menu": "Työtilavalikko",
|
|
195
|
+
"workspace-new": "Uusi työtila",
|
|
196
|
+
"workspace-new-soundings": "Uusi luotaustyötila",
|
|
197
|
+
"workspace-template-map": "Uusi map preset",
|
|
198
|
+
"workspace-template-timeseries": "Uusi timeseries preset",
|
|
199
|
+
"workspace-template-soundings": "Uusi luotauspreset",
|
|
200
|
+
"workspace-template-warninglist": "Uusi varoituslistapreset",
|
|
201
|
+
"workspace-template-timeline": "Uusi aikajanapreset",
|
|
193
202
|
"workspace-loading": "Ladataan",
|
|
194
203
|
"workspace-options": "Valinnat",
|
|
195
|
-
"workspace-
|
|
204
|
+
"workspace-results_one": "{{count}} tulos",
|
|
205
|
+
"workspace-results_other": "{{count}} tulosta",
|
|
196
206
|
"workspace-delete": "Poista",
|
|
197
207
|
"workspce-clear": "Tyhjennä",
|
|
198
208
|
"workspace-save": "Tallenna",
|
|
199
209
|
"workspace-save-as": "Tallenna nimellä",
|
|
200
|
-
"workspace-dialog-description": "
|
|
201
|
-
"workspace-char-limit": "
|
|
202
|
-
"workspace-edit": "Muokkaa
|
|
210
|
+
"workspace-dialog-description": "Lyhyt kuvaus",
|
|
211
|
+
"workspace-char-limit": "Merkkirajoitus",
|
|
212
|
+
"workspace-edit": "Muokkaa metatietoja",
|
|
203
213
|
"workspace-edit-title": "Muokkaa otsikkoa",
|
|
204
|
-
"workspace-share": "
|
|
205
|
-
"workspace-stop-share": "
|
|
214
|
+
"workspace-share": "Jaa",
|
|
215
|
+
"workspace-stop-share": "Lopeta jakaminen",
|
|
206
216
|
"geoweb-welcome": "Tervetuloa Geoweb-sovellukseen. Valitse jokin preset avataksesi uusia näkymiä",
|
|
207
217
|
"workspace-modified-new": "muokattu",
|
|
208
218
|
"workspace-modified-existing": "ei tallennettu",
|
|
209
|
-
"workspace-dialog-delete": "Poista
|
|
219
|
+
"workspace-dialog-delete": "Poista työtila",
|
|
210
220
|
"workspace-duplicate": "Monista",
|
|
211
221
|
"workspace-cancel": "Peruuta",
|
|
212
222
|
"workspace-dialog-name": "Nimi",
|
|
213
223
|
"workspace-dialog-abstract": "Tiivistelmä",
|
|
214
224
|
"workspace-dialog-confirm-delete-message": "Oletko varma, että haluat poistaa workspace presetin: \"{{TITLE}}\"?",
|
|
215
225
|
"workspace-dialog-confirm-reset-message": "ei käännetty",
|
|
216
|
-
"workspace-error-fetch": "
|
|
217
|
-
"workspace-error-fetch-detail": "
|
|
226
|
+
"workspace-error-fetch": "Työtilaluettelon hakeminen epäonnistui",
|
|
227
|
+
"workspace-error-fetch-detail": "Työtilan \"{{WORKSPACE_ID}}\" hakeminen epäonnistui",
|
|
218
228
|
"workspace-retry": "Yritä uudelleen",
|
|
219
229
|
"workspace-delete-tooltip": "Poista preset",
|
|
220
230
|
"workspace-control-split-horizontal": "Jaa ikkuna vaakasuoraan",
|
|
221
231
|
"workspace-control-split-vertical": "Jaa ikkuna pystysuoraan",
|
|
222
232
|
"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
|
|
233
|
+
"workspace-control-split-horizontal-with-data": "Jaa ikkuna vaakasuoraan ja kopioi näkymän sisältö",
|
|
234
|
+
"workspace-control-split-vertical-with-data": "Jaa ikkuna pystysuoraan ja kopioi näkymän sisältö",
|
|
225
235
|
"workspace-control-expand": "Laajenna ikkuna",
|
|
226
236
|
"workspace-control-unexpand": "Supista ikkuna",
|
|
227
237
|
"workspace-control-show-options": "Näytä asetukset",
|
|
@@ -240,15 +250,16 @@ var fi = {
|
|
|
240
250
|
"workspace-mappreset-error-fetch": "Map presettien hakeminen epäonnistui",
|
|
241
251
|
"workspace-list-error": "Workspace presettien hakeminen epäonnistui",
|
|
242
252
|
"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-
|
|
253
|
+
"workspace-list-success-delete": "Työtila \"{{TITLE}}\" on poistettu",
|
|
254
|
+
"workspace-list-success-duplicate": "Työtila \"{{TITLE}}\" on tallennettu",
|
|
255
|
+
"workspace-list-success-edit": "Työtilaa \"{{TITLE}}\" on muokattu",
|
|
256
|
+
"workspace-list-success-reset": "Työtila \"{{TITLE}}\" on palautettu alkuperäiseen tilaan",
|
|
257
|
+
"workspace-list-success-share": "Työtila \"{{TITLE}}\" on jaettu",
|
|
258
|
+
"workspace-list-success-save": "Työtila \"{{TITLE}}\" on tallennettu",
|
|
259
|
+
"workspace-list-success-unshare": "Työtilan \"{{TITLE}}\" jakaminen on lopetettu",
|
|
260
|
+
"workspace-save-error": "Työtilan \"{{TITLE}}\" tallentaminen epäonnistui",
|
|
250
261
|
"workspace-error-generic": "Jotain meni mönkään. Yritä uudelleen.",
|
|
251
|
-
"workspace-error-auth": "
|
|
262
|
+
"workspace-error-auth": "Tunnistautumisessa tapahtui virhe",
|
|
252
263
|
"workspace-viewpreset-success-delete": "Map preset \"{{TITLE}}\" poistettu onnistuneesti",
|
|
253
264
|
"workspace-viewpreset-success-save-as": "Uusi map preset \"{{TITLE}}\" tallennettu onnistuneesti",
|
|
254
265
|
"workspace-viewpreset-success-edit": "Map presettiä \"{{TITLE}}\" muokattu onnistuneesti",
|
|
@@ -258,75 +269,79 @@ var fi = {
|
|
|
258
269
|
"workspace-save-new-viewpreset": "ei käännetty",
|
|
259
270
|
"workspace-save-new-viewpreset-warning-system": "ei käännetty",
|
|
260
271
|
"workspace-save-new-viewpreset-warning-user": "ei käännetty",
|
|
261
|
-
"workspace-admin-save-workspace": "
|
|
262
|
-
"workspace-admin-save-user-workspace": "
|
|
272
|
+
"workspace-admin-save-workspace": "Tallenna järjestelmän työtila",
|
|
273
|
+
"workspace-admin-save-user-workspace": "Tallenna työtila",
|
|
263
274
|
"workspace-admin-select-modified-viewpresets": "ei käännetty",
|
|
264
275
|
"workspace-admin-save-new-viewpreset": "ei käännetty",
|
|
265
276
|
"workspace-admin-save-new-viewpreset-warning": "ei käännetty",
|
|
266
277
|
"workspace-admin-save-new-viewpreset-title": "ei käännetty",
|
|
267
278
|
"workspace-reset": "Palauta alkuperäinen",
|
|
268
|
-
"workspace-reset-title": "
|
|
279
|
+
"workspace-reset-title": "Palauta alkuperäinen",
|
|
280
|
+
"workspace-dialog-delete-system": "Poista järjestelmän työtila",
|
|
269
281
|
"workspace-dialog-confirm-delete-system": "ei käännetty",
|
|
282
|
+
"workspace-list-success-delete-system": "\"{{TITLE}}\" on poistettu järjestelmän työtiloista.",
|
|
270
283
|
"workspace-link-location-header": "Sijainti",
|
|
271
284
|
"workspace-link": "Link",
|
|
272
|
-
"workspace-dialog-confirm-reset-view-message": "
|
|
285
|
+
"workspace-dialog-confirm-reset-view-message": "Näkymä palautetaan alkuperäiseen tilaan ja kaikki muutokset menetetään. Haluatko varmasti jatkaa?",
|
|
273
286
|
"workspace-viewpreset-success-reset": "ei käännetty",
|
|
274
287
|
"workspace-viewpreset-success-share": "ei käännetty",
|
|
275
288
|
"workspace-viewpreset-success-unshare": "ei käännetty",
|
|
276
289
|
"workspace-loading-indicator-loading": "Ladataan",
|
|
277
290
|
"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-
|
|
291
|
+
"workspace-open-tab": "Avaa uudessa välilehdessä",
|
|
292
|
+
"workspace-info-title": "Tiedot",
|
|
293
|
+
"workspace-info-preset-title": "Otsikko:",
|
|
294
|
+
"workspace-info-short-description": "Lyhyt kuvaus",
|
|
295
|
+
"workspace-info-no-description": "Kuvausta ei ole saatavilla",
|
|
296
|
+
"workspace-info-abstract": "Tiivistelmä",
|
|
297
|
+
"workspace-info-no-abstract": "Tiivistelmää ei ole saatavilla",
|
|
284
298
|
"workspace-info-selected-labels": "Selected labels ({{count}})",
|
|
285
299
|
"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": "
|
|
300
|
+
"workspace-info-updated": "Viimeksi muokattu",
|
|
301
|
+
"workspace-info-author": "Tekijä",
|
|
302
|
+
"workspace-info-created": "Luotu",
|
|
303
|
+
"workspace-info-created-by": "Tekijä",
|
|
304
|
+
"workspace-info-no-date-provided": "Ei ilmoitettu",
|
|
305
|
+
"workspace-info-unknown-author": "Tuntematon",
|
|
292
306
|
"workspace-info-tooltip": "Show preset information",
|
|
293
307
|
"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": "
|
|
308
|
+
"workspace-presets-form-labels-info": "Näkymän tyyppiä ei tyhjennetä.",
|
|
309
|
+
"workspace-presets-form-labels-clearAll": "Tyhjennä kaikki suodattimet ({{count}})",
|
|
310
|
+
"workspace-presets-form-labels-collapseAll": "Kutista",
|
|
311
|
+
"workspace-presets-form-labels-expandAll": "Laajenna kaikki",
|
|
298
312
|
"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": "
|
|
313
|
+
"workspace-labels-purpose": "Käyttötarkoitus",
|
|
314
|
+
"workspace-labels-parameters": "Parametrit",
|
|
315
|
+
"workspace-labels-phenomena": "Sääilmiö",
|
|
316
|
+
"workspace-labels-dataType": "Aineiston tyyppi",
|
|
317
|
+
"workspace-labels-dataSource": "Aineiston lähde",
|
|
318
|
+
"workspace-labels-viewType": "Näkymän tyyppi",
|
|
305
319
|
"workspace-presets-form-active-labels": "ei käännetty ({{count}})",
|
|
306
|
-
"workspace-label-active": "
|
|
320
|
+
"workspace-label-active": "AKTIIVINEN",
|
|
321
|
+
"fetch-config-error-retry": "Yritä uudelleen",
|
|
307
322
|
"workspace-versions": "Valitse versio",
|
|
308
323
|
"workspace-version": "Versio {{version}}",
|
|
309
324
|
"workspace-version-current": "Versio {{version}} (nykyinen)",
|
|
310
325
|
"workspace-version-default": "Versio {{version}} (oletus)",
|
|
311
|
-
"workspace-copy-to-clipboard": "
|
|
312
|
-
"workspace-paste-from-clipboard": "
|
|
326
|
+
"workspace-copy-to-clipboard": "Kopioi työtila",
|
|
327
|
+
"workspace-paste-from-clipboard": "Liitä työtila",
|
|
313
328
|
"workspace-copy-viewpreset-to-clipboard": "Copy view preset",
|
|
314
329
|
"workspace-paste-viewpreset-from-clipboard": "Paste view preset",
|
|
315
|
-
"workspace-paste-dialog-title": "
|
|
330
|
+
"workspace-paste-dialog-title": "Liitä työtila leikepöydältä",
|
|
316
331
|
"workspace-paste-viewpreset-dialog-title": "Paste view preset",
|
|
317
|
-
"workspace-paste-load-button": "
|
|
332
|
+
"workspace-paste-load-button": "Lataa työtila",
|
|
318
333
|
"workspace-paste-load-viewpreset-button": "Load view preset",
|
|
319
|
-
"workspace-paste-placeholder": "
|
|
334
|
+
"workspace-paste-placeholder": "Liitä työtilan JSON-tiedot tähän",
|
|
320
335
|
"workspace-paste-viewpreset-placeholder": "Paste view preset JSON here",
|
|
321
|
-
"workspace-paste-field-label": "
|
|
336
|
+
"workspace-paste-field-label": "Työtilan JSON-tiedot",
|
|
322
337
|
"workspace-paste-viewpreset-field-label": "View preset JSON",
|
|
323
|
-
"workspace-copy-success": "
|
|
324
|
-
"workspace-paste-success": "
|
|
338
|
+
"workspace-copy-success": "Työtila kopioitu",
|
|
339
|
+
"workspace-paste-success": "Työtila ladattu",
|
|
325
340
|
"workspace-copy-viewpreset-success": "View preset JSON copied to clipboard",
|
|
326
341
|
"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": "
|
|
342
|
+
"workspace-paste-validation-invalid-json": "Virheellinen JSON: {{ERROR}}",
|
|
343
|
+
"workspace-paste-validation-not-object": "Syötteen on oltava JSON-objekti",
|
|
344
|
+
"workspace-paste-validation-missing-field": "Pakollinen kenttä puuttuu: \"{{ERROR}}\"",
|
|
330
345
|
"workspace-paste-validation-unexpanded-views": "Workspace contains view preset references. Use the Copy button to get a portable version.",
|
|
331
346
|
"workspace-paste-validation-wrong-preset-type": "The clipboard contains a view preset, not a workspace preset.",
|
|
332
347
|
"viewpreset-paste-validation-wrong-preset-type": "The clipboard contains a workspace preset, not a view preset."
|
|
@@ -340,7 +355,8 @@ var no = {
|
|
|
340
355
|
"workspace-new": "Ny arbeidsflate",
|
|
341
356
|
"workspace-loading": "Laster",
|
|
342
357
|
"workspace-options": "Valg",
|
|
343
|
-
"workspace-
|
|
358
|
+
"workspace-results_one": "{{count}} resultat",
|
|
359
|
+
"workspace-results_other": "{{count}} resultater",
|
|
344
360
|
"workspace-delete": "Slett",
|
|
345
361
|
"workspce-clear": "Tøm",
|
|
346
362
|
"workspace-save": "Lagre",
|
|
@@ -489,7 +505,8 @@ var nl = {
|
|
|
489
505
|
"workspace-new": "Nieuwe workspace",
|
|
490
506
|
"workspace-loading": "Laden",
|
|
491
507
|
"workspace-options": "Opties",
|
|
492
|
-
"workspace-
|
|
508
|
+
"workspace-results_one": "{{count}} resultaat",
|
|
509
|
+
"workspace-results_other": "{{count}} resultaten",
|
|
493
510
|
"workspace-delete": "Verwijder",
|
|
494
511
|
"workspce-clear": "Wissen",
|
|
495
512
|
"workspace-save": "Opslaan",
|
|
@@ -666,6 +683,36 @@ function _asyncToGenerator(n) {
|
|
|
666
683
|
});
|
|
667
684
|
};
|
|
668
685
|
}
|
|
686
|
+
function _construct(t, e, r) {
|
|
687
|
+
if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
|
|
688
|
+
var o = [null];
|
|
689
|
+
o.push.apply(o, e);
|
|
690
|
+
var p = new (t.bind.apply(t, o))();
|
|
691
|
+
return r && _setPrototypeOf(p, r.prototype), p;
|
|
692
|
+
}
|
|
693
|
+
function _getPrototypeOf(t) {
|
|
694
|
+
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
|
|
695
|
+
return t.__proto__ || Object.getPrototypeOf(t);
|
|
696
|
+
}, _getPrototypeOf(t);
|
|
697
|
+
}
|
|
698
|
+
function _inheritsLoose(t, o) {
|
|
699
|
+
t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
|
|
700
|
+
}
|
|
701
|
+
function _isNativeFunction(t) {
|
|
702
|
+
try {
|
|
703
|
+
return -1 !== Function.toString.call(t).indexOf("[native code]");
|
|
704
|
+
} catch (n) {
|
|
705
|
+
return "function" == typeof t;
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
function _isNativeReflectConstruct() {
|
|
709
|
+
try {
|
|
710
|
+
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
711
|
+
} catch (t) {}
|
|
712
|
+
return (_isNativeReflectConstruct = function () {
|
|
713
|
+
return !!t;
|
|
714
|
+
})();
|
|
715
|
+
}
|
|
669
716
|
function _objectDestructuringEmpty(t) {
|
|
670
717
|
if (null == t) throw new TypeError("Cannot destructure " + t);
|
|
671
718
|
}
|
|
@@ -786,6 +833,33 @@ function _regeneratorDefine(e, r, n, t) {
|
|
|
786
833
|
}) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
|
|
787
834
|
}, _regeneratorDefine(e, r, n, t);
|
|
788
835
|
}
|
|
836
|
+
function _setPrototypeOf(t, e) {
|
|
837
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
838
|
+
return t.__proto__ = e, t;
|
|
839
|
+
}, _setPrototypeOf(t, e);
|
|
840
|
+
}
|
|
841
|
+
function _wrapNativeSuper(t) {
|
|
842
|
+
var r = "function" == typeof Map ? new Map() : void 0;
|
|
843
|
+
return _wrapNativeSuper = function (t) {
|
|
844
|
+
if (null === t || !_isNativeFunction(t)) return t;
|
|
845
|
+
if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
|
|
846
|
+
if (void 0 !== r) {
|
|
847
|
+
if (r.has(t)) return r.get(t);
|
|
848
|
+
r.set(t, Wrapper);
|
|
849
|
+
}
|
|
850
|
+
function Wrapper() {
|
|
851
|
+
return _construct(t, arguments, _getPrototypeOf(this).constructor);
|
|
852
|
+
}
|
|
853
|
+
return Wrapper.prototype = Object.create(t.prototype, {
|
|
854
|
+
constructor: {
|
|
855
|
+
value: Wrapper,
|
|
856
|
+
enumerable: false,
|
|
857
|
+
writable: true,
|
|
858
|
+
configurable: true
|
|
859
|
+
}
|
|
860
|
+
}), _setPrototypeOf(Wrapper, t);
|
|
861
|
+
}, _wrapNativeSuper(t);
|
|
862
|
+
}
|
|
789
863
|
|
|
790
864
|
/* *
|
|
791
865
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1590,7 +1664,7 @@ var SUPPORTED_TIMESERIES_COMPONENT_TYPES = ['TimeSeries'];
|
|
|
1590
1664
|
// 3) Warning list components
|
|
1591
1665
|
var WARNING_LIST_COMPONENT_TYPES = ['WarningList', 'MaritimeWarnings', 'WarningsTimeline'];
|
|
1592
1666
|
// 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']);
|
|
1667
|
+
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']);
|
|
1594
1668
|
var ViewPresetErrorComponent;
|
|
1595
1669
|
(function (ViewPresetErrorComponent) {
|
|
1596
1670
|
ViewPresetErrorComponent["PRESET_DETAIL"] = "PRESET_DETAIL";
|
|
@@ -1686,6 +1760,12 @@ var initWorkspaceTestI18n = function initWorkspaceTestI18n() {
|
|
|
1686
1760
|
}, {
|
|
1687
1761
|
ns: WARN_NAMESPACE,
|
|
1688
1762
|
translations: warningsTranslations
|
|
1763
|
+
}, {
|
|
1764
|
+
ns: TIME_SERIES_NAMESPACE,
|
|
1765
|
+
translations: timeseriesTranslations
|
|
1766
|
+
}, {
|
|
1767
|
+
ns: DATA_EXPLORER_NAMESPACE,
|
|
1768
|
+
translations: dataExplorerTranslations
|
|
1689
1769
|
}]);
|
|
1690
1770
|
};
|
|
1691
1771
|
var ns = [WORKSPACE_NAMESPACE, SHARED_NAMESPACE];
|
|
@@ -2975,6 +3055,9 @@ var emptyViewPreset = function emptyViewPreset(componentType) {
|
|
|
2975
3055
|
},
|
|
2976
3056
|
Soundings: undefined,
|
|
2977
3057
|
// TODO: empty soundings preset https://gitlab.com/opengeoweb/opengeoweb/-/issues/6029
|
|
3058
|
+
CrossSection: {
|
|
3059
|
+
syncGroupsIds: []
|
|
3060
|
+
},
|
|
2978
3061
|
ViewError: undefined,
|
|
2979
3062
|
ViewLoading: undefined,
|
|
2980
3063
|
MultiMap: undefined,
|
|
@@ -3248,6 +3331,9 @@ var getViewPresetToSendToBackend = createSelector(getViewById, getViewComponentT
|
|
|
3248
3331
|
Soundings: Object.assign({}, soundingsPreset, {
|
|
3249
3332
|
syncGroupsIds: syncGroupsIds
|
|
3250
3333
|
}),
|
|
3334
|
+
CrossSection: Object.assign({}, workspaceView == null ? void 0 : workspaceView.initialProps, {
|
|
3335
|
+
syncGroupsIds: syncGroupsIds
|
|
3336
|
+
}),
|
|
3251
3337
|
Plugin: Object.assign({}, workspaceView == null ? void 0 : workspaceView.initialProps, {
|
|
3252
3338
|
syncGroupsIds: syncGroupsIds
|
|
3253
3339
|
}, pluginState && {
|
|
@@ -8006,13 +8092,15 @@ var WorkspaceSelectList = function WorkspaceSelectList(_ref2) {
|
|
|
8006
8092
|
minHeight: MIN_HEIGHT_SCROLLABLE_LIST,
|
|
8007
8093
|
overflow: 'hidden'
|
|
8008
8094
|
},
|
|
8009
|
-
children: [
|
|
8095
|
+
children: [jsx(Box, {
|
|
8010
8096
|
sx: {
|
|
8011
8097
|
marginBottom: '4px',
|
|
8012
8098
|
fontSize: '12px',
|
|
8013
8099
|
ml: 0.5
|
|
8014
8100
|
},
|
|
8015
|
-
children:
|
|
8101
|
+
children: t('workspace-results', {
|
|
8102
|
+
count: workspacePresets.length
|
|
8103
|
+
})
|
|
8016
8104
|
}), jsx(Box, {
|
|
8017
8105
|
sx: {
|
|
8018
8106
|
paddingTop: LIST_PADDING_TOP + "px",
|
|
@@ -9784,6 +9872,7 @@ var _WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(
|
|
|
9784
9872
|
syncGroupsIds: relatedSyncGroupIds
|
|
9785
9873
|
};
|
|
9786
9874
|
case 'Plugin':
|
|
9875
|
+
case 'CrossSection':
|
|
9787
9876
|
return getViewPresetToSendToBackend(store.getState(), panelId).initialProps;
|
|
9788
9877
|
default:
|
|
9789
9878
|
return undefined;
|
|
@@ -12266,6 +12355,351 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
|
|
|
12266
12355
|
});
|
|
12267
12356
|
};
|
|
12268
12357
|
|
|
12358
|
+
/** Error whose message is already translated and can be shown to the user as is. */
|
|
12359
|
+
var TranslatedError = /*#__PURE__*/function (_Error) {
|
|
12360
|
+
function TranslatedError() {
|
|
12361
|
+
return _Error.apply(this, arguments) || this;
|
|
12362
|
+
}
|
|
12363
|
+
_inheritsLoose(TranslatedError, _Error);
|
|
12364
|
+
return TranslatedError;
|
|
12365
|
+
}(/*#__PURE__*/_wrapNativeSuper(Error));
|
|
12366
|
+
/**
|
|
12367
|
+
* Coordinates the Data Explorer with the workspace and Timeseries panels.
|
|
12368
|
+
* Data Explorer itself does not depend on workspace or Timeseries.
|
|
12369
|
+
*/
|
|
12370
|
+
var DataExplorerTimeseriesConnect = function DataExplorerTimeseriesConnect(_ref) {
|
|
12371
|
+
var productConfigKey = _ref.productConfigKey;
|
|
12372
|
+
var store = useStore();
|
|
12373
|
+
var _useTranslation = useTranslation([DATA_EXPLORER_NAMESPACE, SHARED_NAMESPACE]),
|
|
12374
|
+
t = _useTranslation.t;
|
|
12375
|
+
var _React$useState = React.useState(),
|
|
12376
|
+
choice = _React$useState[0],
|
|
12377
|
+
setChoice = _React$useState[1];
|
|
12378
|
+
var resolveChoice = React.useRef(undefined);
|
|
12379
|
+
var mounted = React.useRef(true);
|
|
12380
|
+
React.useEffect(function () {
|
|
12381
|
+
mounted.current = true;
|
|
12382
|
+
return function () {
|
|
12383
|
+
mounted.current = false;
|
|
12384
|
+
resolveChoice.current == null || resolveChoice.current(undefined);
|
|
12385
|
+
};
|
|
12386
|
+
}, []);
|
|
12387
|
+
var choose = React.useCallback(/*#__PURE__*/function () {
|
|
12388
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(nextChoice) {
|
|
12389
|
+
return _regenerator().w(function (_context) {
|
|
12390
|
+
while (1) switch (_context.n) {
|
|
12391
|
+
case 0:
|
|
12392
|
+
setChoice(nextChoice);
|
|
12393
|
+
return _context.a(2, new Promise(function (resolve) {
|
|
12394
|
+
resolveChoice.current = resolve;
|
|
12395
|
+
}));
|
|
12396
|
+
}
|
|
12397
|
+
}, _callee);
|
|
12398
|
+
}));
|
|
12399
|
+
return function (_x) {
|
|
12400
|
+
return _ref2.apply(this, arguments);
|
|
12401
|
+
};
|
|
12402
|
+
}(), []);
|
|
12403
|
+
var finishChoice = function finishChoice(id) {
|
|
12404
|
+
setChoice(undefined);
|
|
12405
|
+
resolveChoice.current == null || resolveChoice.current(id);
|
|
12406
|
+
resolveChoice.current = undefined;
|
|
12407
|
+
};
|
|
12408
|
+
var addTimeseriesToWorkspace = React.useCallback(/*#__PURE__*/function () {
|
|
12409
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref3) {
|
|
12410
|
+
var _store$getState$works, _state$workspace, _state$workspace2, _state$workspace3, _state$workspace4, _getViewById3, _timeSeriesSelectors$2;
|
|
12411
|
+
var title, collectionLinks, targetMapId, workspaceId, collectionUrl, target, state, panels, linkedPanels, candidates, panelId, existingService, service, plotId, isNewPanel, plotPreset, mosaicNode, _t;
|
|
12412
|
+
return _regenerator().w(function (_context2) {
|
|
12413
|
+
while (1) switch (_context2.n) {
|
|
12414
|
+
case 0:
|
|
12415
|
+
title = _ref3.title, collectionLinks = _ref3.collectionLinks, targetMapId = _ref3.targetMapId;
|
|
12416
|
+
workspaceId = (_store$getState$works = store.getState().workspace) == null ? void 0 : _store$getState$works.id;
|
|
12417
|
+
if (!(collectionLinks.length === 1)) {
|
|
12418
|
+
_context2.n = 1;
|
|
12419
|
+
break;
|
|
12420
|
+
}
|
|
12421
|
+
_t = collectionLinks[0].href;
|
|
12422
|
+
_context2.n = 3;
|
|
12423
|
+
break;
|
|
12424
|
+
case 1:
|
|
12425
|
+
_context2.n = 2;
|
|
12426
|
+
return choose({
|
|
12427
|
+
title: t('dataexplorer-select-data-link'),
|
|
12428
|
+
options: collectionLinks.map(function (link) {
|
|
12429
|
+
return {
|
|
12430
|
+
id: link.href,
|
|
12431
|
+
title: link.title || link.href
|
|
12432
|
+
};
|
|
12433
|
+
})
|
|
12434
|
+
});
|
|
12435
|
+
case 2:
|
|
12436
|
+
_t = _context2.v;
|
|
12437
|
+
case 3:
|
|
12438
|
+
collectionUrl = _t;
|
|
12439
|
+
if (!(!collectionUrl || !mounted.current)) {
|
|
12440
|
+
_context2.n = 4;
|
|
12441
|
+
break;
|
|
12442
|
+
}
|
|
12443
|
+
return _context2.a(2);
|
|
12444
|
+
case 4:
|
|
12445
|
+
_context2.n = 5;
|
|
12446
|
+
return resolveEdrCollectionTarget(collectionUrl);
|
|
12447
|
+
case 5:
|
|
12448
|
+
target = _context2.v;
|
|
12449
|
+
if (mounted.current) {
|
|
12450
|
+
_context2.n = 6;
|
|
12451
|
+
break;
|
|
12452
|
+
}
|
|
12453
|
+
return _context2.a(2);
|
|
12454
|
+
case 6:
|
|
12455
|
+
state = store.getState();
|
|
12456
|
+
if (!(((_state$workspace = state.workspace) == null ? void 0 : _state$workspace.id) !== workspaceId || (_state$workspace2 = state.workspace) != null && _state$workspace2.isLoading)) {
|
|
12457
|
+
_context2.n = 7;
|
|
12458
|
+
break;
|
|
12459
|
+
}
|
|
12460
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-workspace-changed'));
|
|
12461
|
+
case 7:
|
|
12462
|
+
panels = getViewIds(state).filter(function (id) {
|
|
12463
|
+
var _getViewById;
|
|
12464
|
+
return ((_getViewById = getViewById(state, id)) == null ? void 0 : _getViewById.componentType) === 'TimeSeries';
|
|
12465
|
+
});
|
|
12466
|
+
linkedPanels = targetMapId ? panels.filter(function (id) {
|
|
12467
|
+
var linkedMaps = genericSelectors.getLinkedTargetIds(state, id);
|
|
12468
|
+
return linkedMaps.length > 0 ? linkedMaps.includes(targetMapId) : timeSeriesSelectors.getMapId(state, id) === targetMapId;
|
|
12469
|
+
}) : [];
|
|
12470
|
+
candidates = linkedPanels.length > 0 ? linkedPanels : panels;
|
|
12471
|
+
panelId = candidates.length === 1 ? candidates[0] : undefined;
|
|
12472
|
+
if (!(candidates.length > 1)) {
|
|
12473
|
+
_context2.n = 9;
|
|
12474
|
+
break;
|
|
12475
|
+
}
|
|
12476
|
+
_context2.n = 8;
|
|
12477
|
+
return choose({
|
|
12478
|
+
title: t('dataexplorer-select-timeseries-panel'),
|
|
12479
|
+
options: candidates.map(function (id, index) {
|
|
12480
|
+
var _getViewById2, _timeSeriesSelectors$;
|
|
12481
|
+
return {
|
|
12482
|
+
id: id,
|
|
12483
|
+
title: ((_getViewById2 = getViewById(state, id)) == null ? void 0 : _getViewById2.title) || t('dataexplorer-timeseries-panel', {
|
|
12484
|
+
number: index + 1
|
|
12485
|
+
}),
|
|
12486
|
+
description: (_timeSeriesSelectors$ = timeSeriesSelectors.getPlotState(state, id)) == null ? void 0 : _timeSeriesSelectors$.plots.map(function (plot) {
|
|
12487
|
+
return plot.title;
|
|
12488
|
+
}).join(', ')
|
|
12489
|
+
};
|
|
12490
|
+
})
|
|
12491
|
+
});
|
|
12492
|
+
case 8:
|
|
12493
|
+
panelId = _context2.v;
|
|
12494
|
+
if (panelId) {
|
|
12495
|
+
_context2.n = 9;
|
|
12496
|
+
break;
|
|
12497
|
+
}
|
|
12498
|
+
return _context2.a(2);
|
|
12499
|
+
case 9:
|
|
12500
|
+
state = store.getState();
|
|
12501
|
+
if (mounted.current) {
|
|
12502
|
+
_context2.n = 10;
|
|
12503
|
+
break;
|
|
12504
|
+
}
|
|
12505
|
+
return _context2.a(2);
|
|
12506
|
+
case 10:
|
|
12507
|
+
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')) {
|
|
12508
|
+
_context2.n = 11;
|
|
12509
|
+
break;
|
|
12510
|
+
}
|
|
12511
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-workspace-changed'));
|
|
12512
|
+
case 11:
|
|
12513
|
+
// Saved services may not have loaded yet when creating the first panel.
|
|
12514
|
+
// Hydrate them before service actions persist the current service list.
|
|
12515
|
+
store.dispatch(timeSeriesActions.loadUserAddedTimeSeriesServices(getUserAddedEDRServices()));
|
|
12516
|
+
state = store.getState();
|
|
12517
|
+
existingService = (_timeSeriesSelectors$2 = timeSeriesSelectors.getServices(state)) == null ? void 0 : _timeSeriesSelectors$2.find(function (service) {
|
|
12518
|
+
return service.type === 'EDR' && normalizeEdrServiceUrl(service.url) === normalizeEdrServiceUrl(target.serviceUrl);
|
|
12519
|
+
});
|
|
12520
|
+
service = existingService != null ? existingService : {
|
|
12521
|
+
id: v4(),
|
|
12522
|
+
url: target.serviceUrl,
|
|
12523
|
+
type: 'EDR',
|
|
12524
|
+
name: target.serviceInformation.title || new URL(target.serviceUrl).hostname,
|
|
12525
|
+
description: target.serviceInformation.description || ''
|
|
12526
|
+
};
|
|
12527
|
+
plotId = v4();
|
|
12528
|
+
isNewPanel = !panelId;
|
|
12529
|
+
panelId != null ? panelId : panelId = v4();
|
|
12530
|
+
if (!(!isNewPanel && !timeSeriesSelectors.getPlotState(state, panelId))) {
|
|
12531
|
+
_context2.n = 12;
|
|
12532
|
+
break;
|
|
12533
|
+
}
|
|
12534
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-panel-loading'));
|
|
12535
|
+
case 12:
|
|
12536
|
+
if (!existingService) {
|
|
12537
|
+
store.dispatch(timeSeriesActions.upsertService(Object.assign({}, service, {
|
|
12538
|
+
panelId: panelId,
|
|
12539
|
+
isUpdate: false
|
|
12540
|
+
})));
|
|
12541
|
+
store.dispatch(snackbarActions.openSnackbar({
|
|
12542
|
+
type: snackbarTypes.SnackbarMessageType.VERBATIM_MESSAGE,
|
|
12543
|
+
message: t('dataexplorer-timeseries-service-added', {
|
|
12544
|
+
service: service.name,
|
|
12545
|
+
host: new URL(service.url).host
|
|
12546
|
+
})
|
|
12547
|
+
}));
|
|
12548
|
+
}
|
|
12549
|
+
if (isNewPanel) {
|
|
12550
|
+
plotPreset = {
|
|
12551
|
+
mapId: targetMapId || '',
|
|
12552
|
+
plots: [{
|
|
12553
|
+
plotId: plotId,
|
|
12554
|
+
title: title
|
|
12555
|
+
}],
|
|
12556
|
+
parameters: []
|
|
12557
|
+
};
|
|
12558
|
+
store.dispatch(workspaceActions.addWorkspaceView({
|
|
12559
|
+
id: panelId,
|
|
12560
|
+
componentType: 'TimeSeries',
|
|
12561
|
+
initialProps: {
|
|
12562
|
+
plotPreset: plotPreset,
|
|
12563
|
+
services: [],
|
|
12564
|
+
syncGroupsIds: []
|
|
12565
|
+
}
|
|
12566
|
+
}));
|
|
12567
|
+
store.dispatch(viewPresetActions.setViewPresetInline({
|
|
12568
|
+
panelId: panelId,
|
|
12569
|
+
isInline: true
|
|
12570
|
+
}));
|
|
12571
|
+
mosaicNode = getMosaicNode(store.getState());
|
|
12572
|
+
store.dispatch(workspaceActions.updateWorkspaceViews({
|
|
12573
|
+
mosaicNode: mosaicNode ? {
|
|
12574
|
+
direction: 'row',
|
|
12575
|
+
first: mosaicNode,
|
|
12576
|
+
second: panelId
|
|
12577
|
+
} : panelId
|
|
12578
|
+
}));
|
|
12579
|
+
// Use the same preset at mount time, so registration preserves this plot.
|
|
12580
|
+
store.dispatch(timeSeriesActions.registerTimeSeriesPreset({
|
|
12581
|
+
panelId: panelId,
|
|
12582
|
+
plotPreset: plotPreset
|
|
12583
|
+
}));
|
|
12584
|
+
if (targetMapId) {
|
|
12585
|
+
store.dispatch(syncGroupsActions.updateLinkedMap({
|
|
12586
|
+
panelId: panelId,
|
|
12587
|
+
mapIds: [targetMapId]
|
|
12588
|
+
}));
|
|
12589
|
+
}
|
|
12590
|
+
} else {
|
|
12591
|
+
store.dispatch(timeSeriesActions.addPlot({
|
|
12592
|
+
panelId: panelId,
|
|
12593
|
+
plotId: plotId,
|
|
12594
|
+
title: title,
|
|
12595
|
+
origin: 'dataExplorer'
|
|
12596
|
+
}));
|
|
12597
|
+
}
|
|
12598
|
+
store.dispatch(viewPresetActions.setViewPresetHasChanges({
|
|
12599
|
+
panelId: panelId,
|
|
12600
|
+
hasChanges: true
|
|
12601
|
+
}));
|
|
12602
|
+
store.dispatch(workspaceActions.markWorkspaceChanged());
|
|
12603
|
+
store.dispatch(timeSeriesActions.openCollectionSelection({
|
|
12604
|
+
panelId: panelId,
|
|
12605
|
+
plotId: plotId,
|
|
12606
|
+
serviceId: service.id,
|
|
12607
|
+
collectionId: target.collection.id
|
|
12608
|
+
}));
|
|
12609
|
+
store.dispatch(uiActions.setActiveWindowId({
|
|
12610
|
+
activeWindowId: panelId
|
|
12611
|
+
}));
|
|
12612
|
+
[uiTypes.DialogTypes.TimeSeriesManager, uiTypes.DialogTypes.TimeSeriesSelect].forEach(function (type) {
|
|
12613
|
+
return store.dispatch(uiActions.setToggleOpenDialog({
|
|
12614
|
+
type: type,
|
|
12615
|
+
setOpen: true,
|
|
12616
|
+
sourcePanelId: panelId
|
|
12617
|
+
}));
|
|
12618
|
+
});
|
|
12619
|
+
case 13:
|
|
12620
|
+
return _context2.a(2);
|
|
12621
|
+
}
|
|
12622
|
+
}, _callee2);
|
|
12623
|
+
}));
|
|
12624
|
+
return function (_x2) {
|
|
12625
|
+
return _ref4.apply(this, arguments);
|
|
12626
|
+
};
|
|
12627
|
+
}(), [choose, store, t]);
|
|
12628
|
+
var addTimeseries = React.useCallback(/*#__PURE__*/function () {
|
|
12629
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(request) {
|
|
12630
|
+
var _t2;
|
|
12631
|
+
return _regenerator().w(function (_context3) {
|
|
12632
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
12633
|
+
case 0:
|
|
12634
|
+
_context3.p = 0;
|
|
12635
|
+
_context3.n = 1;
|
|
12636
|
+
return addTimeseriesToWorkspace(request);
|
|
12637
|
+
case 1:
|
|
12638
|
+
_context3.n = 5;
|
|
12639
|
+
break;
|
|
12640
|
+
case 2:
|
|
12641
|
+
_context3.p = 2;
|
|
12642
|
+
_t2 = _context3.v;
|
|
12643
|
+
if (!(_t2 instanceof TranslatedError)) {
|
|
12644
|
+
_context3.n = 3;
|
|
12645
|
+
break;
|
|
12646
|
+
}
|
|
12647
|
+
throw _t2;
|
|
12648
|
+
case 3:
|
|
12649
|
+
if (!(_t2 instanceof EdrCollectionTargetError)) {
|
|
12650
|
+
_context3.n = 4;
|
|
12651
|
+
break;
|
|
12652
|
+
}
|
|
12653
|
+
throw new TranslatedError(t("dataexplorer-timeseries-error-" + _t2.code));
|
|
12654
|
+
case 4:
|
|
12655
|
+
console.error('Unable to add dataset as Timeseries: ', _t2);
|
|
12656
|
+
throw new TranslatedError(t('dataexplorer-timeseries-error-generic'));
|
|
12657
|
+
case 5:
|
|
12658
|
+
return _context3.a(2);
|
|
12659
|
+
}
|
|
12660
|
+
}, _callee3, null, [[0, 2]]);
|
|
12661
|
+
}));
|
|
12662
|
+
return function (_x3) {
|
|
12663
|
+
return _ref5.apply(this, arguments);
|
|
12664
|
+
};
|
|
12665
|
+
}(), [addTimeseriesToWorkspace, t]);
|
|
12666
|
+
return jsxs(Fragment, {
|
|
12667
|
+
children: [jsx(DataExplorerConnect, {
|
|
12668
|
+
onAddTimeseries: addTimeseries,
|
|
12669
|
+
productConfigKey: productConfigKey
|
|
12670
|
+
}), jsxs(Dialog, {
|
|
12671
|
+
onClose: function onClose() {
|
|
12672
|
+
return finishChoice();
|
|
12673
|
+
},
|
|
12674
|
+
open: !!choice,
|
|
12675
|
+
children: [jsx(DialogTitle, {
|
|
12676
|
+
children: choice == null ? void 0 : choice.title
|
|
12677
|
+
}), jsx(List, {
|
|
12678
|
+
children: choice == null ? void 0 : choice.options.map(function (option) {
|
|
12679
|
+
return jsx(ListItemButton, {
|
|
12680
|
+
onClick: function onClick() {
|
|
12681
|
+
return finishChoice(option.id);
|
|
12682
|
+
},
|
|
12683
|
+
children: jsx(ListItemText, {
|
|
12684
|
+
primary: option.title,
|
|
12685
|
+
secondary: option.description
|
|
12686
|
+
})
|
|
12687
|
+
}, option.id);
|
|
12688
|
+
})
|
|
12689
|
+
}), jsx(DialogActions, {
|
|
12690
|
+
children: jsx(Button, {
|
|
12691
|
+
onClick: function onClick() {
|
|
12692
|
+
return finishChoice();
|
|
12693
|
+
},
|
|
12694
|
+
children: t('shared-confirmation-cancel', {
|
|
12695
|
+
ns: SHARED_NAMESPACE
|
|
12696
|
+
})
|
|
12697
|
+
})
|
|
12698
|
+
})]
|
|
12699
|
+
})]
|
|
12700
|
+
});
|
|
12701
|
+
};
|
|
12702
|
+
|
|
12269
12703
|
/* *
|
|
12270
12704
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12271
12705
|
* you may not use this file except in compliance with the License.
|
|
@@ -12478,6 +12912,20 @@ var viewPresets = [
|
|
|
12478
12912
|
]
|
|
12479
12913
|
}
|
|
12480
12914
|
},
|
|
12915
|
+
{
|
|
12916
|
+
id: "template-crosssection",
|
|
12917
|
+
title: {
|
|
12918
|
+
en: "New cross section preset",
|
|
12919
|
+
fi: "Uusi poikkileikkauspreset",
|
|
12920
|
+
no: "Ny tverrsnittpreset",
|
|
12921
|
+
nl: "Nieuwe cross section preset"
|
|
12922
|
+
},
|
|
12923
|
+
componentType: "CrossSection",
|
|
12924
|
+
initialProps: {
|
|
12925
|
+
syncGroupsIds: [
|
|
12926
|
+
]
|
|
12927
|
+
}
|
|
12928
|
+
},
|
|
12481
12929
|
{
|
|
12482
12930
|
id: "template-warninglist",
|
|
12483
12931
|
title: {
|
|
@@ -13906,4 +14354,4 @@ var workspaceEndpoints = [].concat(createUserPreferencesEndpoints(), [http.get(/
|
|
|
13906
14354
|
}, _callee6);
|
|
13907
14355
|
})))]);
|
|
13908
14356
|
|
|
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 };
|
|
14357
|
+
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 };
|
package/dist/src/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './lib/components/ComponentsLookUpWrapper';
|
|
|
14
14
|
export * from './lib/components/WorkspaceView';
|
|
15
15
|
export * from './lib/components/WorkspaceTopBar';
|
|
16
16
|
export * from './lib/components/WorkspaceDetail';
|
|
17
|
+
export { DataExplorerTimeseriesConnect } from './lib/components/DataExplorerTimeseriesConnect/DataExplorerTimeseriesConnect';
|
|
17
18
|
export { WORKSPACE_NAMESPACE } from './lib/utils/i18n';
|
|
18
19
|
export { workspaceTranslations };
|
|
19
20
|
export { routes as workspaceRoutes, getWorkspaceRouteUrl, } from './lib/utils/routes';
|
package/dist/src/lib/components/DataExplorerTimeseriesConnect/DataExplorerTimeseriesConnect.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Coordinates the Data Explorer with the workspace and Timeseries panels.
|
|
4
|
+
* Data Explorer itself does not depend on workspace or Timeseries.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DataExplorerTimeseriesConnect: React.FC<{
|
|
7
|
+
productConfigKey: string;
|
|
8
|
+
}>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { EntityState } from '@reduxjs/toolkit';
|
|
2
2
|
import type { InitialProps, SupportedComponentTypes } from '@opengeoweb/core';
|
|
3
|
+
import type { CrossSectionComponentType } from '@opengeoweb/cross-section';
|
|
3
4
|
import type { PluginComponentType, PluginMeta } from '@opengeoweb/plugins';
|
|
4
5
|
import type { SystemScope } from '@opengeoweb/shared';
|
|
5
6
|
import type { SoundingsComponentType } from '@opengeoweb/soundings';
|
|
@@ -17,8 +18,8 @@ export declare const SUPPORTED_TIMESERIES_COMPONENT_TYPES: readonly ["TimeSeries
|
|
|
17
18
|
export type SupportedTSComponentTypes = (typeof SUPPORTED_TIMESERIES_COMPONENT_TYPES)[number];
|
|
18
19
|
export declare const WARNING_LIST_COMPONENT_TYPES: readonly ["WarningList", "MaritimeWarnings", "WarningsTimeline"];
|
|
19
20
|
export type WarningsComponentType = (typeof WARNING_LIST_COMPONENT_TYPES)[number];
|
|
20
|
-
export type WorkspaceSupportedComponentTypes = SupportedComponentTypes | SupportedTimeSeriesComponentTypes | SoundingsComponentType | WarningListComponentType | WorkspaceViewPresetComponentsLookupType | PluginComponentType;
|
|
21
|
-
export type LabelSupportedComponentTypes = SupportedComponentTypes | SupportedTimeSeriesComponentTypes | SoundingsComponentType | WarningListComponentType | AviationComponentType | CapComponentType | 'TafModule' | 'TrajksModule' | 'SpaceweatherModule' | 'Plugin' | WorkspaceViewPresetComponentsLookupType;
|
|
21
|
+
export type WorkspaceSupportedComponentTypes = SupportedComponentTypes | SupportedTimeSeriesComponentTypes | SoundingsComponentType | CrossSectionComponentType | WarningListComponentType | WorkspaceViewPresetComponentsLookupType | PluginComponentType;
|
|
22
|
+
export type LabelSupportedComponentTypes = SupportedComponentTypes | SupportedTimeSeriesComponentTypes | SoundingsComponentType | CrossSectionComponentType | WarningListComponentType | AviationComponentType | CapComponentType | 'TafModule' | 'TrajksModule' | 'SpaceweatherModule' | 'Plugin' | WorkspaceViewPresetComponentsLookupType;
|
|
22
23
|
export declare const ALL_COMPONENT_TYPES: readonly LabelSupportedComponentTypes[];
|
|
23
24
|
export interface ViewPreset {
|
|
24
25
|
id?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/workspace",
|
|
3
|
-
"version": "21.
|
|
3
|
+
"version": "21.2.0",
|
|
4
4
|
"description": "GeoWeb Workspace library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -21,34 +21,37 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"react-redux": "^9.2.0",
|
|
24
|
-
"@opengeoweb/shared": "21.
|
|
25
|
-
"@opengeoweb/store": "21.
|
|
26
|
-
"@opengeoweb/api": "21.
|
|
24
|
+
"@opengeoweb/shared": "21.2.0",
|
|
25
|
+
"@opengeoweb/store": "21.2.0",
|
|
26
|
+
"@opengeoweb/api": "21.2.0",
|
|
27
27
|
"react-hook-form": "^7.50.1",
|
|
28
|
-
"@opengeoweb/theme": "21.
|
|
28
|
+
"@opengeoweb/theme": "21.2.0",
|
|
29
29
|
"@reduxjs/toolkit": "^2.6.1",
|
|
30
|
-
"@opengeoweb/snackbar": "21.
|
|
30
|
+
"@opengeoweb/snackbar": "21.2.0",
|
|
31
31
|
"react-window": "^2.2.6",
|
|
32
32
|
"lodash": "^4.18.1",
|
|
33
33
|
"axios": "^1.20.0",
|
|
34
34
|
"react-mosaic-component": "npm:react-mosaic-component-opengeoweb@^6.1.1-opengeoweb.1",
|
|
35
|
-
"@opengeoweb/form-fields": "21.
|
|
36
|
-
"@opengeoweb/time-series": "21.
|
|
37
|
-
"@opengeoweb/
|
|
38
|
-
"
|
|
39
|
-
"@opengeoweb/
|
|
40
|
-
"@opengeoweb/
|
|
41
|
-
"@opengeoweb/
|
|
42
|
-
"@opengeoweb/
|
|
43
|
-
"@opengeoweb/
|
|
35
|
+
"@opengeoweb/form-fields": "21.2.0",
|
|
36
|
+
"@opengeoweb/time-series": "21.2.0",
|
|
37
|
+
"@opengeoweb/data-explorer": "21.2.0",
|
|
38
|
+
"uuid": "^11.1.1",
|
|
39
|
+
"@opengeoweb/authentication": "21.2.0",
|
|
40
|
+
"@opengeoweb/plugins": "21.2.0",
|
|
41
|
+
"@opengeoweb/core": "21.2.0",
|
|
42
|
+
"@opengeoweb/taf": "21.2.0",
|
|
43
|
+
"@opengeoweb/sigmet-airmet": "21.2.0",
|
|
44
|
+
"@opengeoweb/warnings": "21.2.0",
|
|
45
|
+
"@opengeoweb/space-weather": "21.2.0",
|
|
44
46
|
"i18next": "^25.0.1",
|
|
45
47
|
"react-i18next": "^15.1.1",
|
|
46
48
|
"@mui/material": "^9.0.1",
|
|
47
|
-
"@opengeoweb/webmap-react": "21.
|
|
49
|
+
"@opengeoweb/webmap-react": "21.2.0",
|
|
48
50
|
"@tanstack/react-query": "^5.85.5",
|
|
49
|
-
"@opengeoweb/soundings": "21.
|
|
50
|
-
"@opengeoweb/knmi-components": "21.
|
|
51
|
-
"@mui/system": "^9.0.1"
|
|
51
|
+
"@opengeoweb/soundings": "21.2.0",
|
|
52
|
+
"@opengeoweb/knmi-components": "21.2.0",
|
|
53
|
+
"@mui/system": "^9.0.1",
|
|
54
|
+
"@opengeoweb/cross-section": "21.2.0"
|
|
52
55
|
},
|
|
53
56
|
"peerDependencies": {
|
|
54
57
|
"react": "19",
|
|
@@ -56,7 +59,7 @@
|
|
|
56
59
|
"@emotion/styled": "*"
|
|
57
60
|
},
|
|
58
61
|
"devDependencies": {
|
|
59
|
-
"eslint-plugin-storybook": "10.3.3",
|
|
62
|
+
"eslint-plugin-storybook": "^10.3.3",
|
|
60
63
|
"msw": "^2.7.3"
|
|
61
64
|
},
|
|
62
65
|
"files": [
|