@opengeoweb/workspace 9.10.1 → 9.11.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/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createEntityAdapter, createSlice, createSelector } from '@reduxjs/toolkit';
2
- import { chunk, cloneDeep, isEqual, isEmpty, isString } from 'lodash';
3
- import { syncGroupsTypes, syncGroupsActions, layerActions, mapStoreActions, uiActions, genericActions, mapActions, layerTypes, mapEnums, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, coreModuleConfig, uiSelectors } from '@opengeoweb/store';
2
+ import { chunk, cloneDeep, isEmpty, isEqual, isString } from 'lodash';
3
+ import { syncGroupsTypes, syncGroupsActions, layerActions, mapStoreActions, uiActions, genericActions, mapActions, layerTypes, mapEnums, selectorMemoizationOptions, genericSelectors, mapSelectors, syncGroupsSelectors, routerActions, coreModuleConfig, loadingIndicatorSelectors, uiSelectors } from '@opengeoweb/store';
4
4
  import { createApiInstance, createNonAuthApiInstance, getApi, createFakeApiInstance, ApiProvider, useApiContext } from '@opengeoweb/api';
5
5
  import { getLeaves, MosaicContext, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, MosaicWindow, Mosaic } from 'react-mosaic-component';
6
6
  import { debounce, takeEvery, takeLatest, all, put, delay, select, call, takeLeading } from 'redux-saga/effects';
