@opengeoweb/core 9.36.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -76,6 +76,6 @@ const ConnectedMapWithTimeSlider = ({ mapId }) => {
76
76
  export default ConnectedMapWithTimeSlider;
77
77
  ```
78
78
 
79
- ## Documentation
79
+ ### TypeScript Documentation
80
80
 
81
- https://opengeoweb.gitlab.io/opengeoweb/docs/core/
81
+ - [TypeScript Docs](https://opengeoweb.gitlab.io/opengeoweb/typescript-docs/core/)
package/index.esm.js CHANGED
@@ -12,7 +12,7 @@ import { useDispatch, useSelector, connect, useStore, Provider } from 'react-red
12
12
  import { ReactSortable } from 'react-sortablejs';
13
13
  import Sortable from 'sortablejs';
14
14
  import { layerTypes, layerUtils, mapSelectors, layerActions, layerSelectors, serviceSelectors, serviceActions, mapActions, mapEnums, uiSelectors, uiTypes, useSetupDialog, filterLayers, getUserAddedServices, uiActions, genericSelectors, genericActions, drawtoolSelectors, syncConstants, loadingIndicatorActions, syncGroupsSelectors, defaultLayers, mapStoreActions, getSingularDrawtoolDrawLayerId, syncGroupsSelector, syncGroupsActions, routerUtils } from '@opengeoweb/store';
15
- import { webmapUtils, WMGetServiceFromStore, getCapabilities, LayerType, handleDateUtilsISOString, wmServiceListener, EVENT_GETCAPABILITIES_START, EVENT_GETCAPABILITIES_READY, getWMSGetFeatureInfoRequestURL, WMLayer } from '@opengeoweb/webmap';
15
+ import { webmapUtils, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, LayerType, getWMSServiceId, handleDateUtilsISOString, wmServiceListener, EVENT_GETCAPABILITIES_START, EVENT_GETCAPABILITIES_READY, getWMSGetFeatureInfoRequestURL, WMLayer } from '@opengeoweb/webmap';
16
16
  import { Box as Box$1, styled as styled$1 } from '@mui/system';
17
17
  import _, { isEqual, debounce, range } from 'lodash';
18
18
  import { LayerSelectButtonConnect, LayerSelectConnect } from '@opengeoweb/layer-select';
@@ -900,9 +900,7 @@ var layerManagerStyle = {
900
900
  // opacity
901
901
  '.column-4': Object.assign({
902
902
  width: "calc(" + flexibleAreaWidth + " * 0.15)"
903
- }, columnCollapseStyle, {
904
- flexGrow: 0
905
- }),
903
+ }, columnCollapseStyle),
906
904
  // dimensions
907
905
  '.column-5': Object.assign({
908
906
  width: "calc(" + flexibleAreaWidth + " * 0.35)"
@@ -1070,30 +1068,39 @@ var RowItemCollapse$1 = function RowItemCollapse(_ref) {
1070
1068
  var _useCoreTranslation = useCoreTranslation(),
1071
1069
  t = _useCoreTranslation.t;
1072
1070
  var hoverId = columnClasses.columnHeader + "-" + className;
1073
- return jsx(CustomTooltip, {
1074
- title: collapsedColumns != null && collapsedColumns[className] ? t('column-expand', {
1075
- title: title
1076
- }) : t('column-collapse'),
1077
- children: jsx(Grid2, {
1078
- id: hoverId,
1079
- className: columnClasses.columnHeader + " " + className,
1080
- style: Object.assign({}, (collapsedColumns == null ? void 0 : collapsedColumns[className]) && {
1081
- width: '24px',
1082
- flexGrow: 0
1083
- }),
1084
- onClick: function onClick() {
1085
- onToggleCollapsed(className);
1086
- },
1087
- children: collapsedColumns != null && collapsedColumns[className] ? jsx(ColumnCollapsed, {}) : jsxs(Fragment, {
1088
- children: [jsx(Box, {
1089
- sx: styles$3.text,
1090
- children: title
1091
- }), jsx(ColumnCollapse, {
1092
- className: "column-hover-icon"
1093
- })]
1071
+ return jsx(Box, {
1072
+ id: hoverId,
1073
+ style: Object.assign({}, (collapsedColumns == null ? void 0 : collapsedColumns[className]) && {
1074
+ width: '24px',
1075
+ flexGrow: 0
1076
+ }),
1077
+ className: columnClasses.columnHeader + " " + className,
1078
+ children: jsx(CustomTooltip, {
1079
+ title: collapsedColumns != null && collapsedColumns[className] ? t('column-expand', {
1080
+ title: title
1081
+ }) : t('column-collapse'),
1082
+ children: jsx(Grid2, {
1083
+ className: columnClasses.columnHeader + " " + className,
1084
+ style: Object.assign({}, (collapsedColumns == null ? void 0 : collapsedColumns[className]) && {
1085
+ width: '24px',
1086
+ flexGrow: 0
1087
+ }),
1088
+ onClick: function onClick() {
1089
+ var _document$getElementB;
1090
+ onToggleCollapsed(className);
1091
+ (_document$getElementB = document.getElementById(hoverId)) == null || _document$getElementB.dispatchEvent(new Event('mouseleave'));
1092
+ },
1093
+ children: collapsedColumns != null && collapsedColumns[className] ? jsx(ColumnCollapsed, {}) : jsxs(Fragment, {
1094
+ children: [jsx(Box, {
1095
+ sx: styles$3.text,
1096
+ children: title
1097
+ }), jsx(ColumnCollapse, {
1098
+ className: "column-hover-icon"
1099
+ })]
1100
+ })
1094
1101
  })
1095
- })
1096
- }, collapsedColumns != null && collapsedColumns[className] ? 'Expand' : 'Collapse');
1102
+ }, collapsedColumns != null && collapsedColumns[className] ? 'Expand' : 'Collapse')
1103
+ });
1097
1104
  };
1098
1105
  var styles$3 = {
1099
1106
  text: function text(theme) {
@@ -2834,10 +2841,13 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
2834
2841
  case 0:
2835
2842
  _context.prev = 0;
2836
2843
  _context.next = 3;
2837
- return getCapabilities.getLayersFlattenedFromService(serviceUrl);
2844
+ return queryWMSLayers(serviceUrl);
2838
2845
  case 3:
2839
2846
  _layers = _context.sent;
2840
- wmService = WMGetServiceFromStore(serviceUrl);
2847
+ _context.next = 6;
2848
+ return queryWMSServiceInfo(serviceUrl);
2849
+ case 6:
2850
+ wmService = _context.sent;
2841
2851
  serviceSetLayers({
2842
2852
  id: wmService.id,
2843
2853
  name: wmService.title,
@@ -2846,17 +2856,17 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
2846
2856
  scope: 'user',
2847
2857
  "abstract": wmService["abstract"]
2848
2858
  });
2849
- _context.next = 11;
2859
+ _context.next = 13;
2850
2860
  break;
2851
- case 8:
2852
- _context.prev = 8;
2861
+ case 10:
2862
+ _context.prev = 10;
2853
2863
  _context.t0 = _context["catch"](0);
2854
2864
  console.warn(_context.t0.message);
2855
- case 11:
2865
+ case 13:
2856
2866
  case "end":
2857
2867
  return _context.stop();
2858
2868
  }
2859
- }, _callee, null, [[0, 8]]);
2869
+ }, _callee, null, [[0, 10]]);
2860
2870
  }));
2861
2871
  return function addService(_x) {
2862
2872
  return _ref2.apply(this, arguments);
@@ -3839,17 +3849,40 @@ var WMSLayerTree = function WMSLayerTree(_ref) {
3839
3849
  React.useEffect(function () {
3840
3850
  var isMounted = true;
3841
3851
  setIsLoading(true);
3842
- getCapabilities.getLayersFromService(service.url, forceReload).then(function (layerTreeFromPromise) {
3843
- if (isMounted) {
3844
- setLayerTree(layerTreeFromPromise);
3845
- setIsLoading(false);
3846
- }
3847
- })["catch"](function (error) {
3848
- if (isMounted) {
3849
- setLayerTree(error.toString());
3850
- setIsLoading(false);
3851
- }
3852
- });
3852
+ var makeServiceQuery = /*#__PURE__*/function () {
3853
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
3854
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
3855
+ while (1) switch (_context.prev = _context.next) {
3856
+ case 0:
3857
+ if (!forceReload) {
3858
+ _context.next = 3;
3859
+ break;
3860
+ }
3861
+ _context.next = 3;
3862
+ return invalidateWMSGetCapabilities(service.url);
3863
+ case 3:
3864
+ queryWMSLayersTree(service.url).then(function (layerTreeFromPromise) {
3865
+ if (isMounted) {
3866
+ setLayerTree(layerTreeFromPromise);
3867
+ setIsLoading(false);
3868
+ }
3869
+ })["catch"](function (error) {
3870
+ if (isMounted) {
3871
+ setLayerTree(error.toString());
3872
+ setIsLoading(false);
3873
+ }
3874
+ });
3875
+ case 4:
3876
+ case "end":
3877
+ return _context.stop();
3878
+ }
3879
+ }, _callee);
3880
+ }));
3881
+ return function makeServiceQuery() {
3882
+ return _ref2.apply(this, arguments);
3883
+ };
3884
+ }();
3885
+ void makeServiceQuery();
3853
3886
  return function () {
3854
3887
  isMounted = false;
3855
3888
  setForceReload(false);
@@ -4295,7 +4328,7 @@ var AddLayersPopup = function AddLayersPopup(_ref) {
4295
4328
  // Check if valid URL was passed
4296
4329
  } else if (validateServiceUrl(serviceURL)) {
4297
4330
  // Check if service is WMS server
4298
- getCapabilities.getLayersFromService(serviceURL).then(function (layerTreeFromPromise) {
4331
+ queryWMSLayersTree(serviceURL).then(function (layerTreeFromPromise) {
4299
4332
  // Shorten URL as a naming backup
4300
4333
  var shortenedURL = serviceURL.substring(serviceURL.indexOf('//') + 2, serviceURL.indexOf('?'));
4301
4334
  handleAddToList(layerTreeFromPromise.title || layerTreeFromPromise.name || shortenedURL);
@@ -4895,36 +4928,45 @@ var LayerManager = function LayerManager(_ref) {
4895
4928
  });
4896
4929
  };
4897
4930
 
4898
- /* *
4899
- * Licensed under the Apache License, Version 2.0 (the "License");
4900
- * you may not use this file except in compliance with the License.
4901
- * You may obtain a copy of the License at
4902
- *
4903
- * http://www.apache.org/licenses/LICENSE-2.0
4904
- *
4905
- * Unless required by applicable law or agreed to in writing, software
4906
- * distributed under the License is distributed on an "AS IS" BASIS,
4907
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4908
- * See the License for the specific language governing permissions and
4909
- * limitations under the License.
4910
- *
4911
- * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
4912
- * Copyright 2023 - Finnish Meteorological Institute (FMI)
4913
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
4914
- * */
4915
- var getServicesToLoad = function getServicesToLoad(services) {
4916
- return services.map(function (service) {
4917
- var wmService = WMGetServiceFromStore(service.url);
4918
- var scope = service.scope ? service.scope : 'system';
4919
- return {
4920
- id: wmService.id,
4921
- name: service.name,
4922
- url: service.url,
4923
- scope: scope,
4924
- "abstract": service["abstract"] || wmService["abstract"]
4925
- };
4926
- });
4927
- };
4931
+ var getServicesToLoad = /*#__PURE__*/function () {
4932
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(services) {
4933
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
4934
+ while (1) switch (_context2.prev = _context2.next) {
4935
+ case 0:
4936
+ return _context2.abrupt("return", Promise.all(services.map( /*#__PURE__*/function () {
4937
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(service) {
4938
+ var scope;
4939
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
4940
+ while (1) switch (_context.prev = _context.next) {
4941
+ case 0:
4942
+ scope = service.scope ? service.scope : 'system';
4943
+ return _context.abrupt("return", {
4944
+ id: getWMSServiceId(service.url),
4945
+ name: service.name,
4946
+ url: service.url,
4947
+ scope: scope,
4948
+ "abstract": service["abstract"]
4949
+ });
4950
+ case 2:
4951
+ case "end":
4952
+ return _context.stop();
4953
+ }
4954
+ }, _callee);
4955
+ }));
4956
+ return function (_x2) {
4957
+ return _ref2.apply(this, arguments);
4958
+ };
4959
+ }())));
4960
+ case 1:
4961
+ case "end":
4962
+ return _context2.stop();
4963
+ }
4964
+ }, _callee2);
4965
+ }));
4966
+ return function getServicesToLoad(_x) {
4967
+ return _ref.apply(this, arguments);
4968
+ };
4969
+ }();
4928
4970
  var useFetchServices = function useFetchServices(dialogType, preloadedServices, shouldDisableFetch) {
4929
4971
  if (preloadedServices === void 0) {
4930
4972
  preloadedServices = preloadedDefaultMapServices;
@@ -4947,7 +4989,7 @@ var useFetchServices = function useFetchServices(dialogType, preloadedServices,
4947
4989
  React.useEffect(function () {
4948
4990
  if (!shouldDisableFetch && isOpenInStore && preloadedServices && preloadedServices.length > 0 && !services.length) {
4949
4991
  var allServicesToLoad = mergePresetsAndUserAddedServices(preloadedServices, getUserAddedServices());
4950
- fetchInitialServices(getServicesToLoad(allServicesToLoad));
4992
+ void getServicesToLoad(allServicesToLoad).then(fetchInitialServices);
4951
4993
  }
4952
4994
  // eslint-disable-next-line react-hooks/exhaustive-deps
4953
4995
  }, [isOpenInStore, services]);
@@ -5601,6 +5643,7 @@ var ORIGIN_REACTMAPVIEWCONNECT_ONMAPCHANGEDIMENSION = 'ORIGIN_REACTMAPVIEWCONNEC
5601
5643
  * ```<MapViewConnect mapId={mapId} controls={{ zoomControls: false }} displayTimeInMap={false} showScaleBar={false}/>```
5602
5644
  */
5603
5645
  var MapViewConnect = function MapViewConnect(_ref) {
5646
+ var _linkedFeatures$conca;
5604
5647
  var mapId = _ref.mapId,
5605
5648
  children = _ref.children,
5606
5649
  props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
@@ -5625,6 +5668,10 @@ var MapViewConnect = function MapViewConnect(_ref) {
5625
5668
  var _store$syncronization;
5626
5669
  return genericSelectors.selectLinkedFeatures((_store$syncronization = store.syncronizationGroupStore) == null ? void 0 : _store$syncronization.linkedState, mapId);
5627
5670
  });
5671
+ var linkedFormFeatures = useSelector(function (store) {
5672
+ var _store$syncronization2;
5673
+ return genericSelectors.selectLinkedFormFeatures((_store$syncronization2 = store.syncronizationGroupStore) == null ? void 0 : _store$syncronization2.linkedState, mapId);
5674
+ });
5628
5675
  var bbox = useSelector(function (store) {
5629
5676
  return mapSelectors.getBbox(store, mapId);
5630
5677
  });
@@ -5884,7 +5931,7 @@ var MapViewConnect = function MapViewConnect(_ref) {
5884
5931
  });
5885
5932
  }
5886
5933
  }, layer), layer.id);
5887
- }), linkedFeatures == null ? void 0 : linkedFeatures.map(function (feature) {
5934
+ }), (_linkedFeatures$conca = linkedFeatures.concat(linkedFormFeatures)) == null ? void 0 : _linkedFeatures$conca.map(function (feature) {
5888
5935
  return jsx(MapViewLayer, {
5889
5936
  id: feature.id,
5890
5937
  geojson: feature == null ? void 0 : feature.geoJSON,
@@ -7964,7 +8011,7 @@ var useGetLatestReferenceTime = function useGetLatestReferenceTime(inputLayer) {
7964
8011
  setLatestReferenceTime = _React$useState[1];
7965
8012
  React.useEffect(function () {
7966
8013
  var wmLayer = new WMLayer(Object.assign({}, inputLayer));
7967
- wmLayer.parseLayerPromise().then(function (layer) {
8014
+ wmLayer.parseLayer().then(function (layer) {
7968
8015
  var refTimeDim = layer.getDimension('reference_time');
7969
8016
  var lastRefTime = refTimeDim.getLastValue();
7970
8017
  setLatestReferenceTime(lastRefTime);
@@ -8071,7 +8118,7 @@ var useGetReferenceTimes = function useGetReferenceTimes(inputLayer) {
8071
8118
  React.useEffect(function () {
8072
8119
  var referenceTimes = [];
8073
8120
  var wmLayer = new WMLayer(Object.assign({}, inputLayer));
8074
- wmLayer.parseLayerPromise().then(function (layer) {
8121
+ wmLayer.parseLayer().then(function (layer) {
8075
8122
  var refTimeDim = layer.getDimension('reference_time');
8076
8123
  /* Loop through all values of the dimension.
8077
8124
  A map cannot be used for iterating, as the dimension values are not in an array (it is an API). */
@@ -8857,6 +8904,13 @@ var languages = [{
8857
8904
  code: 'no',
8858
8905
  flag: jsx(FlagNorway, {})
8859
8906
  }];
8907
+ var languageLocalStorageKey = 'language';
8908
+ var getLanguageFromLocalStorage = function getLanguageFromLocalStorage() {
8909
+ return window.localStorage.getItem(languageLocalStorageKey);
8910
+ };
8911
+ var saveLanguageToLocalStorage = function saveLanguageToLocalStorage(languageKey) {
8912
+ window.localStorage.setItem(languageLocalStorageKey, languageKey);
8913
+ };
8860
8914
  var LanguageSelect = function LanguageSelect(_ref) {
8861
8915
  var _languages$find;
8862
8916
  var onChangeLanguage = _ref.onChangeLanguage,
@@ -8940,4 +8994,4 @@ var LanguageSelect = function LanguageSelect(_ref) {
8940
8994
  });
8941
8995
  };
8942
8996
 
8943
- export { CORE_NAMESPACE, ConfigurableMapConnect, CoreI18nProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, MapViewConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, RouterWrapperConnect, SearchControlButtonConnect, SearchControlConnect, SearchDialog, SentryRecordButton, SyncGroupViewerConnect, ThemeWrapperWithModules, TimeSliderConnect, ZoomControlConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, testLayers, useFetchServices, useUpdateTimeSpan, useUpdateTimestep };
8997
+ export { CORE_NAMESPACE, ConfigurableMapConnect, CoreI18nProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, MapViewConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, RouterWrapperConnect, SearchControlButtonConnect, SearchControlConnect, SearchDialog, SentryRecordButton, SyncGroupViewerConnect, ThemeWrapperWithModules, TimeSliderConnect, ZoomControlConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getLanguageFromLocalStorage, languageLocalStorageKey, saveLanguageToLocalStorage, testLayers, useFetchServices, useUpdateTimeSpan, useUpdateTimestep };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "9.36.0",
3
+ "version": "10.0.0",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -4,6 +4,9 @@ export declare const languages: {
4
4
  code: string;
5
5
  flag: React.ReactElement;
6
6
  }[];
7
+ export declare const languageLocalStorageKey = "language";
8
+ export declare const getLanguageFromLocalStorage: () => string | null;
9
+ export declare const saveLanguageToLocalStorage: (languageKey: string) => void;
7
10
  declare const LanguageSelect: React.FC<{
8
11
  onChangeLanguage: (currentLanguage: string) => void;
9
12
  isOpen?: boolean;
@@ -1 +1 @@
1
- export { default as LanguageSelect } from './LanguageSelect';
1
+ export { default as LanguageSelect, getLanguageFromLocalStorage, saveLanguageToLocalStorage, languageLocalStorageKey, } from './LanguageSelect';
@@ -71,7 +71,6 @@ export declare const layerManagerStyle: {
71
71
  width: string;
72
72
  };
73
73
  '.column-4': {
74
- flexGrow: number;
75
74
  height: string;
76
75
  alignContent: string;
77
76
  alignItems: string;
@@ -80,6 +79,7 @@ export declare const layerManagerStyle: {
80
79
  whiteSpace: string;
81
80
  overflow: string;
82
81
  color: string;
82
+ flexGrow: number;
83
83
  width: string;
84
84
  };
85
85
  '.column-5': {
@@ -1,4 +1,4 @@
1
1
  import { serviceTypes } from '@opengeoweb/store';
2
- export declare const getServicesToLoad: (services: serviceTypes.NoIdService[]) => serviceTypes.InitialService[];
2
+ export declare const getServicesToLoad: (services: serviceTypes.NoIdService[]) => Promise<serviceTypes.InitialService[]>;
3
3
  export declare const useFetchServices: (dialogType: string, preloadedServices?: serviceTypes.InitialService[] | undefined, shouldDisableFetch?: boolean) => void;
4
4
  export declare const mergePresetsAndUserAddedServices: (presets: serviceTypes.InitialService[], userAddedServices: serviceTypes.UserAddedServices) => serviceTypes.NoIdService[];
@@ -1,8 +1,24 @@
1
- import { WMLayer } from '@opengeoweb/webmap';
1
+ import { LayerType, WMLayer } from '@opengeoweb/webmap';
2
2
  import { layerTypes, serviceTypes } from '@opengeoweb/store';
3
- export declare const multiDimensionLayer: import("@opengeoweb/webmap").LayerOptions, WmdefaultReduxLayerRadarKNMI: WMLayer, defaultReduxLayerRadarKNMI: import("@opengeoweb/webmap").LayerFoundation & {
4
- styles: import("@opengeoweb/webmap").Style[];
5
- }, defaultReduxLayerRadarColor: import("@opengeoweb/webmap").LayerOptions, multiDimensionLayer3: import("@opengeoweb/webmap").LayerFoundation;
3
+ export declare const multiDimensionLayer: {
4
+ service: string;
5
+ id: string;
6
+ name: string;
7
+ title: string;
8
+ layerType: LayerType;
9
+ enabled: boolean;
10
+ dimensions: ({
11
+ name: string;
12
+ units: string;
13
+ currentValue: string;
14
+ values: string;
15
+ } | {
16
+ name: string;
17
+ units: string;
18
+ currentValue: string;
19
+ values?: undefined;
20
+ })[];
21
+ }, WmdefaultReduxLayerRadarKNMI: WMLayer, defaultReduxLayerRadarKNMI: import("@opengeoweb/webmap").LayerOptions, defaultReduxLayerRadarColor: import("@opengeoweb/webmap").LayerOptions, multiDimensionLayer3: import("@opengeoweb/webmap").LayerFoundation;
6
22
  export declare const flDimensionLayer: layerTypes.Layer;
7
23
  export declare const layerWithSingleDimensionValue: WMLayer;
8
24
  export declare const WmMultiDimensionLayer: WMLayer;