@opengeoweb/core 12.8.0 → 12.10.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
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import React__default, { useState, useCallback, useEffect, useContext, useMemo } from 'react';
4
4
  import { Grid, Box, MenuItem, Typography, useTheme, Popper, Fade, Tooltip, styled, LinearProgress, FormControl, InputLabel, Paper, List, ListItemButton, ListItemText, CircularProgress, ListSubheader, DialogContentText, TextField, InputAdornment, Button, Autocomplete, ListItemIcon, Checkbox, Switch, Select } from '@mui/material';
5
5
  import { safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, CustomIconButton, CustomTooltip, TooltipSelect, AlertIcon, useScrollingInIsolation, sliderHeaderStyle, CustomSlider, ToggleMenu, tooltipContainerStyles, renderCounter, AlertBanner, CustomAccordion, CustomDialog, PROJECTION, calculateStartSize, useWheelStopPropagation, ToolContainerDraggable, dateUtils, useDebounce, sessionStorageProvider, usePrevious, ErrorBoundary } from '@opengeoweb/shared';
6
- import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, Copy, None, FastForward, AutoUpdateActive, Both, Delete, Visibility, VisibilityOff, DragHandle as DragHandle$1, Cached, Add, MapAdd, WorldMapProjection, Layers, ExitDomain, Info, Search, Exclamation, MyLocation, Close, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
6
+ import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, Copy, None, FastForward, AutoUpdateActive, Both, Delete, Visibility, VisibilityOff, DragHandle as DragHandle$1, Cached, Add, MapAdd, WorldMapProjection, Overlayers, Layers, ExitDomain, Info, Search, Exclamation, MyLocation, Close, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
7
7
  import i18n from 'i18next';
8
8
  import { useTranslation, I18nextProvider } from 'react-i18next';
9
9
  import { TIMESLIDER_NAMESPACE, timesliderTranslations, defaultTimeSpan, SpeedButton, TimeStepButton, AnimationLengthButton, AnimationLength, TimeSpanButton, secondsPerPxFromCanvasWidth, getNewCenterOfFixedPointZoom, OptionsMenuButton, PlayButton, defaultTimeStep, BackwardForwardStepButton, AutoUpdateButton, NowButton, handleSetNowEvent, TimeSliderButtons, TimeSliderCurrentTimeBox, TimeSliderLegend, onsetNewDateDebounced, defaultSecondsPerPx, moveSelectedTimePx, TimeSlider, getFilteredTime, ControlButtons, OptionsMenu, TimeSliderClock } from '@opengeoweb/timeslider';