@@ -8,7 +8,7 @@ import { isAxiosError, getAxiosErrorMessage, withEggs, ConfirmationServiceProvid
8
8
  import { snackbarActions, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
9
9
  import * as React from 'react';
10
10
  import React__default, { useCallback } from 'react';
11
- import { ThemeWrapper, lightTheme, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, Delete, Preset, PresetWorkspace, PresetTiles, Search, Clear, WebAssetOff } from '@opengeoweb/theme';
11
+ import { ThemeWrapper, lightTheme, SplitVertical, SplitHorizontal, Expand, UnExpand, Close, Delete, Preset, PresetWorkspace, PresetTiles, Search, Clear, CloudLoading, CloudIdle, WebAssetOff } from '@opengeoweb/theme';
12
12
  import { Provider, useDispatch, useSelector, useStore, shallowEqual } from 'react-redux';
13
13
  import { timeSeriesModuleConfig } from '@opengeoweb/timeseries';
14
14
  import { AuthenticationProvider, useAuthenticationContext } from '@opengeoweb/authentication';
@@ -1609,65 +1609,79 @@ var getViewPresetsStore = function getViewPresetsStore(store) {
1609
1609
  }
1610
1610
  return initialState$2;
1611
1611
  };
1612
- var selectors$1 = viewPresetsAdapter.getSelectors(function (state) {
1612
+ var selectors$2 = viewPresetsAdapter.getSelectors(function (state) {
1613
1613
  var _a;
1614
1614
  return (_a = state === null || state === void 0 ? void 0 : state.viewPresets) !== null && _a !== void 0 ? _a : {
1615
1615
  entities: {},
1616
1616
  ids: []
1617
1617
  };
1618
1618
  });
1619
- var getViewPresets = selectors$1.selectAll,
1620
- getViewPresetById = selectors$1.selectById;
1621
- var getViewPresetsIsFetching = function getViewPresetsIsFetching(store, panelId) {
1622
- var _a;
1623
- return ((_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.isFetching) || false;
1624
- };
1625
- var getViewPresetsError = function getViewPresetsError(store, panelId) {
1626
- var _a;
1627
- return (_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.error;
1628
- };
1629
- var getViewPresetDetailError = function getViewPresetDetailError(store, panelId) {
1630
- var error = getViewPresetsError(store, panelId);
1619
+ var getViewPresets = selectors$2.selectAll,
1620
+ getViewPresetById = selectors$2.selectById;
1621
+ var getViewPresetsIsFetching = createSelector(getViewPresetById, function (store, panelId) {
1622
+ return panelId;
1623
+ }, function (viewPreset) {
1624
+ return (viewPreset === null || viewPreset === void 0 ? void 0 : viewPreset.isFetching) || false;
1625
+ }, selectorMemoizationOptions);
1626
+ var getViewPresetsError = createSelector(getViewPresetById, function (store, panelId) {
1627
+ return panelId;
1628
+ }, function (viewPreset) {
1629
+ return viewPreset === null || viewPreset === void 0 ? void 0 : viewPreset.error;
1630
+ }, selectorMemoizationOptions);
1631
+ var getViewPresetDetailError = createSelector(getViewPresetsError, function (store, panelId) {
1632
+ return panelId;
1633
+ }, function (error) {
1631
1634
  if (error && error.type === 'PRESET_DETAIL') {
1632
1635
  return error.message;
1633
1636
  }
1634
1637
  return undefined;
1635
- };
1636
- var getViewPresetListError = function getViewPresetListError(store, panelId) {
1637
- var error = getViewPresetsError(store, panelId);
1638
+ }, selectorMemoizationOptions);
1639
+ var getViewPresetListError = createSelector(getViewPresetsError, function (store, panelId) {
1640
+ return panelId;
1641
+ }, function (error) {
1638
1642
  if (error && error.type === 'PRESET_LIST') {
1639
1643
  return error.message;
1640
1644
  }
1641
1645
  return undefined;
1642
- };
1643
- var getViewPresetHasChanges = function getViewPresetHasChanges(store, panelId) {
1644
- var _a;
1645
- return (_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.hasChanges;
1646
- };
1647
- var getViewPresetActiveId = function getViewPresetActiveId(store, panelId) {
1648
- var _a;
1649
- return (_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.activeViewPresetId;
1650
- };
1651
- var getViewPresetPanelId = function getViewPresetPanelId(store, mapId) {
1646
+ }, selectorMemoizationOptions);
1647
+ var getViewPresetHasChanges = createSelector(getViewPresetById, function (store, panelId) {
1648
+ return panelId;
1649
+ }, function (viewPreset) {
1650
+ return viewPreset === null || viewPreset === void 0 ? void 0 : viewPreset.hasChanges;
1651
+ }, selectorMemoizationOptions);
1652
+ var getViewPresetActiveId = createSelector(getViewPresetById, function (store, panelId) {
1653
+ return panelId;
1654
+ }, function (viewPreset) {
1655
+ return viewPreset === null || viewPreset === void 0 ? void 0 : viewPreset.activeViewPresetId;
1656
+ }, selectorMemoizationOptions);
1657
+ var getViewPresetPanelId = createSelector(getViewPresets, function (store, mapId) {
1658
+ return mapId;
1659
+ }, function (viewPresets, mapId) {
1652
1660
  var _a, _b;
1653
- return (_b = (_a = getViewPresets(store).find(function (preset) {
1661
+ return (_b = (_a = viewPresets.find(function (preset) {
1654
1662
  return preset.activeViewPresetId === mapId;
1655
1663
  })) === null || _a === void 0 ? void 0 : _a.panelId) !== null && _b !== void 0 ? _b : '';
1656
- };
1657
- var getDialogOptions = function getDialogOptions(store) {
1658
- return getViewPresetsStore(store).viewPresetDialog || undefined;
1659
- };
1660
- var getIsViewPresetListDialogOpen = function getIsViewPresetListDialogOpen(store, panelId) {
1661
- var _a;
1662
- return ((_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.isViewPresetListDialogOpen) || false;
1663
- };
1664
- var getViewPresetListFiltersForView = createSelector(getViewPresetById, function (viewPresetById) {
1665
- return (viewPresetById === null || viewPresetById === void 0 ? void 0 : viewPresetById.filters) || [];
1666
- });
1667
- var getViewPresetListSearchQueryForView = function getViewPresetListSearchQueryForView(store, panelId) {
1668
- var _a;
1669
- return ((_a = getViewPresetById(store, panelId)) === null || _a === void 0 ? void 0 : _a.searchQuery) || '';
1670
- };
1664
+ }, selectorMemoizationOptions);
1665
+ var getDialogOptions = createSelector(getViewPresetsStore, function (store) {
1666
+ return store;
1667
+ }, function (store) {
1668
+ return store.viewPresetDialog || undefined;
1669
+ }, selectorMemoizationOptions);
1670
+ var getIsViewPresetListDialogOpen = createSelector(getViewPresetById, function (store, panelId) {
1671
+ return panelId;
1672
+ }, function (viewPreset) {
1673
+ return (viewPreset === null || viewPreset === void 0 ? void 0 : viewPreset.isViewPresetListDialogOpen) || false;
1674
+ }, selectorMemoizationOptions);
1675
+ var getViewPresetListFiltersForView = createSelector(getViewPresetById, function (store, panelId) {
1676
+ return panelId;
1677
+ }, function (viewPreset) {
1678
+ return (viewPreset === null || viewPreset === void 0 ? void 0 : viewPreset.filters) || [];
1679
+ }, selectorMemoizationOptions);
1680
+ var getViewPresetListSearchQueryForView = createSelector(getViewPresetById, function (store, panelId) {
1681
+ return panelId;
1682
+ }, function (viewPreset) {
1683
+ return (viewPreset === null || viewPreset === void 0 ? void 0 : viewPreset.searchQuery) || '';
1684
+ }, selectorMemoizationOptions);
1671
1685
  // Used to retrieve the filtered view preset list for your view - if no filters/search applied it will be empty
1672
1686
  // To ensure you retrieve the view preset list specific for your view (incl and excl filters), use getFilteredViewPresetListForView
1673
1687
  var getViewPresetListFilterResultsForView = createSelector(getViewPresetById, function (viewPresetById) {
@@ -1676,7 +1690,7 @@ var getViewPresetListFilterResultsForView = createSelector(getViewPresetById, fu
1676
1690
  ids: []
1677
1691
  };
1678
1692
  return Object.values(filteredResults.entities);
1679
- });
1693
+ }, selectorMemoizationOptions);
1680
1694
 
1681
1695
  /* *
1682
1696
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -1705,7 +1719,7 @@ var workspaceStore = function workspaceStore(store) {
1705
1719
  */
1706
1720
  var getWorkspaceState = createSelector(workspaceStore, function (store) {
1707
1721
  return store || initialState$1;
1708
- });
1722
+ }, selectorMemoizationOptions);
1709
1723
  /**
1710
1724
  * Gets intialViewMapPreset from workspace state
1711
1725
  *
@@ -1714,7 +1728,7 @@ var getWorkspaceState = createSelector(workspaceStore, function (store) {
1714
1728
  */
1715
1729
  var getInitialViewMapPreset = createSelector(getWorkspaceState, function (state) {
1716
1730
  return state && state.intialViewMapPreset;
1717
- });
1731
+ }, selectorMemoizationOptions);
1718
1732
  /**
1719
1733
  * Gets mosaicNode from workspace state
1720
1734
  *
@@ -1723,7 +1737,7 @@ var getInitialViewMapPreset = createSelector(getWorkspaceState, function (state)
1723
1737
  */
1724
1738
  var getMosaicNode = createSelector(getWorkspaceState, function (state) {
1725
1739
  return state && state.mosaicNode;
1726
- });
1740
+ }, selectorMemoizationOptions);
1727
1741
  /**
1728
1742
  * Gets view from workspace state
1729
1743
  *
@@ -1731,10 +1745,12 @@ var getMosaicNode = createSelector(getWorkspaceState, function (state) {
1731
1745
  * @param {string} viewId viewId: string - view id
1732
1746
  * @returns {object} returnType: WorkspaceViewType
1733
1747
  */
1734
- var getViewById = function getViewById(store, viewId) {
1748
+ var getViewById = createSelector(getWorkspaceState, function (store, viewId) {
1749
+ return viewId;
1750
+ }, function (store, viewId) {
1735
1751
  var _a, _b;
1736
- return (_b = (_a = store === null || store === void 0 ? void 0 : store.workspace) === null || _a === void 0 ? void 0 : _a.views.byId) === null || _b === void 0 ? void 0 : _b[viewId];
1737
- };
1752
+ return (_b = (_a = store === null || store === void 0 ? void 0 : store.views) === null || _a === void 0 ? void 0 : _a.byId) === null || _b === void 0 ? void 0 : _b[viewId];
1753
+ }, selectorMemoizationOptions);
1738
1754
  /**
1739
1755
  * Gets all view ids
1740
1756
  *
@@ -1743,7 +1759,7 @@ var getViewById = function getViewById(store, viewId) {
1743
1759
  */
1744
1760
  var getViewIds = createSelector(getWorkspaceState, function (store) {
1745
1761
  return store.views.allIds || [];
1746
- });
1762
+ }, selectorMemoizationOptions);
1747
1763
  /**
1748
1764
  * Gets getShouldPreventClose from workspace state
1749
1765
  *
@@ -1753,13 +1769,13 @@ var getViewIds = createSelector(getWorkspaceState, function (store) {
1753
1769
  */
1754
1770
  var getShouldPreventClose = createSelector(getViewById, function (store) {
1755
1771
  return (store === null || store === void 0 ? void 0 : store.shouldPreventClose) || false;
1756
- });
1772
+ }, selectorMemoizationOptions);
1757
1773
  var isWorkspaceLoading = createSelector(getWorkspaceState, function (store) {
1758
1774
  return (store === null || store === void 0 ? void 0 : store.isLoading) || false;
1759
- });
1775
+ }, selectorMemoizationOptions);
1760
1776
  var getWorkspaceError = createSelector(getWorkspaceState, function (store) {
1761
1777
  return store === null || store === void 0 ? void 0 : store.error;
1762
- });
1778
+ }, selectorMemoizationOptions);
1763
1779
  /**
1764
1780
  * Gets selected workspace title
1765
1781
  *
@@ -1768,10 +1784,10 @@ var getWorkspaceError = createSelector(getWorkspaceState, function (store) {
1768
1784
  */
