@opengeoweb/core 19.3.0 → 19.5.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
@@ -9,7 +9,7 @@ import { mapSelectors, layerSelectors, layerActions, layerTypes, filterLayers, m
9
9
  import i18n from 'i18next';
10
10
  import { useTranslation, Trans, I18nextProvider } from 'react-i18next';
11
11
  import { TIME_SLIDER_NAMESPACE, timesliderTranslations, defaultTimeSpan, AnimationLengthButton, AnimationLength, AutoUpdateButton, BackwardForwardStepButton, NowButton, handleSetNowEvent, PlayButton, defaultTimeStep, SpeedButton, TimeSpanButton, secondsPerPxFromCanvasWidth, getNewCenterOfFixedPointZoom, TimeStepButton, OptionsMenuButton, TimeSliderButtons, TimeSliderCurrentTimeBox, TimeSliderLegend, onsetNewDateDebounced, getFilteredTime, defaultSecondsPerPx, moveSelectedTimePx, TimeSlider } from '@opengeoweb/time-slider';
12
- import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE, webmapTranslations, WEBMAP_NAMESPACE, openLayersGetMapImageStore, LayerInfoButton, useGetWMLayerInstance, useEDRGetCollectionDetails, useStacCollection, getRendersAsStyles, defaultEdrStyles, LayerInfoDialog, MapControlButton, MapDimensionSelect, dimensionConfig, DimensionSelectDialog, DimensionSelectButton, Clock, LegendDialog, LegendButton, MapContext, emptyGeoJSON, MapFeatureClass, setMapCenter, makeTimeList, getIsInsideAcceptanceTime, OpenLayersLayer, isGeoJSONGeometryEmpty, OpenLayersFeatureLayer, OpenLayersMapDraw, MapMeasure, useSetIntervalWhenVisible, TimeContext, OpenLayersMapView, WMSLayer, genericOpenLayersFeatureStyle, OpenLayersGetFeatureInfo, MapControls, OpenLayersZoomControl, getLayerUpdateInfo, publicLayers } from '@opengeoweb/webmap-react';
12
+ import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE, webmapTranslations, WEBMAP_NAMESPACE, openLayersGetMapImageStore, LayerInfoButton, useStacCollection, useGetWMLayerInstance, useEDRGetCollectionDetails, getStacCollectionStyles, resolvePreferredStyleName, defaultEdrStyles, LayerInfoDialog, MapControlButton, MapDimensionSelect, dimensionConfig, DimensionSelectDialog, DimensionSelectButton, Clock, LegendDialog, LegendButton, MapContext, emptyGeoJSON, MapFeatureClass, setMapCenter, makeTimeList, getIsInsideAcceptanceTime, OpenLayersLayer, isGeoJSONGeometryEmpty, OpenLayersFeatureLayer, OpenLayersMapDraw, MapMeasure, useSetIntervalWhenVisible, TimeContext, OpenLayersMapView, WMSLayer, genericOpenLayersFeatureStyle, OpenLayersGetFeatureInfo, MapControls, OpenLayersZoomControl, getLayerUpdateInfo, publicLayers } from '@opengeoweb/webmap-react';
13
13
  import { Cached, Add, MapAdd, CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, DragHandle as DragHandle$1, None, FastForward, AutoUpdateActive, Both, Delete, Visibility, VisibilityOff, Copy, ZoomToLayer, Overlayers, WorldMapProjection, Layers, Search, Exclamation, MyLocation, Airplane, Region, Pinned, Close, ExitDomain, LocationInfo, Measure, Options, Info, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
14
14
  import { ReactSortable } from 'react-sortablejs';
15
15
  import Sortable from 'sortablejs';
@@ -23,7 +23,6 @@ import { bbox } from '@turf/turf';
23
23
  import proj4 from 'proj4';
24
24
  import { getIntersection } from 'ol/extent';
25
25
  import GeoJSON from 'ol/format/GeoJSON';
26
- import axios from 'axios';
27
26
  import { ImageWMS } from 'ol/source';
28
27
  import DOMPurify from 'dompurify';
29
28
  import { snackbarTypes, snackbarActions, SnackbarWrapperConnect } from '@opengeoweb/snackbar';
@@ -74,6 +73,10 @@ var en = {
74
73
  "layermanager-layer-duplicate-to-other-maps": "Copy layer to other maps",
75
74
  "layermanager-layer-remove-from-other-maps": "Remove layer from other maps",
76
75
  "layermanager-layer-zoom-to-extent": "Zoom to layer",
76
+ "layermanager-stac-layout-title": "Raster layout",
77
+ "layermanager-stac-layout-auto": "Automatic",
78
+ "layermanager-stac-layout-temporal": "One image per time",
79
+ "layermanager-stac-layout-spatial-tiles": "Spatially tiled images",
77
80
  "layermanager-options": "Options",
78
81
  "layermanager-baselayers-tooltip": "Add base layers",
79
82
  "layermanager-header-button-small": "small",
@@ -171,6 +174,10 @@ var fi = {
171
174
  "layermanager-layer-duplicate-to-other-maps": "Kopioi karttataso muihin karttoihin",
172
175
  "layermanager-layer-remove-from-other-maps": "Poista karttataso muista kartoista",
173
176
  "layermanager-layer-zoom-to-extent": "Zoomaa karttatasoon",
177
+ "layermanager-stac-layout-title": "Rasteriaineiston rakenne",
178
+ "layermanager-stac-layout-auto": "Automaattinen",
179
+ "layermanager-stac-layout-temporal": "Yksi kuva ajanhetkeä kohti",
180
+ "layermanager-stac-layout-spatial-tiles": "Alueellisesti tiilitetyt kuvat",
174
181
  "layermanager-options": "Valinnat",
175
182
  "layermanager-baselayers-tooltip": "Lisää pohjakartta",
176
183
  "layermanager-header-button-small": "Pieni",
@@ -259,6 +266,10 @@ var no = {
259
266
  "layermanager-layer-duplicate-to-other-maps": "Kopier lag til andre kart",
260
267
  "layermanager-layer-remove-from-other-maps": "Fjern lag fra andre kart",
261
268
  "layermanager-layer-zoom-to-extent": "Zoom til lag",
269
+ "layermanager-stac-layout-title": "Rasteroppsett",
270
+ "layermanager-stac-layout-auto": "Automatisk",
271
+ "layermanager-stac-layout-temporal": "Ett bilde per tidspunkt",
272
+ "layermanager-stac-layout-spatial-tiles": "Romlig flislagte bilder",
262
273
  "layermanager-options": "Laginnstillinger",
263
274
  "layermanager-baselayers-tooltip": "Legg til basislag",
264
275
  "layermanager-header-button-small": "liten",
@@ -348,6 +359,10 @@ var nl = {
348
359
  "layermanager-layer-duplicate-to-other-maps": "Kopieer laag naar andere kaarten",
349
360
  "layermanager-layer-remove-from-other-maps": "Verwijder laag van andere kaarten",
350
361
  "layermanager-layer-zoom-to-extent": "Zoom naar laag",
362
+ "layermanager-stac-layout-title": "Rasterindeling",
363
+ "layermanager-stac-layout-auto": "Automatisch",
364
+ "layermanager-stac-layout-temporal": "Eén afbeelding per tijdstip",
365
+ "layermanager-stac-layout-spatial-tiles": "Ruimtelijk opgedeelde afbeeldingen",
351
366
  "layermanager-options": "Opties",
352
367
  "layermanager-baselayers-tooltip": "Basislagen toevoegen",
353
368
  "layermanager-header-button-small": "klein",
@@ -2095,7 +2110,7 @@ var DragHandle = function DragHandle(_ref) {
2095
2110
  var nonEmptyTooltipTitle = tooltipTitle != null ? tooltipTitle : t('layermanager-layer-drag');
2096
2111
  var usedTooltipTitle = hideTooltip ? '' : nonEmptyTooltipTitle;
2097
2112
  return jsx(CustomIconButton, {
2098
- className: "handle",
2113
+ className: isDisabled ? undefined : 'handle',
2099
2114
  "data-testid": "dragHandle",
2100
2115
  disableTouchRipple: true,
2101
2116
  disabled: isDisabled,
@@ -3374,7 +3389,10 @@ var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
3374
3389
  _ref$canZoomToLayerEx = _ref.canZoomToLayerExtent,
3375
3390
  canZoomToLayerExtent = _ref$canZoomToLayerEx === void 0 ? true : _ref$canZoomToLayerEx,
3376
3391
  tooltipTitle = _ref.tooltipTitle,
3377
- icon = _ref.icon;
3392
+ icon = _ref.icon,
3393
+ stacDataLayout = _ref.stacDataLayout,
3394
+ isTiledStacCollection = _ref.isTiledStacCollection,
3395
+ onChangeStacDataLayout = _ref.onChangeStacDataLayout;
3378
3396
  var _useCoreTranslation = useCoreTranslation(),
3379
3397
  t = _useCoreTranslation.t;
3380
3398
  var nonEmptyTooltipTitle = tooltipTitle != null ? tooltipTitle : t('layermanager-options');
@@ -3393,6 +3411,32 @@ var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
3393
3411
  var onClickZoomToExtent = function onClickZoomToExtent() {
3394
3412
  onLayerZoomToExtent == null || onLayerZoomToExtent();
3395
3413
  };
3414
+ var stacDataLayoutMenuItem = onChangeStacDataLayout ? {
3415
+ text: t('layermanager-stac-layout-title'),
3416
+ action: function action() {},
3417
+ subMenuItems: [{
3418
+ text: t('layermanager-stac-layout-auto'),
3419
+ action: function action() {
3420
+ return onChangeStacDataLayout('auto');
3421
+ },
3422
+ controlType: 'radio',
3423
+ isSelected: !stacDataLayout || stacDataLayout === 'auto'
3424
+ }].concat(!isTiledStacCollection ? [{
3425
+ text: t('layermanager-stac-layout-temporal'),
3426
+ action: function action() {
3427
+ return onChangeStacDataLayout('temporal');
3428
+ },
3429
+ controlType: 'radio',
3430
+ isSelected: stacDataLayout === 'temporal'
3431
+ }] : [], [{
3432
+ text: t('layermanager-stac-layout-spatial-tiles'),
3433
+ action: function action() {
3434
+ return onChangeStacDataLayout('spatial-tiles');
3435
+ },
3436
+ controlType: 'radio',
3437
+ isSelected: stacDataLayout === 'spatial-tiles'
3438
+ }])
3439
+ } : undefined;
3396
3440
  return jsx(ToggleMenu, {
3397
3441
  buttonIcon: icon,
3398
3442
  buttonSx: {
@@ -3423,7 +3467,7 @@ var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
3423
3467
  action: onClickZoomToExtent,
3424
3468
  icon: jsx(ZoomToLayer, {}),
3425
3469
  isDisabled: !canZoomToLayerExtent
3426
- }],
3470
+ }].concat(stacDataLayoutMenuItem ? [stacDataLayoutMenuItem] : []),
3427
3471
  menuPosition: "bottom",
3428
3472
  tooltipTitle: nonEmptyTooltipTitle,
3429
3473
  children: !!isFeatureLayer && jsx(SelectableFeaturesCheckboxConnect, {
@@ -4331,6 +4375,7 @@ var wmLayerHasZoomExtent = function wmLayerHasZoomExtent(wmLayer, mapSrs) {
4331
4375
  return !!wmLayer.geographicBoundingBox;
4332
4376
  };
4333
4377
  var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref) {
4378
+ var _layer$service;
4334
4379
  var layerId = _ref.layerId,
4335
4380
  mapId = _ref.mapId,
4336
4381
  tooltipTitle = _ref.tooltipTitle,
@@ -4346,6 +4391,11 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
4346
4391
  return layerSelectors.getIsFeatureSyncLayer(store, layerId);
4347
4392
  });
4348
4393
  var isFeatureLayer = layerType === LayerType.featureLayer;
4394
+ var isStacGeoTIFFLayer = layerType === LayerType.stacGeoTIFFLayer;
4395
+ var _useStacCollection = useStacCollection(isStacGeoTIFFLayer ? (_layer$service = layer == null ? void 0 : layer.service) != null ? _layer$service : '' : ''),
4396
+ stacCollectionData = _useStacCollection.data;
4397
+ var isTiledStacCollection = Boolean(stacCollectionData == null ? void 0 : stacCollectionData.item_assets);
4398
+ var stacOptions = layer != null && layer.options && !('parameterNames' in layer.options) ? layer.options : undefined;
4349
4399
  var mapSrs = useSelector(function (store) {
4350
4400
  return mapSelectors.getSrs(store, mapId);
4351
4401
  });
@@ -4449,6 +4499,19 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
4449
4499
  origin: layerTypes.LayerActionOrigin.layerManager
4450
4500
  }));
4451
4501
  }, [dispatch, layerId]);
4502
+ var changeStacDataLayout = React.useCallback(function (dataLayout) {
4503
+ if (!layerId) {
4504
+ return;
4505
+ }
4506
+ dispatch(layerActions.layerChangeOptions({
4507
+ layerId: layerId,
4508
+ mapId: mapId,
4509
+ options: Object.assign({}, stacOptions, {
4510
+ dataLayout: dataLayout
4511
+ }),
4512
+ origin: layerTypes.LayerActionOrigin.layerManager
4513
+ }));
4514
+ }, [dispatch, layerId, mapId, stacOptions]);
4452
4515
  return jsx(LayerManagerMenuButton, {
4453
4516
  canZoomToLayerExtent: canZoomToLayerExtent,
4454
4517
  icon: icon,
@@ -4456,6 +4519,8 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
4456
4519
  isFeatureSyncLayer: isFeatureSyncLayer,
4457
4520
  layerId: layerId,
4458
4521
  mapId: mapId,
4522
+ isTiledStacCollection: isStacGeoTIFFLayer ? isTiledStacCollection : undefined,
4523
+ onChangeStacDataLayout: isStacGeoTIFFLayer ? changeStacDataLayout : undefined,
4459
4524
  onLayerCopyToOtherMaps: copyLayerToOtherMaps,
4460
4525
  onLayerDuplicate: function onLayerDuplicate() {
4461
4526
  duplicateLayer({
@@ -4465,6 +4530,7 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
4465
4530
  },
4466
4531
  onLayerRemoveFromOtherMaps: removeLayerFromAllMaps,
4467
4532
  onLayerZoomToExtent: zoomToLayerExtent,
4533
+ stacDataLayout: stacOptions == null ? void 0 : stacOptions.dataLayout,
4468
4534
  tooltipTitle: tooltipTitle
4469
4535
  });
4470
4536
  };
@@ -4651,30 +4717,12 @@ var formatParameterTitle = function formatParameterTitle(baseTitle, parameterKey
4651
4717
  var title = baseTitle + " (" + parameterKey;
4652
4718
  return title.length > 100 ? title.substring(0, 100) + "...)" : title + ")";
4653
4719
  };
4654
- var getSTACServiceRootUrl$1 = function getSTACServiceRootUrl(serviceUrl) {
4655
- return serviceUrl.replace(/\/collections\/[^/]+\/?$/, '');
4656
- };
4657
- var getTrailingSlashVariant = function getTrailingSlashVariant(url) {
4658
- return url.endsWith('/') ? url.slice(0, -1) : url + "/";
4659
- };
4660
4720
  var getSTACCollectionUrl = function getSTACCollectionUrl(serviceRootUrl, collectionName) {
4661
4721
  var normalizedRoot = serviceRootUrl.replace(/\/$/, '');
4662
4722
  // Only encode if not already encoded to avoid double-encoding
4663
4723
  var encodedName = collectionName.includes('%') ? collectionName : encodeURIComponent(collectionName);
4664
4724
  return normalizedRoot + "/collections/" + encodedName;
4665
4725
  };
4666
- var resolvePreferredStyleName = function resolvePreferredStyleName(styleNames, currentStyle) {
4667
- if (styleNames.length === 0) {
4668
- return WMDefaultStyleName;
4669
- }
4670
- if (currentStyle && styleNames.includes(currentStyle)) {
4671
- return currentStyle;
4672
- }
4673
- if (styleNames.includes(WMDefaultStyleName)) {
4674
- return WMDefaultStyleName;
4675
- }
4676
- return styleNames[0];
4677
- };
4678
4726
  var RenderLayersConnect = function RenderLayersConnect(_ref) {
4679
4727
  var _service$layers;
4680
4728
  var layerId = _ref.layerId,
@@ -4697,7 +4745,7 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4697
4745
  var serviceUrl = useSelector(function (store) {
4698
4746
  return layerSelectors.getLayerService(store, layerId);
4699
4747
  });
4700
- var resolvedServiceUrl = isStacGeoTIFFLayer ? getSTACServiceRootUrl$1(serviceUrl) : serviceUrl;
4748
+ var resolvedServiceUrl = isStacGeoTIFFLayer ? layerUtils.getSTACServiceRootUrl(serviceUrl) : serviceUrl;
4701
4749
  var isLayerEnabled = useSelector(function (store) {
4702
4750
  return layerSelectors.getLayerEnabled(store, layerId);
4703
4751
  });
@@ -4708,7 +4756,7 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4708
4756
  if (!isStacGeoTIFFLayer) {
4709
4757
  return serviceSelectors.getServiceByUrl(store, serviceUrl);
4710
4758
  }
4711
- return serviceSelectors.getServiceByUrl(store, resolvedServiceUrl) || serviceSelectors.getServiceByUrl(store, getTrailingSlashVariant(resolvedServiceUrl));
4759
+ return serviceSelectors.getServiceByUrl(store, resolvedServiceUrl) || serviceSelectors.getServiceByUrl(store, layerUtils.getTrailingSlashVariant(resolvedServiceUrl));
4712
4760
  });
4713
4761
  var layerOptions = useSelector(function (store) {
4714
4762
  return layerSelectors.getLayerOptions(store, layerId);
@@ -4774,17 +4822,20 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4774
4822
  if (!isStacGeoTIFFLayer || !isStacCollectionFetched) {
4775
4823
  return;
4776
4824
  }
4777
- var renderNames = Object.keys((stacCollectionData == null ? void 0 : stacCollectionData.renders) || {});
4778
- var nextStyle = resolvePreferredStyleName(renderNames, currentLayerStyle);
4825
+ var styleNames = getStacCollectionStyles(stacCollectionData == null ? void 0 : stacCollectionData.renders, stacCollectionData == null ? void 0 : stacCollectionData.item_assets).map(function (_ref3) {
4826
+ var name = _ref3.name;
4827
+ return name;
4828
+ });
4829
+ var nextStyle = resolvePreferredStyleName(styleNames, currentLayerStyle);
4779
4830
  if (currentLayerStyle !== nextStyle) {
4780
4831
  layerChangeStyle(nextStyle);
4781
4832
  }
4782
4833
  }, [stacCollectionData, isStacCollectionFetched, isStacGeoTIFFLayer, currentLayerStyle, layerChangeStyle]);
4783
4834
  React.useEffect(function () {
4784
- if (!isStacGeoTIFFLayer || !(stacCollectionData != null && stacCollectionData.renders) || !layerName) {
4835
+ if (!isStacGeoTIFFLayer || !stacCollectionData || !layerName) {
4785
4836
  return;
4786
4837
  }
4787
- var styles = getRendersAsStyles(stacCollectionData.renders);
4838
+ var styles = getStacCollectionStyles(stacCollectionData.renders, stacCollectionData.item_assets);
4788
4839
  if (styles.length === 0) {
4789
4840
  return;
4790
4841
  }
@@ -4798,7 +4849,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4798
4849
  path: [],
4799
4850
  styles: styles
4800
4851
  }],
4801
- scope: 'system'
4852
+ scope: 'system',
4853
+ isUpdating: true,
4854
+ type: 'STAC'
4802
4855
  });
4803
4856
  }, [stacCollectionData, isStacGeoTIFFLayer, layerName, serviceUrl, serviceSetLayers]);