@@ -46,6 +46,8 @@ var en = {
46
46
  "layermanager-title": "Layer Manager",
47
47
  "layermanager-baselayers-title": "Base layer",
48
48
  "layermanager-baselayers-no-available": "No service available",
49
+ "layermanager-overlayers-title": "Select overlayer",
50
+ "layermanager-overlayers-overlayer": "Overlayer",
49
51
  "layermanager-acceptance-time": "Acc Time",
50
52
  "layermanager-dimensions-total-values": "Dimension value ({{total_dimensions}} options)",
51
53
  "layermanager-dimensions-title": "Dimensions",
@@ -122,6 +124,8 @@ var fi = {
122
124
  "layermanager-title": "Karttatasot",
123
125
  "layermanager-baselayers-title": "Pohjakartta",
124
126
  "layermanager-baselayers-no-available": "Palvelu ei käytettävissä",
127
+ "layermanager-overlayers-title": "Valitse päällystaso",
128
+ "layermanager-overlayers-overlayer": "Päällystaso",
125
129
  "layermanager-acceptance-time": "Hyväksymisaika",
126
130
  "layermanager-dimensions-total-values": "Dimension arvon ({{total_dimensions}} valinnat)",
127
131
  "layermanager-dimensions-title": "Dimensiot",
@@ -198,6 +202,8 @@ var no = {
198
202
  "layermanager-title": "Kartlag",
199
203
  "layermanager-baselayers-title": "Basislag",
200
204
  "layermanager-baselayers-no-available": "Ingen tjenester tilgjengelig",
205
+ "layermanager-overlayers-title": "ikke oversatt",
206
+ "layermanager-overlayers-overlayer": "ikke oversatt",
201
207
  "layermanager-acceptance-time": "Aksep.tid",
202
208
  "layermanager-dimensions-total-values": "Dimensjonsverdi ({{total_dimensions}} valg)",
203
209
  "layermanager-dimensions-title": "Dimensjoner",
@@ -274,6 +280,8 @@ var nl = {
274
280
  "layermanager-title": "Lagen Manager",
275
281
  "layermanager-baselayers-title": "Basislaag",
276
282
  "layermanager-baselayers-no-available": "Geen service beschikbaar",
283
+ "layermanager-overlayers-title": "Selecteer een overlayer",
284
+ "layermanager-overlayers-overlayer": "Overlayer",
277
285
  "layermanager-acceptance-time": "Acc Tijd",
278
286
  "layermanager-dimensions-total-values": "Opties voor dimensie ({{total_dimensions}})",
279
287
  "layermanager-dimensions-title": "Dimensies",
@@ -909,7 +917,7 @@ var layerManagerStyle = {
909
917
  '.is-dragging header+.MuiBox-root': {
910
918
  overflow: 'hidden'
911
919
  },
912
- // baselayer & projection
920
+ // baselayer, overlayer & projection
913
921
  '.baseLayer': {
914
922
  width: "calc(" + flexibleAreaWidth + " * 0.25)"
915
923
  },
@@ -972,7 +980,7 @@ var layerManagerStyle = {
972
980
  '.activateLayer-btn, .enable-btn, .column-2, .column-3, .column-4, .column-5, .column-6, .column-7, .column-acceptanceTime, .column-loadDuration': {
973
981
  display: 'none'
974
982
  },
975
- '.addLayer-column, .setProjection-column': {
983
+ '.addLayer-column, .setProjection-column, .overlayers-column': {
976
984
  display: 'none'
977
985
  },
978
986
  '.descriptionRow': {
@@ -4740,6 +4748,100 @@ var ProjectionSelectConnect = function ProjectionSelectConnect(_ref) {
4740
4748
  });
4741
4749
  };
4742
4750
 
4751
+ var availableOverlayers = [{
4752
+ name: 'Default Overlayer',
4753
+ value: 'Default Overlayer'
4754
+ },
4755
+ // TODO: rename to 'None' when implemented: https://gitlab.com/opengeoweb/opengeoweb/-/issues/6095
4756
+ {
4757
+ name: 'None (not implemented)',
4758
+ value: 'None'
4759
+ }];
4760
+ var OverlayersSelect = function OverlayersSelect(_ref) {
4761
+ var _availableOverlayers$;
4762
+ var selectedOverlayer = _ref.selectedOverlayer,
4763
+ onChangeOverlayer = _ref.onChangeOverlayer;
4764
+ var _useCoreTranslation = useCoreTranslation(),
4765
+ t = _useCoreTranslation.t;
4766
+ var index = availableOverlayers.findIndex(function (layer) {
4767
+ return layer.value === selectedOverlayer;
4768
+ });
4769
+ var selectedOverlayerName = (_availableOverlayers$ = availableOverlayers.find(function (layer) {
4770
+ return layer.value === selectedOverlayer;
4771
+ })) == null ? void 0 : _availableOverlayers$.name;
4772
+ return jsxs(Grid, {
4773
+ container: true,
4774
+ className: "overlayers-column",
4775
+ sx: {
4776
+ width: '100%',
4777
+ height: '36px'
4778
+ },
4779
+ children: [jsx(Grid, {
4780
+ sx: [{
4781
+ marginTop: '-2px'
4782
+ }, leftButtonsStyle],
4783
+ children: jsx(CustomIconButton, {
4784
+ sx: {
4785
+ margin: 'auto 0px auto 32px'
4786
+ },
4787
+ disabled: true,
4788
+ children: jsx(Overlayers, {})
4789
+ })
4790
+ }), jsx(Grid, {
4791
+ className: columnClasses.baseLayer,
4792
+ children: jsx(FormControl, {
4793
+ style: {
4794
+ width: '100%'
4795
+ },
4796
+ children: jsxs(TooltipSelect, {
4797
+ disableUnderline: true,
4798
+ SelectDisplayProps: {
4799
+ 'aria-label': 'overlayerSelect'
4800
+ },
4801
+ tooltip: t('layermanager-overlayers-overlayer') + ": " + selectedOverlayerName,
4802
+ isEnabled: true,
4803
+ style: {
4804
+ maxWidth: '100%'
4805
+ },
4806
+ value: selectedOverlayer,
4807
+ list: availableOverlayers,
4808
+ currentIndex: index,
4809
+ onChange: function onChange(event) {
4810
+ event.stopPropagation();
4811
+ onChangeOverlayer(event.target.value);
4812
+ },
4813
+ onChangeMouseWheel: function onChangeMouseWheel(e) {
4814
+ onChangeOverlayer(e.value);
4815
+ },
4816
+ children: [jsx(MenuItem, {
4817
+ disabled: true,
4818
+ children: t('layermanager-overlayers-title')
4819
+ }), availableOverlayers.map(function (_ref2) {
4820
+ var name = _ref2.name,
4821
+ value = _ref2.value;
4822
+ return jsx(MenuItem, {
4823
+ value: value,
4824
+ children: name
4825
+ }, name);
4826
+ })]
4827
+ })
4828
+ })
4829
+ })]
4830
+ });
4831
+ };
4832
+
4833
+ var OverlayersSelectConnect = function OverlayersSelectConnect() {
4834
+ var _React$useState = React__default.useState('Default Overlayer'),
4835
+ selectedOverlayer = _React$useState[0],
4836
+ setSelectedOverlayer = _React$useState[1];
4837
+ return jsx(OverlayersSelect, {
4838
+ selectedOverlayer: selectedOverlayer,
4839
+ onChangeOverlayer: function onChangeOverlayer(selection) {
4840
+ setSelectedOverlayer(selection);
4841
+ }
4842
+ });
4843
+ };
4844
+
4743
4845
  var styles$1 = {
4744
4846
  layerRowContainer: {
4745
4847
  position: 'relative',
@@ -4896,7 +4998,7 @@ var LayerManager = function LayerManager(_ref) {
4896
4998
  mapId: mapId,
4897
4999
  settings: settings == null ? void 0 : settings.content,
4898
5000
  collapsedColumns: collapsedColumns
4899
- }), jsx(BaseLayerRow, {
5001
+ }), jsx(OverlayersSelectConnect, {}), jsx(BaseLayerRow, {
4900
5002
  mapId: mapId,
4901
5003
  tooltip: t('layermanager-baselayers-tooltip'),
4902
5004
  preloadedAvailableBaseLayers: preloadedAvailableBaseLayers,
@@ -6365,6 +6467,12 @@ var getFeatureInfoUrl = function getFeatureInfoUrl(layer, mapPinLocation) {
6365
6467
  LAYERS: wmjsLayer.getLayerName()
6366
6468
  }
6367
6469
  });
6470
+ layer.dimensions && layer.dimensions.forEach(function (dim) {
6471
+ var wmDim = wmjsLayer.getDimension(dim.name);
6472
+ if (wmDim && wmDim.getValue() !== dim.currentValue) {
6473
+ wmDim.setValue(dim.currentValue);
6474
+ }
6475
+ });
6368
6476
  return source.getFeatureInfoUrl([mapPinLocation.projectionX, mapPinLocation.projectionY], mapPinLocation.resolution, mapPinLocation.srs, {
6369
6477
  INFO_FORMAT: 'text/html'
6370
6478
  }) + "&" + getMapDimURL(wmjsLayer).toString();
@@ -6435,15 +6543,10 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
6435
6543
  mapPinLocation = _ref.mapPinLocation;
6436
6544
  var _useCoreTranslation = useCoreTranslation(),
6437
6545
  t = _useCoreTranslation.t;
6438
- /* Ref and state for maplocation */
6439
- var mapLocationWasChanged = React__default.useRef(false);
6440
- var _React$useState = React__default.useState(false),
6441
- isInitialMapLocationChanged = _React$useState[0],
6442
- setInitialMapLocationIsChanged = _React$useState[1];
6443
6546
  /* Ref, state and update function for results per layer map */
6444
6547
  var gfiResultMap = React__default.useRef(new Map()).current;
6445
- var _React$useState2 = React__default.useState(),
6446
- triggerRerender = _React$useState2[1];
6548
+ var _React$useState = React__default.useState(),
6549
+ triggerRerender = _React$useState[1];
6447
6550
  var updateLayerResult = function updateLayerResult(_ref2) {
6448
6551
  var layerId = _ref2.layerId,
6449
6552
  data = _ref2.data,
@@ -6507,16 +6610,9 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
6507
6610
  return _ref3.apply(this, arguments);
6508
6611
  };
6509
6612
  }();
6510
- /* Wait till the user has clicked the map. */
6511
- React__default.useEffect(function () {
6512
- if (mapLocationWasChanged.current !== false) {
6513
- setInitialMapLocationIsChanged(true);
6514
- }
6515
- mapLocationWasChanged.current = true;
6516
- }, [mapPinLocation]);
6517
6613
  /* For each changed getfeature url string, load new data using WMS GetFeatureInfo */
6518
6614
  React__default.useEffect(function () {
6519
- if (isInitialMapLocationChanged && isOpen) {
6615
+ if (mapPinLocation && isOpen) {
6520
6616
  layerToUpdateList.forEach(function (_ref4) {
6521
6617
  var url = _ref4.url,
6522
6618
  layerId = _ref4.layerId;
@@ -6546,7 +6642,7 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
6546
6642
  sx: {
6547
6643
  padding: 0
6548
6644
  },
6549
- children: [isOpen && hasLayers && isInitialMapLocationChanged && jsx(Box, {
6645
+ children: [isOpen && hasLayers && mapPinLocation && jsx(Box, {
6550
6646
  "data-testid": "GetFeatureInfoList",
6551
6647
  ref: stopWheelEventPropagationRef,
6552
6648
  children: layerToUpdateList.map(function (layer) {
@@ -6599,7 +6695,7 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
6599
6695
  })]
6600
6696
  }, layerId);
6601
6697
  })
6602
- }), hasLayers && !isInitialMapLocationChanged && jsx(Typography, {
6698
+ }), hasLayers && !mapPinLocation && jsx(Typography, {
6603
6699
  "data-testid": "click-on-map-for-info",
6604
6700
  variant: "subtitle1",
6605
6701
  sx: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "12.8.0",
3
+ "version": "12.10.0",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,22 +8,22 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/shared": "12.8.0",
11
+ "@opengeoweb/shared": "12.10.0",
12
12
  "react-redux": "^9.2.0",
13
- "@opengeoweb/store": "12.8.0",
14
- "@opengeoweb/timeslider": "12.8.0",
13
+ "@opengeoweb/store": "12.10.0",
14
+ "@opengeoweb/timeslider": "12.10.0",
15
15
  "@reduxjs/toolkit": "^2.6.1",
16
- "@opengeoweb/webmap-react": "12.8.0",
17
- "@opengeoweb/webmap": "12.8.0",
18
- "@opengeoweb/theme": "12.8.0",
16
+ "@opengeoweb/webmap-react": "12.10.0",
17
+ "@opengeoweb/webmap": "12.10.0",
18
+ "@opengeoweb/theme": "12.10.0",
19
19
  "axios": "^1.7.7",
20
- "@opengeoweb/layer-select": "12.8.0",
20
+ "@opengeoweb/layer-select": "12.10.0",
21
21
  "lodash": "^4.17.21",
22
22
  "ol": "^10.4.0",
23
23
  "react-sortablejs": "^6.1.4",
24
24
  "sortablejs": "^1.15.1",
25
25
  "@mui/system": "^7.0.1",
26
- "@opengeoweb/snackbar": "12.8.0",
26
+ "@opengeoweb/snackbar": "12.10.0",
27
27
  "react-router-dom": "^6.21.0",
28
28
  "react-draggable": "^4.4.6",
29
29
  "i18next": "^25.0.1",
@@ -32,7 +32,7 @@
32
32
  "@mui/material": "^7.0.1",
33
33
  "@sentry/react": "^8.34.0",
34
34
  "@tanstack/react-query": "^5.69.2",
35
- "@opengeoweb/api": "12.8.0",
35
+ "@opengeoweb/api": "12.10.0",
36
36
  "@types/geojson": "^7946.0.14"
37
37
  },
38
38
  "peerDependencies": {
@@ -142,7 +142,7 @@ export declare const layerManagerStyle: {
142
142
  '.activateLayer-btn, .enable-btn, .column-2, .column-3, .column-4, .column-5, .column-6, .column-7, .column-acceptanceTime, .column-loadDuration': {
143
143
  display: string;
144
144
  };
145
- '.addLayer-column, .setProjection-column': {
145
+ '.addLayer-column, .setProjection-column, .overlayers-column': {
146
146
  display: string;
147
147
  };
148
148
  '.descriptionRow': {
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ interface OverlayersSelectProps {
3
+ selectedOverlayer: string;
4
+ onChangeOverlayer: (overlayer: string) => void;
5
+ }
6
+ declare const OverlayersSelect: React.FC<OverlayersSelectProps>;
7
+ export default OverlayersSelect;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const OverlayersSelectConnect: React.FC;
3
+ export default OverlayersSelectConnect;