1769
1785
  var getSelectedWorkspaceTitle = createSelector(workspaceStore, function (store) {
1770
1786
  return store && store.title || '';
1771
- });
1787
+ }, selectorMemoizationOptions);
1772
1788
  var hasWorkspaceChanges = createSelector(getWorkspaceState, function (store) {
1773
1789
  return (store === null || store === void 0 ? void 0 : store.hasChanges) || false;
1774
- });
1790
+ }, selectorMemoizationOptions);
1775
1791
  /**
1776
1792
  * Gets selected viewType
1777
1793
  *
@@ -1780,7 +1796,7 @@ var hasWorkspaceChanges = createSelector(getWorkspaceState, function (store) {
1780
1796
  */
1781
1797
  var getViewType = createSelector(getWorkspaceState, function (store) {
1782
1798
  return (store === null || store === void 0 ? void 0 : store.viewType) || '';
1783
- });
1799
+ }, selectorMemoizationOptions);
1784
1800
  /**
1785
1801
  * Gets selected workspace scope
1786
1802
  *
@@ -1789,7 +1805,7 @@ var getViewType = createSelector(getWorkspaceState, function (store) {
1789
1805
  */
1790
1806
  var getSelectedWorkspaceScope = createSelector(workspaceStore, function (store) {
1791
1807
  return store && store.scope || 'system';
1792
- });
1808
+ }, selectorMemoizationOptions);
1793
1809
  /**
1794
1810
  * Gets workspace data to send to the backend
1795
1811
  *
@@ -1822,11 +1838,7 @@ var getWorkspaceData = createSelector(getWorkspaceState, getViewPresetsStore, ge
1822
1838
  "abstract": store["abstract"],
1823
1839
  mosaicNode: store.mosaicNode
1824
1840
  };
1825
- }, {
1826
- memoizeOptions: {
1827
- resultEqualityCheck: isEqual
1828
- }
1829
- });
1841
+ }, selectorMemoizationOptions);
1830
1842
  var getViewPresetToSendToBackend = createSelector(getViewById, mapSelectors.getMapPreset, syncGroupsSelectors.getAllTargetGroupsForSource, function (workspaceView, mapPreset, syncGroupsIds) {
1831
1843
  var title = (workspaceView === null || workspaceView === void 0 ? void 0 : workspaceView.title) || MAPPRESET_ACTIVE_TITLE;
1832
1844
  var scope = (workspaceView === null || workspaceView === void 0 ? void 0 : workspaceView.scope) || 'system';
@@ -1839,9 +1851,9 @@ var getViewPresetToSendToBackend = createSelector(getViewById, mapSelectors.getM
1839
1851
  syncGroupsIds: syncGroupsIds
1840
1852
  }
1841
1853
  });
1842
- });
1854
+ }, selectorMemoizationOptions);
1843
1855
 
1844
- var selectors = /*#__PURE__*/Object.freeze({
1856
+ var selectors$1 = /*#__PURE__*/Object.freeze({
1845
1857
  __proto__: null,
1846
1858
  getWorkspaceState: getWorkspaceState,
1847
1859
  getInitialViewMapPreset: getInitialViewMapPreset,
@@ -4423,37 +4435,44 @@ var getWorkspaceListStore = function getWorkspaceListStore(store) {
4423
4435
  }
4424
4436
  return null;
4425
4437
  };
4426
- var getIsWorkspaceListFetching = function getIsWorkspaceListFetching(store) {
4427
- var _a;
4428
- return ((_a = getWorkspaceListStore(store)) === null || _a === void 0 ? void 0 : _a.isFetching) || false;
4429
- };
4430
- var getWorkspaceListError = function getWorkspaceListError(store) {
4438
+ var selectors = workspaceListAdapter.getSelectors(function (state) {
4431
4439
  var _a;
4432
- return (_a = getWorkspaceListStore(store)) === null || _a === void 0 ? void 0 : _a.error;
4433
- };
4434
- var _workspaceListAdapter = workspaceListAdapter.getSelectors(function (state) {
4435
- var _a;
4436
- return (_a = state === null || state === void 0 ? void 0 : state.workspaceList) !== null && _a !== void 0 ? _a : {
4437
- entities: {},
4438
- ids: []
4439
- };
4440
- }),
4441
- getWorkspaceList = _workspaceListAdapter.selectAll;
4442
- var getWorkspaceActionDialogDetails = function getWorkspaceActionDialogDetails(store) {
4443
- var _a;
4444
- return ((_a = getWorkspaceListStore(store)) === null || _a === void 0 ? void 0 : _a.workspaceActionDialog) || false;
4445
- };
4446
- var getIsWorkspaceListDialogOpen = function getIsWorkspaceListDialogOpen(store) {
4447
- var _a;
4448
- return ((_a = getWorkspaceListStore(store)) === null || _a === void 0 ? void 0 : _a.isWorkspaceListDialogOpen) || false;
4449
- };
4450
- var getWorkspaceListFilters = createSelector(getWorkspaceListStore, function (workspaceListStore) {
4451
- return (workspaceListStore === null || workspaceListStore === void 0 ? void 0 : workspaceListStore.workspaceListFilters) || [];
4440
+ return (_a = state === null || state === void 0 ? void 0 : state.workspaceList) !== null && _a !== void 0 ? _a : {
4441
+ entities: {},
4442
+ ids: []
4443
+ };
4452
4444
  });
4453
- var getWorkspaceListSearchQuery = function getWorkspaceListSearchQuery(store) {
4454
- var _a;
4455
- return ((_a = getWorkspaceListStore(store)) === null || _a === void 0 ? void 0 : _a.searchQuery) || '';
4456
- };
4445
+ var getWorkspaceList = selectors.selectAll;
4446
+ var getIsWorkspaceListFetching = createSelector(getWorkspaceListStore, function (store) {
4447
+ return store;
4448
+ }, function (state) {
4449
+ return (state === null || state === void 0 ? void 0 : state.isFetching) || false;
4450
+ }, selectorMemoizationOptions);
4451
+ var getWorkspaceListError = createSelector(getWorkspaceListStore, function (store) {
4452
+ return store;
4453
+ }, function (state) {
4454
+ return (state === null || state === void 0 ? void 0 : state.error) || undefined;
4455
+ }, selectorMemoizationOptions);
4456
+ var getWorkspaceActionDialogDetails = createSelector(getWorkspaceListStore, function (store) {
4457
+ return store;
4458
+ }, function (state) {
4459
+ return (state === null || state === void 0 ? void 0 : state.workspaceActionDialog) || false;
4460
+ }, selectorMemoizationOptions);
4461
+ var getIsWorkspaceListDialogOpen = createSelector(getWorkspaceListStore, function (store) {
4462
+ return store;
4463
+ }, function (state) {
4464
+ return (state === null || state === void 0 ? void 0 : state.isWorkspaceListDialogOpen) || false;
4465
+ }, selectorMemoizationOptions);
4466
+ var getWorkspaceListFilters = createSelector(getWorkspaceListStore, function (store) {
4467
+ return store;
4468
+ }, function (state) {
4469
+ return (state === null || state === void 0 ? void 0 : state.workspaceListFilters) || [];
4470
+ }, selectorMemoizationOptions);
4471
+ var getWorkspaceListSearchQuery = createSelector(getWorkspaceListStore, function (store) {
4472
+ return store;
4473
+ }, function (state) {
4474
+ return (state === null || state === void 0 ? void 0 : state.searchQuery) || '';
4475
+ }, selectorMemoizationOptions);
4457
4476
 
4458
4477
  var _marked$1 = /*#__PURE__*/_regeneratorRuntime().mark(saveAllViewPresetSaga),
4459
4478
  _marked2$1 = /*#__PURE__*/_regeneratorRuntime().mark(rootSaga$1);
@@ -5598,7 +5617,7 @@ var getFilteredViewPresetListForView = createSelector(getViewPresetsList, getVie
5598
5617
  entities: {},
5599
5618
  ids: []
5600
5619
  };
5601
- });
5620
+ }, selectorMemoizationOptions);
5602
5621
 
5603
5622
  var WORKSPACE_SELECT_LIST_ROW_HEIGHT = 46;
5604
5623
  var getPresetIcon = function getPresetIcon(preset) {
@@ -6386,6 +6405,35 @@ var WorkspaceOptions = function WorkspaceOptions(_ref) {
6386
6405
  }, renderButton()));