4804
4857
  React.useEffect(function () {
@@ -4806,8 +4859,8 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4806
4859
  return;
4807
4860
  }
4808
4861
  var layers = Object.entries(data == null ? void 0 : data.parameter_names).map(function (parameter) {
4809
- var _ref3, _parameter$1$label;
4810
- var parameterTitle = (_ref3 = (_parameter$1$label = parameter[1].label) != null ? _parameter$1$label : parameter[1].description) != null ? _ref3 : parameter[0];
4862
+ var _ref4, _parameter$1$label;
4863
+ var parameterTitle = (_ref4 = (_parameter$1$label = parameter[1].label) != null ? _parameter$1$label : parameter[1].description) != null ? _ref4 : parameter[0];
4811
4864
  var title = formatParameterTitle(parameterTitle, parameter[0]);
4812
4865
  return {
4813
4866
  name: parameter[0],
@@ -4831,9 +4884,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4831
4884
  });
4832
4885
  }, [data, serviceUrl, service, serviceSetLayers]);
4833
4886
  var layers = (_service$layers = service == null ? void 0 : service.layers) != null ? _service$layers : [];
4834
- var layerChangeName = React.useCallback(function (_ref4) {
4835
- var layerId = _ref4.layerId,
4836
- name = _ref4.name;
4887
+ var layerChangeName = React.useCallback(function (_ref5) {
4888
+ var layerId = _ref5.layerId,
4889
+ name = _ref5.name;
4837
4890
  return dispatch(layerActions.layerChangeName({
4838
4891
  layerId: layerId,
4839
4892
  name: name,
@@ -4841,9 +4894,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4841
4894
  origin: layerTypes.LayerActionOrigin.layerManager
4842
4895
  }));
4843
4896
  }, [dispatch, mapId]);
4844
- var layerChangeOptions = React.useCallback(function (_ref5) {
4845
- var layerId = _ref5.layerId,
4846
- options = _ref5.options;
4897
+ var layerChangeOptions = React.useCallback(function (_ref6) {
4898
+ var layerId = _ref6.layerId,
4899
+ options = _ref6.options;
4847
4900
  return dispatch(layerActions.layerChangeOptions({
4848
4901
  layerId: layerId,
4849
4902
  options: options,
@@ -4851,9 +4904,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4851
4904
  origin: layerTypes.LayerActionOrigin.layerManager
4852
4905
  }));
4853
4906
  }, [dispatch, mapId]);
4854
- var layerChangeService = React.useCallback(function (_ref6) {
4855
- var layerId = _ref6.layerId,
4856
- service = _ref6.service;
4907
+ var layerChangeService = React.useCallback(function (_ref7) {
4908
+ var layerId = _ref7.layerId,
4909
+ service = _ref7.service;
4857
4910
  return dispatch(layerActions.layerChangeService({
4858
4911
  layerId: layerId,
4859
4912
  service: service,
@@ -4862,9 +4915,10 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
4862
4915
  }));
4863
4916
  }, [dispatch, mapId]);
4864
4917
  if (layerType === LayerType.edrFeatureLayer) {
4865
- var _layerOptions$paramet;
4866
- var selectedParams = (_layerOptions$paramet = layerOptions == null ? void 0 : layerOptions.parameterNames) != null ? _layerOptions$paramet : [];
4867
- var collectionId = (layerOptions == null ? void 0 : layerOptions.collectionId) || '';
4918
+ var _edrLayerOptions$para;
4919
+ var edrLayerOptions = layerOptions && 'parameterNames' in layerOptions ? layerOptions : undefined;
4920
+ var selectedParams = (_edrLayerOptions$para = edrLayerOptions == null ? void 0 : edrLayerOptions.parameterNames) != null ? _edrLayerOptions$para : [];
4921
+ var collectionId = (edrLayerOptions == null ? void 0 : edrLayerOptions.collectionId) || '';
4868
4922
  return jsx(RenderEDRLayers, {
4869
4923
  collectionId: collectionId,
4870
4924
  isEnabled: isLayerEnabled,
@@ -5006,20 +5060,14 @@ var LayerInfoButtonConnect = function LayerInfoButtonConnect(_ref) {
5006
5060
  });
5007
5061
  };
5008
5062
 
5009
- var getSTACServiceRootUrl = function getSTACServiceRootUrl(serviceUrl) {
5010
- return serviceUrl.replace(/\/+$/, '').replace(/\/collections\/[^/]+$/, '');
5011
- };
5012
- var trimTrailingSlashes = function trimTrailingSlashes(url) {
5013
- return url.replace(/\/+$/, '');
5014
- };
5015
5063
  var hasSameServiceUrl = function hasSameServiceUrl(urlA, urlB) {
5016
- return trimTrailingSlashes(urlA) === trimTrailingSlashes(urlB);
5064
+ return layerUtils.trimTrailingSlashes(urlA) === layerUtils.trimTrailingSlashes(urlB);
5017
5065
  };
5018
5066
  var hasSameSTACServiceUrl = function hasSameSTACServiceUrl(urlA, urlB) {
5019
- return hasSameServiceUrl(getSTACServiceRootUrl(urlA), getSTACServiceRootUrl(urlB));
5067
+ return hasSameServiceUrl(layerUtils.getSTACServiceRootUrl(urlA), layerUtils.getSTACServiceRootUrl(urlB));
5020
5068
  };
5021
5069
  var isSTACCollectionUrl = function isSTACCollectionUrl(serviceUrl) {
5022
- return trimTrailingSlashes(serviceUrl) !== getSTACServiceRootUrl(serviceUrl);
5070
+ return layerUtils.trimTrailingSlashes(serviceUrl) !== layerUtils.getSTACServiceRootUrl(serviceUrl);
5023
5071
  };
5024
5072
  var hasMatchingSTACLayerServiceUrl = function hasMatchingSTACLayerServiceUrl(layerServiceUrl, layerInfoServiceUrl) {
5025
5073
  if (hasSameServiceUrl(layerServiceUrl, layerInfoServiceUrl)) {
@@ -5051,7 +5099,7 @@ var LayerInfoDialogConnect = function LayerInfoDialogConnect(_ref) {
5051
5099
  });
5052
5100
  var layerInfoServiceUrl = (_layerInfo$serviceUrl = layerInfo == null ? void 0 : layerInfo.serviceUrl) != null ? _layerInfo$serviceUrl : '';
5053
5101
  var isSelectedSTACLayer = (selectedMapLayer == null ? void 0 : selectedMapLayer.layerType) === LayerType.stacGeoTIFFLayer;
5054
- var serviceLookupUrl = isSelectedSTACLayer ? getSTACServiceRootUrl((_selectedMapLayer$ser = selectedMapLayer.service) != null ? _selectedMapLayer$ser : layerInfoServiceUrl) : layerInfoServiceUrl;
5102
+ var serviceLookupUrl = isSelectedSTACLayer ? layerUtils.getSTACServiceRootUrl((_selectedMapLayer$ser = selectedMapLayer.service) != null ? _selectedMapLayer$ser : layerInfoServiceUrl) : layerInfoServiceUrl;
5055
5103
  var currentService = useSelector(function (store) {
5056
5104
  if (!isSelectedSTACLayer) {
5057
5105
  return serviceSelectors.getServiceByUrl(store, serviceLookupUrl);
@@ -5251,13 +5299,16 @@ var LayerContainerRow = /*#__PURE__*/React.memo(function (_ref) {
5251
5299
  var _React$useState4 = React.useState(0),
5252
5300
  rowsToDisplayFeature = _React$useState4[0],
5253
5301
  setRowsToDisplayFeature = _React$useState4[1];
5254
- var featureLayerIds = React.useMemo(function () {
5302
+ var displayFeatureLayers = React.useMemo(function () {
5255
5303
  return featureLayers.filter(function (layer) {
5256
5304
  return layer.name !== undefined && layer.id !== undefined;
5257
- }).map(function (layer) {
5258
- return layer.id;
5259
5305
  });
5260
5306
  }, [featureLayers]);
5307
+ var featureLayerIds = React.useMemo(function () {
5308
+ return displayFeatureLayers.map(function (layer) {
5309
+ return layer.id;
5310
+ });
5311
+ }, [displayFeatureLayers]);
5261
5312
  var layerMove = React.useCallback(function (_ref2) {
5262
5313
  var mapId = _ref2.mapId,
5263
5314
  oldIndex = _ref2.oldIndex,
@@ -5342,21 +5393,21 @@ var LayerContainerRow = /*#__PURE__*/React.memo(function (_ref) {
5342
5393
  settings: settings
5343
5394
  }, "layerRowConnect-map-" + layerId);
5344
5395
  });
5345
- var featureLayerContents = featureLayerIds.map(function (layerId) {
5396
+ var featureLayerContents = displayFeatureLayers.map(function (layer) {
5346
5397
  var _settings$dragHandle3, _settings$dragHandle4;
5347
5398
  return jsx(LayerRowConnect, {
5348
5399
  collapsedColumns: collapsedColumns,
5349
5400
  dragHandle: jsx(DragHandle, {
5350
- hideTooltip: isSortingFeature || isDragDisabledFeature,
5401
+ hideTooltip: isSortingFeature || isDragDisabledFeature || Boolean(layer.featureSync),
5351
5402
  icon: settings == null || (_settings$dragHandle3 = settings.dragHandle) == null ? void 0 : _settings$dragHandle3.icon,
5352
- isDisabled: isDragDisabledFeature,
5403
+ isDisabled: isDragDisabledFeature || Boolean(layer.featureSync),
5353
5404
  isSorting: isSortingFeature,
5354
5405
  tooltipTitle: settings == null || (_settings$dragHandle4 = settings.dragHandle) == null ? void 0 : _settings$dragHandle4.tooltipTitle
5355
5406
  }),
5356
- layerId: layerId,
5407
+ layerId: layer.id,
5357
5408
  mapId: mapId,
5358
5409
  settings: settings
5359
- }, "layerRowConnect-feature-" + layerId);
5410
+ }, "layerRowConnect-feature-" + layer.id);
5360
5411
  });
5361
5412
  React.useEffect(function () {
5362
5413
  if (rowsToDisplayMap < mapLayerIds.length) {
@@ -7900,14 +7951,15 @@ var createLinkedFeatureCollection = function createLinkedFeatureCollection(linke
7900
7951
  var originalId = getFeatureKey((_geoFeature$propertie = geoFeature.properties) == null ? void 0 : _geoFeature$propertie.originalId) || getFeatureKey(featureLayer.originalId);
7901
7952
  return !(featureId && warningDialogFeatureKeys.has(featureId) || originalId && warningDialogFeatureKeys.has(originalId));
7902
7953
  }).map(function (geoFeature) {
7903
- var _featureLayer$feature, _getGeoFeatureSelecti;
7954
+ var _featureLayer$feature, _getGeoFeatureSelecti, _featureLayer$opacity;
7904
7955
  var featureLayerKey = ((_featureLayer$feature = featureLayer.featureSync) == null ? void 0 : _featureLayer$feature.featureLayerKey) || featureLayer.id;
7905
7956
  var selectedFeatureIds = featureLayerKey ? selectedFeatureIdsByLayerKey.get(featureLayerKey) : undefined;
7906
7957
  var isSelected = selectedFeatureIds == null ? void 0 : selectedFeatureIds.has((_getGeoFeatureSelecti = getGeoFeatureSelectionKey(geoFeature)) != null ? _getGeoFeatureSelecti : '');
7907
7958
  var existingProperties = geoFeature.properties && typeof geoFeature.properties === 'object' ? geoFeature.properties : {};
7908
7959
  return Object.assign({}, geoFeature, {
7909
7960
  properties: Object.assign({}, existingProperties, {
7910
- sourceLayerId: featureLayer.id
7961
+ sourceLayerId: featureLayer.id,
7962
+ layerOpacity: (_featureLayer$opacity = featureLayer.opacity) != null ? _featureLayer$opacity : 1
7911
7963
  }, isSelected ? {
7912
7964
  highlightSelectedFeature: true
7913
7965
  } : undefined, featureLayer.originalId ? {
@@ -8013,6 +8065,23 @@ var makeLayerInfoPayload = function makeLayerInfoPayload(payload, mapDimensions,
8013
8065
  };
8014
8066
  return updatedPayLoad;
8015
8067
  };
8068
+ var getRenderedDimensions = function getRenderedDimensions(_ref) {
8069
+ var layerType = _ref.layerType,
8070
+ layerDimensions = _ref.layerDimensions,
8071
+ mapTimeDimension = _ref.mapTimeDimension;
8072
+ if (layerType !== LayerType.stacGeoTIFFLayer || !mapTimeDimension) {
8073
+ return layerDimensions;
8074
+ }
8075
+ var hasLayerTimeDimension = layerDimensions == null ? void 0 : layerDimensions.some(function (_ref2) {
8076
+ var name = _ref2.name;
8077
+ return name === 'time';
8078
+ });
8079
+ return hasLayerTimeDimension ? layerDimensions.map(function (dimension) {
8080
+ return dimension.name === 'time' ? Object.assign({}, dimension, {
8081
+ currentValue: mapTimeDimension.currentValue
8082
+ }) : dimension;
8083
+ }) : [].concat(layerDimensions != null ? layerDimensions : [], [Object.assign({}, mapTimeDimension)]);
8084
+ };
8016
8085
  var getCenterOfLinkedFeature = function getCenterOfLinkedFeature(feature, srs) {
8017
8086
  var _feature$getGeometry;
8018
8087
  if (feature && ((_feature$getGeometry = feature.getGeometry()) == null ? void 0 : _feature$getGeometry.getType()) === 'Point') {
@@ -8030,11 +8099,11 @@ var getCenterOfLinkedFeature = function getCenterOfLinkedFeature(feature, srs) {
8030
8099
  }
8031
8100
  return null;
8032
8101
  };
8033
- function useFitAndHighlightWarningFeature(_ref) {
8034
- var view = _ref.view,
8035
- warningDialogFeatures = _ref.warningDialogFeatures,
8036
- srs = _ref.srs,
8037
- mapId = _ref.mapId;
8102
+ function useFitAndHighlightWarningFeature(_ref3) {
8103
+ var view = _ref3.view,
8104
+ warningDialogFeatures = _ref3.warningDialogFeatures,
8105
+ srs = _ref3.srs,
8106
+ mapId = _ref3.mapId;
8038
8107
  var dispatch = useDispatch();
8039
8108
  useEffect(function () {
8040
8109
  var _warningDialogFeature, _geoJsonFeature$prope, _warningDialogFeature2, _geoJsonFeature$bbox;
@@ -8118,6 +8187,9 @@ var OlMapViewLayerConnect = function OlMapViewLayerConnect(layerProps) {
8118
8187
  var mapDimensions = useSelector(function (store) {
8119
8188
  return mapSelectors.getMapDimensions(store, mapId);
8120
8189
  });
8190
+ var mapTimeDimension = useSelector(function (store) {
8191
+ return mapSelectors.getMapDimension(store, mapId, 'time');
8192
+ });
8121
8193
  var dispatch = useDispatch();
8122
8194
  var onInitializeLayer = useCallback(function (initProps) {
8123
8195
  var updatedPayLoad = makeLayerInfoPayload(initProps, mapDimensions || [], mapId);
@@ -8125,17 +8197,26 @@ var OlMapViewLayerConnect = function OlMapViewLayerConnect(layerProps) {
8125
8197
  }, [dispatch, mapDimensions, mapId]);
8126
8198
  var _useGetWMLayerInstanc = useGetWMLayerInstance(layer),
8127
8199
  wmLayer = _useGetWMLayerInstanc.wmLayer;
8200
+ var effectiveLayerType = (wmLayer == null ? void 0 : wmLayer.layerType) || (layer == null ? void 0 : layer.layerType);
8201
+ var renderedDimensions = getRenderedDimensions({
8202
+ layerType: effectiveLayerType,
8203
+ layerDimensions: layer == null ? void 0 : layer.dimensions,
8204
+ mapTimeDimension: mapTimeDimension
8205
+ });
8128
8206
  if (!wmLayer || !layer) {
8129
8207
  return null;
8130
8208
  }
8131
- var isInsideAcceptanceTime = getIsInsideAcceptanceTime(layer.acceptanceTimeInMinutes, mapDimensions, layer.dimensions);
8209
+ // STAC layers query the exact map time, which is reflected in
8210
+ // renderedDimensions even when the layer metadata still points at its latest time.
8211
+ var isInsideAcceptanceTime = getIsInsideAcceptanceTime(layer.acceptanceTimeInMinutes, mapDimensions, renderedDimensions);
8132
8212
  return jsx(OpenLayersLayer, Object.assign({
8133
8213
  id: "layer-" + (layer == null ? void 0 : layer.id),
8134
8214
  zIndex: zIndex
8135
8215
  }, layer, {
8136
8216
  debugMode: debugMode,
8217
+ dimensions: renderedDimensions,
8137
8218
  enabled: !!isInsideAcceptanceTime && layer.enabled,
8138
- layerType: (wmLayer == null ? void 0 : wmLayer.layerType) || layer.layerType,
8219
+ layerType: effectiveLayerType,
8139
8220
  onInitializeLayer: onInitializeLayer
8140
8221
  }), "layer-" + (layer == null ? void 0 : layer.id));
8141
8222
  };
@@ -8553,6 +8634,64 @@ var getTitle = function getTitle(layerId) {
8553
8634
  var wmjsLayer = webmapUtils.getWMLayerById(layerId);
8554
8635
  return wmjsLayer ? wmjsLayer.title || wmjsLayer.name : layerId;
8555
8636
  };
8637
+ var getWmtsFeatureInfoUrl = function getWmtsFeatureInfoUrl(wmjsLayer, layer, mapPinLocation) {
8638
+ var _layer$dimensions;
8639
+ (_layer$dimensions = layer.dimensions) == null || _layer$dimensions.forEach(function (dim) {
8640
+ var wmDim = wmjsLayer == null ? void 0 : wmjsLayer.getDimension(dim.name);
8641
+ if (wmDim && wmDim.getValue() !== dim.currentValue) {
8642
+ wmDim.setValue(dim.currentValue);
8643
+ }
8644
+ });
8645
+ var wmtsSource = wmjsLayer == null ? void 0 : wmjsLayer.olSource;
8646
+ if (!wmtsSource || !(wmjsLayer != null && wmjsLayer.getfeatureinfoURL)) {
8647
+ return '';
8648
+ }
8649
+ var tileGrid = wmtsSource.getTileGrid();
8650
+ var tileCoord = tileGrid.getTileCoordForCoordAndResolution([mapPinLocation.projectionX, mapPinLocation.projectionY], mapPinLocation.resolution);
8651
+ if (!tileCoord) {
8652
+ return '';
8653
+ }
8654
+ var z = tileCoord[0],
8655
+ tileCol = tileCoord[1],
8656
+ tileRow = tileCoord[2];
8657
+ var tileExtent = tileGrid.getTileCoordExtent(tileCoord);
8658
+ var tileResolution = tileGrid.getResolution(z);
8659
+ var tileSize = tileGrid.getTileSize(z);
8660
+ var tileWidth = Array.isArray(tileSize) ? tileSize[0] : tileSize;
8661
+ var tileHeight = Array.isArray(tileSize) ? tileSize[1] : tileSize;
8662
+ if (!tileResolution || !tileWidth || !tileHeight) {
8663
+ return '';
8664
+ }
8665
+ var i = Math.min(Math.max(Math.floor((mapPinLocation.projectionX - tileExtent[0]) / tileResolution), 0), tileWidth - 1);
8666
+ var pixelJ = Math.min(Math.max(Math.floor((tileExtent[3] - mapPinLocation.projectionY) / tileResolution), 0), tileHeight - 1);
8667
+ var matrixIds = (tileGrid.getMatrixIds == null ? void 0 : tileGrid.getMatrixIds()) || [];
8668
+ var tileMatrix = matrixIds[z] || "" + z;
8669
+ var params = new URLSearchParams();
8670
+ params.set('SERVICE', 'WMTS');
8671
+ params.set('REQUEST', 'GetFeatureInfo');
8672
+ params.set('VERSION', '1.0.0');
8673
+ params.set('LAYER', wmjsLayer.getLayerName());
8674
+ params.set('STYLE', wmjsLayer.getStyle() || 'default');
8675
+ params.set('TILEMATRIXSET', wmjsLayer.wmtsTileMatrixSet || 'EPSG:3857');
8676
+ params.set('TILEMATRIX', tileMatrix);
8677
+ params.set('TILEROW', "" + tileRow);
8678
+ params.set('TILECOL', "" + tileCol);
8679
+ params.set('I', "" + i);
8680
+ params.set('J', "" + pixelJ);
8681
+ params.set('INFOFORMAT', wmjsLayer.wmtsInfoFormat || 'text/html');
8682
+ var mapDimURL = getMapDimURL(wmjsLayer).toString();
8683
+ if (mapDimURL) {
8684
+ var dimParams = new URLSearchParams(mapDimURL);
8685
+ dimParams.forEach(function (value, key) {
8686
+ params.set(key.toUpperCase(), value);
8687
+ });
8688
+ }
8689
+ var featureInfoUrl = new URL(wmjsLayer.getfeatureinfoURL);
8690
+ params.forEach(function (value, key) {
8691
+ featureInfoUrl.searchParams.set(key, value);
8692
+ });
8693
+ return featureInfoUrl.toString();
8694
+ };
8556
8695
  var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
8557
8696
  /*
8558
8697
  We need a wmjsLayer to build the getfeatureinfo url (getWMSGetFeatureInfoRequestURL function).
@@ -8560,13 +8699,13 @@ var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
8560
8699
  Therefore make a clone of this layer and set its dimensions based on the layer object.
8561
8700
  Otherwise we risk making a getfeatureinfo call with outdated dimension values.
8562
8701
  */
8563
- var wmjsLayer = webmapUtils.getWMLayerById(layer.id).cloneLayer();
8564
- if (wmjsLayer.layerType === LayerType.wmtsMapLayer) {
8565
- // WMTS Layers do not support GetFeatureInfo
8566
- return '';
8567
- }
8702
+ var originalWmjsLayer = webmapUtils.getWMLayerById(layer.id);
8703
+ var wmjsLayer = originalWmjsLayer.cloneLayer();
8568
8704
  if (mapPinLocation) {
8569
- var _layer$dimensions;
8705
+ var _layer$dimensions2;
8706
+ if (wmjsLayer.layerType === LayerType.wmtsMapLayer) {
8707
+ return getWmtsFeatureInfoUrl(wmjsLayer, layer, mapPinLocation);
8708
+ }
8570
8709
  // OpenLayers WMS version
8571
8710
  var source = new ImageWMS({
8572
8711
  url: wmjsLayer.getmapURL,
@@ -8574,7 +8713,7 @@ var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
8574
8713
  LAYERS: wmjsLayer.getLayerName()
8575
8714
  }
8576
8715
  });
8577
- (_layer$dimensions = layer.dimensions) == null || _layer$dimensions.forEach(function (dim) {
8716
+ (_layer$dimensions2 = layer.dimensions) == null || _layer$dimensions2.forEach(function (dim) {
8578
8717
  var wmDim = wmjsLayer.getDimension(dim.name);
8579
8718
  if (wmDim && wmDim.getValue() !== dim.currentValue) {
8580
8719
  wmDim.setValue(dim.currentValue);
@@ -8708,7 +8847,7 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
8708
8847
  /* Do a GFI call to the server and use the updateLayerResult to provide the results. */
8709
8848
  var fetchLayerInfo = /*#__PURE__*/function () {
8710
8849
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(url, layerId) {
8711
- var _yield$axios$get, data, errorMessage, _t;
8850
+ var response, data, errorMessage, _t;
8712
8851
  return _regenerator().w(function (_context) {
8713
8852
  while (1) switch (_context.p = _context.n) {
8714
8853
  case 0:
@@ -8730,19 +8869,28 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
8730
8869
  isLoading: true
8731
8870
  });
8732
8871
  _context.n = 2;
8733
- return axios.get(url);
8872
+ return fetch(url);
8734
8873
  case 2:
8735
- _yield$axios$get = _context.v;
8736
- data = _yield$axios$get.data;
8874
+ response = _context.v;
8875
+ if (response.ok) {
8876
+ _context.n = 3;
8877
+ break;
8878
+ }
8879
+ throw new Error("GetFeatureInfo request failed (" + response.status + ")");
8880
+ case 3:
8881
+ _context.n = 4;
8882
+ return response.text();
8883
+ case 4:
8884
+ data = _context.v;
8737
8885
  updateLayerResult({
8738
8886
  layerId: layerId,
8739
8887
  data: data,
8740
8888
  isLoading: false
8741
8889
  });
8742
- _context.n = 4;
8890
+ _context.n = 6;
8743
8891
  break;
8744
- case 3:
8745
- _context.p = 3;
8892
+ case 5:
8893
+ _context.p = 5;
8746
8894
  _t = _context.v;
8747
8895
  errorMessage = _t instanceof Error ? _t.message : 'fetchLayerInfo failed';
8748
8896
  updateLayerResult({
@@ -8750,10 +8898,10 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
8750
8898
  data: errorMessage,
8751
8899
  isLoading: false
8752
8900
  });
8753
- case 4:
8901
+ case 6:
8754
8902
  return _context.a(2);
8755
8903
  }
8756
- }, _callee, null, [[1, 3]]);
8904
+ }, _callee, null, [[1, 5]]);
8757
8905
  }));
8758
8906
  return function fetchLayerInfo(_x, _x2) {
8759
8907
  return _ref3.apply(this, arguments);
@@ -11989,4 +12137,4 @@ var storyUtils = /*#__PURE__*/Object.freeze({
11989
12137
  useDefaultMapSettings: useDefaultMapSettings
11990
12138
  });
11991
12139
 
11992
- export { CORE_NAMESPACE, _ConfigurableMapConnect as ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, _LayerManager as LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, LoadingIndicatorProgressBar, LocationSearch, LocationSearchConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SelectedFeaturesDialogConnect, SyncGroupViewerConnect, TimeSliderConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getIsOutdated, getLanguageFromLocalStorage, languageLocalStorageKey, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, storyUtils, testLayers, useFetchServices, useFitAndHighlightWarningFeature, useGetOpenLayersView, useLocationDetail, useLocationList, usePrefetchTimeSpan, useUpdateTimeSpan, useUpdateTimestep };
12140
+ export { CORE_NAMESPACE, _ConfigurableMapConnect as ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, _LayerManager as LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, LoadingIndicatorProgressBar, LocationSearch, LocationSearchConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SelectedFeaturesDialogConnect, SyncGroupViewerConnect, TimeSliderConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getIsOutdated, getLanguageFromLocalStorage, getRenderedDimensions, languageLocalStorageKey, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, storyUtils, testLayers, useFetchServices, useFitAndHighlightWarningFeature, useGetOpenLayersView, useLocationDetail, useLocationList, usePrefetchTimeSpan, useUpdateTimeSpan, useUpdateTimestep };
@@ -27,6 +27,15 @@ export interface InitialTimeSeriesProps {
27
27
  services: TimeSeriesService[];
28
28
  hideLocationMarkers?: boolean;
29
29
  syncGroupsIds: string[];
30
+ locationMenuSize?: {
31
+ width: number;
32
+ height: number;
33
+ };
34
+ locationMenuPosition?: {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ isLocationsDialogOpen?: boolean;
30
39
  }
31
40
  export interface InitialSoundingsProps {
32
41
  selectedSources: Record<string, SourceSelection>;
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { STACGeoTIFFLayerOptions } from '@opengeoweb/webmap';
2
3
  interface LayerManagerMenuButtonProps {
3
4
  mapId: string;
4
5
  layerId?: string;
@@ -14,6 +15,9 @@ interface LayerManagerMenuButtonProps {
14
15
  canZoomToLayerExtent?: boolean;
15
16
  tooltipTitle?: string;
16
17
  icon?: React.ReactNode;
18
+ stacDataLayout?: STACGeoTIFFLayerOptions['dataLayout'];
19
+ isTiledStacCollection?: boolean;
20
+ onChangeStacDataLayout?: (dataLayout: NonNullable<STACGeoTIFFLayerOptions['dataLayout']>) => void;
17
21
  }
18
22
  declare const LayerManagerMenuButton: React.FC<LayerManagerMenuButtonProps>;
19
23
  export default LayerManagerMenuButton;
@@ -1,10 +1,17 @@
1
1
  import type { Feature, View } from 'ol';
2
2
  import type { TimeSliderStartEndStep } from '@opengeoweb/store';
3
3
  import type { Dimension, RefTimeDimensionModes } from '@opengeoweb/webmap';
4
+ import { LayerType } from '@opengeoweb/webmap';
4
5
  import type { MapLocation, OnInitializeLayerProps, TimeContextType, UpdateLayerInfoPayload } from '@opengeoweb/webmap-react';
5
6
  export declare const makePrefetchTimeSpan: (timeSliderStartCenterEndTime: TimeSliderStartEndStep, isAnimating: boolean, prefetchList: number[]) => TimeContextType;
6
7
  export declare const usePrefetchTimeSpan: (timeSliderStartCenterEndTime: TimeSliderStartEndStep, isAnimating: boolean, animationList: number[], refTimeDimensionModes?: RefTimeDimensionModes) => TimeContextType;
7
8
  export declare const makeLayerInfoPayload: (payload: OnInitializeLayerProps, mapDimensions: Dimension[], mapId: string) => UpdateLayerInfoPayload;
9
+ interface GetRenderedDimensionsProps {
10
+ layerType?: LayerType;
11
+ layerDimensions?: Dimension[];
12
+ mapTimeDimension?: Dimension;
13
+ }
14
+ export declare const getRenderedDimensions: ({ layerType, layerDimensions, mapTimeDimension, }: GetRenderedDimensionsProps) => Dimension[] | undefined;
8
15
  export declare const getCenterOfLinkedFeature: (feature: Feature | undefined, srs: string) => MapLocation | null;
9
16
  interface UseFitAndHighlightWarningFeatureOptions {
10
17
  view: View | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "19.3.0",
3
+ "version": "19.5.0",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -28,7 +28,6 @@
28
28
  "@opengeoweb/webmap-react": "*",
29
29
  "@opengeoweb/webmap": "*",
30
30
  "@opengeoweb/theme": "*",
31
- "axios": "^1.18.0",
32
31
  "@opengeoweb/layer-select": "*",
33
32
  "lodash": "^4.18.1",
34
33
  "ol": "^10.4.0",