6387
6406
  };
6388
6407
 
6408
+ /* *
6409
+ * Licensed under the Apache License, Version 2.0 (the "License");
6410
+ * you may not use this file except in compliance with the License.
6411
+ * You may obtain a copy of the License at
6412
+ *
6413
+ * http://www.apache.org/licenses/LICENSE-2.0
6414
+ *
6415
+ * Unless required by applicable law or agreed to in writing, software
6416
+ * distributed under the License is distributed on an "AS IS" BASIS,
6417
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6418
+ * See the License for the specific language governing permissions and
6419
+ * limitations under the License.
6420
+ *
6421
+ * Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
6422
+ * Copyright 2024 - Finnish Meteorological Institute (FMI)
6423
+ * */
6424
+ var LoadingIndicator = function LoadingIndicator(_ref) {
6425
+ var _ref$loading = _ref.loading,
6426
+ loading = _ref$loading === void 0 ? false : _ref$loading;
6427
+ return loading ? ( /*#__PURE__*/React.createElement(CloudLoading, {
6428
+ "data-testid": "cloudicon-loading",
6429
+ style: {
6430
+ fill: '#186DFF'
6431
+ }
6432
+ })) : ( /*#__PURE__*/React.createElement(CloudIdle, {
6433
+ "data-testid": "cloudicon-idle"
6434
+ }));
6435
+ };
6436
+
6389
6437
  /* *
6390
6438
  * Licensed under the Apache License, Version 2.0 (the "License");
6391
6439
  * you may not use this file except in compliance with the License.
@@ -6439,6 +6487,9 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
6439
6487
  var relatedSyncGroupIds = useSelector(function (store) {
6440
6488
  return syncGroupsSelectors.getAllTargetGroupsForSource(store, panelId);
6441
6489
  });
6490
+ var isLoading = useSelector(function (store) {
6491
+ return loadingIndicatorSelectors.isLoading(store, panelId);
6492
+ });
6442
6493
  var openViewPresetsDialog = React.useCallback(function (viewPresetDialogOptions) {
6443
6494
  dispatch(viewPresetActions.openViewPresetDialog({
6444
6495
  viewPresetDialog: viewPresetDialogOptions
@@ -6546,6 +6597,8 @@ var WorkspaceViewTitleConnectNoMemo = function WorkspaceViewTitleConnectNoMemo(_
6546
6597
  handleSaveAs: onSaveAs,
6547
6598
  handleEdit: viewScope === 'user' ? onEdit : undefined,
6548
6599
  id: "viewpreset-options-toolbutton"
6600
+ }), /*#__PURE__*/React.createElement(LoadingIndicator, {
6601
+ loading: isLoading
6549
6602
  }));
6550
6603
  };
6551
6604
  var WorkspaceViewTitleConnect = /*#__PURE__*/React.memo(WorkspaceViewTitleConnectNoMemo);
@@ -6947,9 +7000,11 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
6947
7000
  var workspaceListFilters = useSelector(function (store) {
6948
7001
  return getWorkspaceListFilters(store);
6949
7002
  });
7003
+ var lastWorkspaceListFilters = usePrevious(workspaceListFilters);
6950
7004
  var workspaceSearchQuery = useSelector(function (store) {
6951
7005
  return getWorkspaceListSearchQuery(store);
6952
7006
  });
7007
+ var lastWorkspaceSearchQuery = usePrevious(workspaceSearchQuery);
6953
7008
  var isFetching = useSelector(function (store) {
6954
7009
  return getIsWorkspaceListFetching(store);
6955
7010
  });
@@ -6986,9 +7041,12 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
6986
7041
  }));
6987
7042
  }, [dispatch]);
6988
7043
  React.useEffect(function () {
6989
- fetchWorkspaceList();
7044
+ // Only refetch list on changes to the filters if the dialog is open
7045
+ if (lastWorkspaceListFilters !== workspaceListFilters && lastWorkspaceListFilters !== undefined || lastWorkspaceSearchQuery !== workspaceSearchQuery && lastWorkspaceSearchQuery !== undefined) {
7046
+ fetchWorkspaceList();
7047
+ }
6990
7048
  // eslint-disable-next-line react-hooks/exhaustive-deps
6991
- }, [workspaceListFilters, workspaceSearchQuery]);
7049
+ }, [workspaceListFilters, workspaceSearchQuery, lastWorkspaceListFilters, lastWorkspaceSearchQuery]);
6992
7050
  // If we're loading the `New workspace` preset as defined in the FE, use this instead of retrieving from BE
6993
7051
  var onClickNewPreset = React.useCallback(function () {
6994
7052
  dispatch(routerActions.navigateToUrl({
@@ -7136,8 +7194,7 @@ var WorkspaceSelectListConnect = function WorkspaceSelectListConnect() {
7136
7194
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
7137
7195
  * */
7138
7196
  var WorkspaceMenu = function WorkspaceMenu(_ref) {
7139
- var isOpen = _ref.isOpen,
7140
- _ref$hideBackdrop = _ref.hideBackdrop,
7197
+ var _ref$hideBackdrop = _ref.hideBackdrop,
7141
7198
  hideBackdrop = _ref$hideBackdrop === void 0 ? false : _ref$hideBackdrop,
7142
7199
  closeMenu = _ref.closeMenu;
7143
7200
  var toolContainer = /*#__PURE__*/React__default.createElement(ToolContainer, {
@@ -7157,7 +7214,7 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
7157
7214
  // Enable hiding backdrop from snapshot tests
7158
7215
  toolContainer : ( /*#__PURE__*/React__default.createElement(Backdrop, {
7159
7216
  "data-testid": "workspaceMenuBackdrop",
7160
- open: isOpen,
7217
+ open: true,
7161
7218
  sx: {
7162
7219
  '&.MuiBackdrop-root': {
7163
7220
  top: '40px'
@@ -7213,8 +7270,7 @@ var WorkspaceMenuButton = function WorkspaceMenuButton(_ref) {
7213
7270
  }
7214
7271
  }
7215
7272
  }
7216
- }, /*#__PURE__*/React__default.createElement(PresetWorkspace, null))), /*#__PURE__*/React__default.createElement(WorkspaceMenu, {
7217
- isOpen: showMenu,
7273
+ }, /*#__PURE__*/React__default.createElement(PresetWorkspace, null))), showMenu && /*#__PURE__*/React__default.createElement(WorkspaceMenu, {
7218
7274
  closeMenu: onCloseMenu
7219
7275
  }));
7220
7276
  };
@@ -7235,6 +7291,22 @@ var WorkspaceMenuButton = function WorkspaceMenuButton(_ref) {
7235
7291
  * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
7236
7292
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
7237
7293
  * */
7294
+ var FetchInitialPresets$1 = function FetchInitialPresets() {
7295
+ var dispatch = useDispatch();
7296
+ var fetchInitialPresets = React__default.useCallback(function () {
7297
+ dispatch(workspaceListActions.fetchWorkspaceList({}));
7298
+ }, [dispatch]);
7299
+ var workspacePresets = useSelector(function (store) {
7300
+ return getWorkspaceList(store);
7301
+ });
7302
+ React__default.useEffect(function () {
7303
+ if (!workspacePresets.length) {
7304
+ fetchInitialPresets();
7305
+ }
7306
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7307
+ }, []);
7308
+ return null;
7309
+ };
7238
7310
  var WorkspaceMenuButtonConnect = function WorkspaceMenuButtonConnect() {
7239
7311
  var dispatch = useDispatch();
7240
7312
  var setListDialogOpen = React__default.useCallback(function (isListDialogOpen) {
@@ -7245,10 +7317,10 @@ var WorkspaceMenuButtonConnect = function WorkspaceMenuButtonConnect() {
7245
7317
  var isWorkspaceListDialogOpen = useSelector(function (store) {
7246
7318
  return getIsWorkspaceListDialogOpen(store);
7247
7319
  });
7248
- return /*#__PURE__*/React__default.createElement(WorkspaceMenuButton, {
7320
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FetchInitialPresets$1, null), /*#__PURE__*/React__default.createElement(WorkspaceMenuButton, {
7249
7321
  showMenu: isWorkspaceListDialogOpen,
7250
7322
  onToggleDialog: setListDialogOpen
7251
- });
7323
+ }));
7252
7324
  };
7253
7325
 
7254
7326
  /* *
@@ -8092,4 +8164,4 @@ var WorkspaceDetail = function WorkspaceDetail(_ref) {
8092
8164
  }))))), /*#__PURE__*/React.createElement(MapPresetsFormDialogConnect, null));
8093
8165
  };
8094
8166
 
8095
- export { ComponentsLookUpWrapper, WorkspaceDetail, WorkspaceErrorType, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, workspaceActions as actions, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, emptyMapWorkspace, getWorkspaceRouteUrl, selectors, viewPresetActions, workspaceListActions, workspaceModuleConfig, reducer$1 as workspaceReducer, routes as workspaceRoutes };
8167
+ export { ComponentsLookUpWrapper, WorkspaceDetail, WorkspaceErrorType, WorkspaceModuleProvider, WorkspacePresetAction, WorkspaceTopBar, WorkspaceViewConnect, WorkspaceWrapperProviderWithStore, workspaceActions as actions, createBalancedMosaicNode, createCustomEmptyMapWorkspace, defaultAuthConfig, emptyMapWorkspace, getWorkspaceRouteUrl, selectors$1 as selectors, viewPresetActions, workspaceListActions, workspaceModuleConfig, reducer$1 as workspaceReducer, routes as workspaceRoutes };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/workspace",
3
- "version": "9.10.1",
3
+ "version": "9.11.0",
4
4
  "description": "GeoWeb Workspace library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -11,31 +11,30 @@
11
11
  "react-redux": "^8.1.3",
12
12
  "@opengeoweb/shared": "*",
13
13
  "@mui/material": "~5.15.11",
14
- "@opengeoweb/form-fields": "*",
15
14
  "@opengeoweb/store": "*",
16
15
  "@opengeoweb/api": "*",
17
16
  "react-hook-form": "^7.50.1",
18
- "@opengeoweb/core": "*",
19
17
  "@opengeoweb/theme": "*",
20
18
  "@reduxjs/toolkit": "^1.9.7",
21
- "@opengeoweb/timeseries": "*",
22
- "@opengeoweb/authentication": "*",
23
19
  "@opengeoweb/snackbar": "*",
24
20
  "react-window": "^1.8.10",
25
21
  "@mui/system": "^5.15.1",
26
- "redux-saga": "^1.2.3",
27
- "react-mosaic-component": "^6.1.0",
28
22
  "lodash": "^4.17.21",
29
23
  "@redux-eggs/core": "^2.2.0",
30
24
  "@redux-eggs/redux-toolkit": "^2.2.0",
31
25
  "@redux-eggs/saga-extension": "^2.2.0",
32
26
  "immer": "^10.0.3",
33
27
  "axios": "1.5.0",
28
+ "react-virtualized-auto-sizer": "^1.0.21",
29
+ "react-mosaic-component": "^6.1.0",
30
+ "redux-saga": "^1.3.0",
31
+ "@opengeoweb/form-fields": "*",
32
+ "@opengeoweb/timeseries": "*",
33
+ "@opengeoweb/authentication": "*",
34
+ "@opengeoweb/core": "*",
34
35
  "@opengeoweb/taf": "*",
35
36
  "@opengeoweb/sigmet-airmet": "*",
36
- "@opengeoweb/warnings": "*",
37
- "react-virtualized-auto-sizer": "^1.0.21",
38
- "@opengeoweb/timeslider": "*"
37
+ "@opengeoweb/warnings": "*"
39
38
  },
40
39
  "peerDependencies": {
41
40
  "react": "18"
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  export interface WorkspaceMenuProps {
3
- isOpen: boolean;
4
3
  hideBackdrop?: boolean;
5
4
  closeMenu?: () => void;
6
5
  }
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ interface LoadingIndicatorProps {
3
+ loading: boolean;
4
+ }
5
+ export declare const LoadingIndicator: React.FC<LoadingIndicatorProps>;
6
+ export {};
@@ -1,24 +1,64 @@
1
1
  import type { AppStore } from '../store';
2
2
  import { ViewPresetListItem } from '../workspace/types';
3
- import { ViewPresetDialog, ViewPresetError, ViewPresetState, ViewPresetsListFilter } from './types';
3
+ import { ViewPresetEntity, ViewPresetError, ViewPresetState } from './types';
4
4
  export declare const getViewPresetsStore: (store: AppStore) => ViewPresetState;
5
- export declare const getViewPresets: (state: AppStore) => import("./types").ViewPresetEntity[], getViewPresetById: (state: AppStore, id: import("@reduxjs/toolkit").EntityId) => import("./types").ViewPresetEntity | undefined;
6
- export declare const getViewPresetsIsFetching: (store: AppStore, panelId: string) => boolean;
7
- export declare const getViewPresetsError: (store: AppStore, panelId: string) => ViewPresetError | undefined;
8
- export declare const getViewPresetDetailError: (store: AppStore, panelId: string) => string | undefined;
9
- export declare const getViewPresetListError: (store: AppStore, panelId: string) => string | undefined;
10
- export declare const getViewPresetHasChanges: (store: AppStore, panelId: string) => boolean | undefined;
11
- export declare const getViewPresetActiveId: (store: AppStore, panelId: string) => string | undefined;
12
- export declare const getViewPresetPanelId: (store: AppStore, mapId: string) => string;
13
- export declare const getDialogOptions: (store: AppStore) => ViewPresetDialog | undefined;
14
- export declare const getIsViewPresetListDialogOpen: (store: AppStore, panelId: string) => boolean | undefined;
15
- export declare const getViewPresetListFiltersForView: ((state: AppStore, id: import("@reduxjs/toolkit").EntityId) => ViewPresetsListFilter[]) & import("reselect").OutputSelectorFields<(args_0: import("./types").ViewPresetEntity | undefined) => ViewPresetsListFilter[], {
5
+ export declare const getViewPresets: (state: AppStore) => ViewPresetEntity[], getViewPresetById: (state: AppStore, id: import("@reduxjs/toolkit").EntityId) => ViewPresetEntity | undefined;
6
+ export declare const getViewPresetsIsFetching: ((state: AppStore, id: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined, args_1: string) => boolean, {
16
7
  clearCache: () => void;
17
8
  }> & {
18
9
  clearCache: () => void;
19
10
  };
20
- export declare const getViewPresetListSearchQueryForView: (store: AppStore, panelId: string) => string;
21
- export declare const getViewPresetListFilterResultsForView: ((state: AppStore, id: import("@reduxjs/toolkit").EntityId) => ViewPresetListItem[]) & import("reselect").OutputSelectorFields<(args_0: import("./types").ViewPresetEntity | undefined) => ViewPresetListItem[], {
11
+ export declare const getViewPresetsError: ((state: AppStore, id: string) => ViewPresetError) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined, args_1: string) => ViewPresetError, {
12
+ clearCache: () => void;
13
+ }> & {
14
+ clearCache: () => void;
15
+ };
16
+ export declare const getViewPresetDetailError: ((state: AppStore, id: string) => string | undefined) & import("reselect").OutputSelectorFields<(args_0: ViewPresetError, args_1: string) => string | undefined, {
17
+ clearCache: () => void;
18
+ }> & {
19
+ clearCache: () => void;
20
+ };
21
+ export declare const getViewPresetListError: ((state: AppStore, id: string) => string | undefined) & import("reselect").OutputSelectorFields<(args_0: ViewPresetError, args_1: string) => string | undefined, {
22
+ clearCache: () => void;
23
+ }> & {
24
+ clearCache: () => void;
25
+ };
26
+ export declare const getViewPresetHasChanges: ((state: AppStore, id: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined, args_1: string) => boolean, {
27
+ clearCache: () => void;
28
+ }> & {
29
+ clearCache: () => void;
30
+ };
31
+ export declare const getViewPresetActiveId: ((state: AppStore, id: string) => string) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined, args_1: string) => string, {
32
+ clearCache: () => void;
33
+ }> & {
34
+ clearCache: () => void;
35
+ };
36
+ export declare const getViewPresetPanelId: ((state: AppStore, mapId: string) => string) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity[], args_1: string) => string, {
37
+ clearCache: () => void;
38
+ }> & {
39
+ clearCache: () => void;
40
+ };
41
+ export declare const getDialogOptions: ((state: AppStore) => import("./types").ViewPresetDialog | undefined) & import("reselect").OutputSelectorFields<(args_0: ViewPresetState, args_1: AppStore) => import("./types").ViewPresetDialog | undefined, {
42
+ clearCache: () => void;
43
+ }> & {
44
+ clearCache: () => void;
45
+ };
46
+ export declare const getIsViewPresetListDialogOpen: ((state: AppStore, id: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined, args_1: string) => boolean, {
47
+ clearCache: () => void;
48
+ }> & {
49
+ clearCache: () => void;
50
+ };
51
+ export declare const getViewPresetListFiltersForView: ((state: AppStore, id: string) => import("./types").ViewPresetsListFilter[]) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined, args_1: string) => import("./types").ViewPresetsListFilter[], {
52
+ clearCache: () => void;
53
+ }> & {
54
+ clearCache: () => void;
55
+ };
56
+ export declare const getViewPresetListSearchQueryForView: ((state: AppStore, id: string) => string) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined, args_1: string) => string, {
57
+ clearCache: () => void;
58
+ }> & {
59
+ clearCache: () => void;
60
+ };
61
+ export declare const getViewPresetListFilterResultsForView: ((state: AppStore, id: import("@reduxjs/toolkit").EntityId) => ViewPresetListItem[]) & import("reselect").OutputSelectorFields<(args_0: ViewPresetEntity | undefined) => ViewPresetListItem[], {
22
62
  clearCache: () => void;
23
63
  }> & {
24
64
  clearCache: () => void;
@@ -1,4 +1,4 @@
1
- import { WorkspaceState, WorkspaceViewType } from './types';
1
+ import { WorkspaceState } from './types';
2
2
  import { AppStore } from '../store';
3
3
  /**
4
4
  * Gets workspace state
@@ -40,7 +40,11 @@ export declare const getMosaicNode: ((state: AppStore) => import("react-mosaic-c
40
40
  * @param {string} viewId viewId: string - view id
41
41
  * @returns {object} returnType: WorkspaceViewType
42
42
  */
43
- export declare const getViewById: (store: AppStore, viewId: string) => WorkspaceViewType | undefined;
43
+ export declare const getViewById: ((state: AppStore, viewId: string) => import("./types").WorkspaceViewType | undefined) & import("reselect").OutputSelectorFields<(args_0: WorkspaceState, args_1: string) => import("./types").WorkspaceViewType | undefined, {
44
+ clearCache: () => void;
45
+ }> & {
46
+ clearCache: () => void;
47
+ };
44
48
  /**
45
49
  * Gets all view ids
46
50
  *
@@ -59,7 +63,7 @@ export declare const getViewIds: ((state: AppStore) => string[]) & import("resel
59
63
  * @param {string} viewId viewId: string - view id
60
64
  * @returns {boolean} returnType: boolean
61
65
  */
62
- export declare const getShouldPreventClose: ((state: AppStore, viewId: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: WorkspaceViewType | undefined) => boolean, {
66
+ export declare const getShouldPreventClose: ((state: AppStore, viewId: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: import("./types").WorkspaceViewType | undefined) => boolean, {
63
67
  clearCache: () => void;
64
68
  }> & {
65
69
  clearCache: () => void;
@@ -163,7 +167,7 @@ export declare const getViewPresetToSendToBackend: ((state: any, viewId: any) =>
163
167
  };
164
168
  componentType: "Map";
165
169
  keywords: string;
166
- }) & import("reselect").OutputSelectorFields<(args_0: WorkspaceViewType | undefined, args_1: import("@opengeoweb/store").MapPreset, args_2: string[]) => {
170
+ }) & import("reselect").OutputSelectorFields<(args_0: import("./types").WorkspaceViewType | undefined, args_1: import("@opengeoweb/store").MapPreset, args_2: string[]) => {
167
171
  id: string | undefined;
168
172
  scope: import("./types").PresetScope;
169
173
  title: string;
@@ -1,14 +1,40 @@
1
- import { WorkspaceListFilter, WorkspaceActionDialogType, WorkspaceListState, WorkspaceListError } from './types';
1
+ import { WorkspaceListState } from './types';
2
2
  import { AppStore } from '../store';
3
3
  export declare const getWorkspaceListStore: (store: AppStore) => WorkspaceListState;
4
- export declare const getIsWorkspaceListFetching: (store: AppStore) => boolean;
5
- export declare const getWorkspaceListError: (store: AppStore) => WorkspaceListError;
6
4
  export declare const getWorkspaceList: (state: AppStore) => import("../workspace/types").WorkspacePresetListItem[];
7
- export declare const getWorkspaceActionDialogDetails: (store: AppStore) => WorkspaceActionDialogType | boolean;
8
- export declare const getIsWorkspaceListDialogOpen: (store: AppStore) => boolean;
9
- export declare const getWorkspaceListFilters: ((state: AppStore) => WorkspaceListFilter[]) & import("reselect").OutputSelectorFields<(args_0: WorkspaceListState) => WorkspaceListFilter[], {
5
+ export declare const getIsWorkspaceListFetching: ((state: AppStore) => boolean) & import("reselect").OutputSelectorFields<(args_0: WorkspaceListState, args_1: AppStore) => boolean, {
6
+ clearCache: () => void;
7
+ }> & {
8
+ clearCache: () => void;
9
+ };
10
+ export declare const getWorkspaceListError: ((state: AppStore) => {
11
+ type: import("./types").WorkspaceListErrorType;
12
+ message: string;
13
+ } | undefined) & import("reselect").OutputSelectorFields<(args_0: WorkspaceListState, args_1: AppStore) => {
14
+ type: import("./types").WorkspaceListErrorType;
15
+ message: string;
16
+ } | undefined, {
17
+ clearCache: () => void;
18
+ }> & {
19
+ clearCache: () => void;
20
+ };
21
+ export declare const getWorkspaceActionDialogDetails: ((state: AppStore) => false | import("./types").WorkspaceActionDialogType) & import("reselect").OutputSelectorFields<(args_0: WorkspaceListState, args_1: AppStore) => false | import("./types").WorkspaceActionDialogType, {
22
+ clearCache: () => void;
23
+ }> & {
24
+ clearCache: () => void;
25
+ };
26
+ export declare const getIsWorkspaceListDialogOpen: ((state: AppStore) => boolean) & import("reselect").OutputSelectorFields<(args_0: WorkspaceListState, args_1: AppStore) => boolean, {
27
+ clearCache: () => void;
28
+ }> & {
29
+ clearCache: () => void;
30
+ };
31
+ export declare const getWorkspaceListFilters: ((state: AppStore) => import("./types").WorkspaceListFilter[]) & import("reselect").OutputSelectorFields<(args_0: WorkspaceListState, args_1: AppStore) => import("./types").WorkspaceListFilter[], {
32
+ clearCache: () => void;
33
+ }> & {
34
+ clearCache: () => void;
35
+ };
36
+ export declare const getWorkspaceListSearchQuery: ((state: AppStore) => string) & import("reselect").OutputSelectorFields<(args_0: WorkspaceListState, args_1: AppStore) => string, {
10
37
  clearCache: () => void;
11
38
  }> & {
12
39
  clearCache: () => void;
13
40
  };
14
- export declare const getWorkspaceListSearchQuery: (store: AppStore) => string;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ComponentsLookUpPayload as CoreComponentsLookUpPayload } from '@opengeoweb/core';
3
3
  import { ComponentsLookUpPayload as TimeseriesComponentsLookUpPayload } from '@opengeoweb/timeseries';
4
- import { ComponentsLookUpPayload as TimesliderComponentsLookUpPayload } from '@opengeoweb/timeslider';
5
4
  import { ComponentsLookUpPayload as TafComponentsLookUpPayload } from '@opengeoweb/taf';
6
5
  import { SigmetComponentsLookUpPayload, AirmetComponentsLookUpPayload } from '@opengeoweb/sigmet-airmet';
7
6
  import { ComponentsLookUpPayload as WarningListComponentsLookUpPayLoad } from '@opengeoweb/warnings';
@@ -10,4 +9,4 @@ import { ComponentsLookUpPayload as WarningListComponentsLookUpPayLoad } from '@
10
9
  * @param payload
11
10
  * @returns
12
11
  */
13
- export declare const componentsLookUp: (payload: CoreComponentsLookUpPayload | TimeseriesComponentsLookUpPayload | TafComponentsLookUpPayload | SigmetComponentsLookUpPayload | AirmetComponentsLookUpPayload | WarningListComponentsLookUpPayLoad | TimesliderComponentsLookUpPayload) => React.ReactElement;
12
+ export declare const componentsLookUp: (payload: CoreComponentsLookUpPayload | TimeseriesComponentsLookUpPayload | TafComponentsLookUpPayload | SigmetComponentsLookUpPayload | AirmetComponentsLookUpPayload | WarningListComponentsLookUpPayLoad) => React.ReactElement;