@opengeoweb/webmap-react 15.2.0 → 15.3.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
@@ -91,6 +91,7 @@ var en = {
91
91
  "webmap-react-point": "Point",
92
92
  "webmap-react-polygon": "Polygon",
93
93
  "webmap-react-box": "Rectangle",
94
+ "webmap-react-rotatable-box": "Rectangle",
94
95
  "webmap-react-linestring": "Line String",
95
96
  "webmap-react-circle": "Circle",
96
97
  "webmap-react-square": "Square",
@@ -147,6 +148,7 @@ var fi = {
147
148
  "webmap-react-point": "Piste",
148
149
  "webmap-react-polygon": "Monikulmio",
149
150
  "webmap-react-box": "Laatikko",
151
+ "webmap-react-rotatable-box": "Laatikko",
150
152
  "webmap-react-linestring": "Viivajono",
151
153
  "webmap-react-delete": "Poista",
152
154
  "clock-show": "Näytä kello",
@@ -195,6 +197,7 @@ var no = {
195
197
  "webmap-react-point": "Punkt",
196
198
  "webmap-react-polygon": "Polygon",
197
199
  "webmap-react-box": "Boks",
200
+ "webmap-react-rotatable-box": "Boks",
198
201
  "webmap-react-linestring": "Linje",
199
202
  "webmap-react-delete": "Fjerne",
200
203
  "clock-show": "Vis klokke",
@@ -243,6 +246,7 @@ var nl = {
243
246
  "webmap-react-point": "Punt",
244
247
  "webmap-react-polygon": "Polygoon",
245
248
  "webmap-react-box": "Rechthoek",
249
+ "webmap-react-rotatable-box": "Rechthoek",
246
250
  "webmap-react-linestring": "Lijn",
247
251
  "webmap-react-circle": "Cirkel",
248
252
  "webmap-react-square": "Vierkant",
@@ -818,6 +822,13 @@ var TIMEAWAREIMAGEWRAPPER_IMAGEDIDNOTLOADSUCCESFULLY = 'Image did not load succe
818
822
  // export const WMS_EXTENT_RATIO_TO_VIEWPORT = 1.0;
819
823
  // export const ENABLE_PREFETCH = false;
820
824
 
825
+ /**
826
+ *
827
+ * @param wmTimeDim WMDimension time containing dimension values
828
+ * @param stepsToCheck Array with timestamps as posix timestamps to check
829
+ * @param isAnimating If the application is running an animation loop
830
+ * @returns A string list with ISO8601 values to fetch
831
+ */
821
832
  var makeDimValuesToPrefetch = function makeDimValuesToPrefetch(wmTimeDim, stepsToCheck, isAnimating) {
822
833
  if (wmTimeDim) {
823
834
  if ((stepsToCheck === null || stepsToCheck === void 0 ? void 0 : stepsToCheck.length) > 0) {
@@ -866,44 +877,48 @@ var makeDimValuesToPrefetch = function makeDimValuesToPrefetch(wmTimeDim, stepsT
866
877
  */
867
878
  var getDimensionParamsForWMS = function getDimensionParamsForWMS(dimensions, wmLayer) {
868
879
  // Check if pre-requisites are OK. Possibly still fetching WMS GetCapabilities.
869
- if (!dimensions || !(wmLayer !== null && wmLayer !== void 0 && wmLayer.isConfigured)) {
880
+ if (!(wmLayer !== null && wmLayer !== void 0 && wmLayer.isConfigured)) {
870
881
  return undefined;
871
882
  }
872
883
  var dimProps = {};
873
- if ((dimensions === null || dimensions === void 0 ? void 0 : dimensions.length) === 0 && (wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.dimensions.length) === 0 && wmLayer !== null && wmLayer !== void 0 && wmLayer.isConfigured) {
874
- // It is possible that a layer has no dimensions. In that case return a map without any key values.
875
- return dimProps;
876
- }
884
+ var wmLayerDims = wmLayer.getDimensions();
877
885
  // Loop without forEach so we can exit and return.
878
- var _iterator = _createForOfIteratorHelper(dimensions),
886
+ var _iterator = _createForOfIteratorHelper(wmLayerDims),
879
887
  _step;
880
888
  try {
889
+ var _loop = function _loop() {
890
+ var wmLayerDim = _step.value;
891
+ // Check if passed as part of the list of dimensions
892
+ var layerDim = dimensions.find(function (dim) {
893
+ return dim.name === wmLayerDim.name;
894
+ });
895
+ if (layerDim) {
896
+ var closestValue = wmLayerDim.getClosestValue(layerDim.currentValue);
897
+ if (!WMInvalidDateValues.has(closestValue)) {
898
+ wmLayerDim.setValue(closestValue);
899
+ dimProps[getCorrectWMSDimName(wmLayerDim.name)] = closestValue;
900
+ } else {
901
+ // The requested value is not in the range of the dimension, image should not show
902
+ return {
903
+ v: undefined
904
+ };
905
+ }
906
+ } else {
907
+ // Not specified so fall back to current/default value from WMLayer
908
+ dimProps[getCorrectWMSDimName(wmLayerDim.name)] = wmLayerDim.currentValue ? wmLayerDim.currentValue : wmLayerDim.defaultValue;
909
+ }
910
+ },
911
+ _ret;
881
912
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
882
- var dimension = _step.value;
883
- var wmLayerDimension = dimension.name && (wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.getDimension(dimension === null || dimension === void 0 ? void 0 : dimension.name));
884
- if (!wmLayerDimension) {
885
- return undefined;
886
- }
887
- // Take the closest WMLayer dimension value
888
- var closestValue = wmLayerDimension.getClosestValue(dimension.currentValue);
889
- if (!WMInvalidDateValues.has(closestValue)) {
890
- wmLayerDimension.setValue(closestValue);
891
- dimProps[getCorrectWMSDimName(dimension.name)] = closestValue;
892
- } else {
893
- // The dimension name does not occur in the layer, or the requested value is not in the range of the dimension
894
- return undefined;
895
- }
913
+ _ret = _loop();
914
+ if (_ret) return _ret.v;
896
915
  }
897
- // Check if all dims where used which occur in the WMLayer
898
916
  } catch (err) {
899
917
  _iterator.e(err);
900
918
  } finally {
901
919
  _iterator.f();
902
920
  }
903
- return wmLayer !== null && wmLayer !== void 0 && wmLayer.dimensions.every(function (wmLayerDim) {
904
- var wmsName = getCorrectWMSDimName(wmLayerDim.name);
905
- return wmsName in dimProps;
906
- }) ? dimProps : undefined;
921
+ return dimProps;
907
922
  };
908
923
  /**
909
924
  * Calculates number of timesteps for given timespan
@@ -1016,10 +1031,7 @@ var TimeAwareImageWrapper = /*#__PURE__*/function (_ImageWrapper) {
1016
1031
  src = _this$getWMSGetMapReq.src,
1017
1032
  newExtent = _this$getWMSGetMapReq.extent,
1018
1033
  newResolution = _this$getWMSGetMapReq.resolution;
1019
- var geoRef = openLayersGetMapImageStore.getAltGeoReferencedImage(src, newExtent, newResolution) || openLayersGetMapImageStore.getGeoReferencedImage(src, {
1020
- extent: newExtent,
1021
- resolution: newResolution
1022
- });
1034
+ var geoRef = openLayersGetMapImageStore.getAltGeoReferencedImage(src, newExtent, newResolution);
1023
1035
  if (geoRef) {
1024
1036
  return {
1025
1037
  el: geoRef.getElement(),
@@ -1040,10 +1052,7 @@ var TimeAwareImageWrapper = /*#__PURE__*/function (_ImageWrapper) {
1040
1052
  src = _this$getWMSGetMapReq2.src,
1041
1053
  newExtent = _this$getWMSGetMapReq2.extent,
1042
1054
  newResolution = _this$getWMSGetMapReq2.resolution;
1043
- var imageEl = openLayersGetMapImageStore.getGeoReferencedImage(src, {
1044
- extent: newExtent,
1045
- resolution: newResolution
1046
- });
1055
+ var imageEl = openLayersGetMapImageStore.getImage(src);
1047
1056
  if (imageEl) {
1048
1057
  return {
1049
1058
  el: imageEl.getElement(),
@@ -1066,7 +1075,6 @@ var TimeAwareImageWrapper = /*#__PURE__*/function (_ImageWrapper) {
1066
1075
  this.setImage(el);
1067
1076
  this.extent = extent;
1068
1077
  this.resolution = resolution;
1069
- // this.projection = projection;/?TODO
1070
1078
  }
1071
1079
  }, {
1072
1080
  key: "load",
@@ -1076,7 +1084,7 @@ var TimeAwareImageWrapper = /*#__PURE__*/function (_ImageWrapper) {
1076
1084
  src = _this$getWMSGetMapReq3.src,
1077
1085
  newExtent = _this$getWMSGetMapReq3.extent,
1078
1086
  newResolution = _this$getWMSGetMapReq3.resolution;
1079
- var imageEl = openLayersGetMapImageStore.getGeoReferencedImage(src, {
1087
+ var imageEl = openLayersGetMapImageStore.getImageAndSetGeoReference(src, {
1080
1088
  extent: newExtent,
1081
1089
  resolution: newResolution
1082
1090
  });
@@ -1437,7 +1445,7 @@ var TimeawareImageSource = /*#__PURE__*/function (_ImageSource) {
1437
1445
  this.changed();
1438
1446
  }
1439
1447
  /**
1440
- * Check if an image is available and loaded for requested date. Used for animation to proceed.
1448
+ * Check if an image is available and loaded for requested date. Used for showlayerinfo to proceed.
1441
1449
  * @param isoTime
1442
1450
  * @returns
1443
1451
  */
@@ -1445,6 +1453,9 @@ var TimeawareImageSource = /*#__PURE__*/function (_ImageSource) {
1445
1453
  key: "hasImageLoadedForTimeValue",
1446
1454
  value: function hasImageLoadedForTimeValue(isoTime) {
1447
1455
  var _this$_loadedExtent;
1456
+ if (!isoTime || WMInvalidDateValues.has(isoTime)) {
1457
+ return false;
1458
+ }
1448
1459
  if (((_this$_loadedExtent = this._loadedExtent) === null || _this$_loadedExtent === void 0 ? void 0 : _this$_loadedExtent.length) !== 4) {
1449
1460
  return false;
1450
1461
  }
@@ -1456,24 +1467,44 @@ var TimeawareImageSource = /*#__PURE__*/function (_ImageSource) {
1456
1467
  }
1457
1468
  return true;
1458
1469
  }
1459
- // This function can be used to determine if the animation can proceed to the next step.
1460
1470
  }, {
1461
- key: "isImageLoadingForTimestep",
1462
- value: function isImageLoadingForTimestep(isoTime) {
1471
+ key: "getAltGeoReferencedImages",
1472
+ value: function getAltGeoReferencedImages(isoTime) {
1463
1473
  var _this$_loadedExtent2;
1474
+ if (!isoTime || WMInvalidDateValues.has(isoTime)) {
1475
+ return [];
1476
+ }
1464
1477
  if (((_this$_loadedExtent2 = this._loadedExtent) === null || _this$_loadedExtent2 === void 0 ? void 0 : _this$_loadedExtent2.length) !== 4) {
1465
- return false;
1478
+ return [];
1466
1479
  }
1467
1480
  var dimPropWithRequestedDate = _objectSpread2({}, this._dimProperties);
1468
1481
  dimPropWithRequestedDate['TIME'] = isoTime;
1469
- var image = this._imWrapperForOlSource.getAlternativeImage(this._lastRequestedExtent, this._lastRequestedResolution, this._lastRequestedPixelRatio, this._lastRequestedProjection, this._wmsUrl, this._extraWMSParams, this._layerName, this._styleName, dimPropWithRequestedDate);
1470
- if (image === false) {
1482
+ var _this$_imWrapperForOl = this._imWrapperForOlSource.getWMSGetMapRequestURL(this._lastRequestedExtent, this._lastRequestedResolution, this._lastRequestedPixelRatio, this._lastRequestedProjection, this._wmsUrl, this._extraWMSParams, this._layerName, this._styleName, dimPropWithRequestedDate),
1483
+ src = _this$_imWrapperForOl.src,
1484
+ newExtent = _this$_imWrapperForOl.extent,
1485
+ newResolution = _this$_imWrapperForOl.resolution;
1486
+ var geoRefs = openLayersGetMapImageStore.getAltGeoReferencedImages(src, newExtent, newResolution);
1487
+ return geoRefs;
1488
+ }
1489
+ /**
1490
+ * This function can be used to determine if the animation can proceed to the next step.
1491
+ * @param isoTime ISO8601 string formatat like `YYYY-MM-DDTHH:MM:SSZ`
1492
+ * @returns Only specic case it returns false: when a image is available and is loading. That means we wait till it is loaded.
1493
+ * This function returns true if an image is not available in the store. Or true if it is available and already loaded.
1494
+ */
1495
+ }, {
1496
+ key: "isImageLoadingForTimestep",
1497
+ value: function isImageLoadingForTimestep(isoTime) {
1498
+ var geoRefs = this.getAltGeoReferencedImages(isoTime);
1499
+ if (geoRefs.length === 0) {
1471
1500
  // If there is no image at all for requested timestep, it means that the layer does not advertise data for that timestep.
1472
1501
  // In that case the animation should proceed, so return true here to avoid blocking the animation.
1473
1502
  return true;
1474
1503
  }
1475
1504
  // If it is still loading, we can block the animation going forward.
1476
- return !image.isLoading;
1505
+ return geoRefs.filter(function (geoRef) {
1506
+ return !geoRef.isLoading();
1507
+ }).length !== 0;
1477
1508
  }
1478
1509
  }, {
1479
1510
  key: "setImageForTimeValue",
@@ -12771,12 +12802,13 @@ var ShowTimeAwareLayerInfo = function ShowTimeAwareLayerInfo(_ref) {
12771
12802
  }
12772
12803
  var itemWidth = Math.round(1000 / timeStepsToCheck.length);
12773
12804
  return timeStepsToCheck.map(function (timeStep, index) {
12774
- var _layer$getSource;
12805
+ var _layer$getSource, _layer$getSource2;
12775
12806
  var closestValue = (wmTimeDim === null || wmTimeDim === void 0 ? void 0 : wmTimeDim.getClosestValueForTime(timeStep)) || '';
12776
12807
  var requestedStepIsOutsideRange = WMInvalidDateValues.has(closestValue);
12777
- var requestedStepHasImage = layer === null || layer === void 0 || (_layer$getSource = layer.getSource()) === null || _layer$getSource === void 0 ? void 0 : _layer$getSource.hasImageLoadedForTimeValue(closestValue);
12808
+ var images = (layer === null || layer === void 0 || (_layer$getSource = layer.getSource()) === null || _layer$getSource === void 0 ? void 0 : _layer$getSource.getAltGeoReferencedImages(closestValue)) || [];
12778
12809
  var isSelectedStep = visible && (wmTimeDim === null || wmTimeDim === void 0 ? void 0 : wmTimeDim.currentValue) === closestValue;
12779
- var colorImageIsAvailable = requestedStepHasImage ? '#40AF50' : '#FF0000';
12810
+ var colorImageIsLoading = layer !== null && layer !== void 0 && (_layer$getSource2 = layer.getSource()) !== null && _layer$getSource2 !== void 0 && _layer$getSource2.hasImageLoadedForTimeValue(closestValue) ? '#40AF50' : '#666666';
12811
+ var colorImageIsAvailable = (images === null || images === void 0 ? void 0 : images.length) > 0 ? colorImageIsLoading : '#FF0000';
12780
12812
  var colorLayerIsOutsideRange = requestedStepIsOutsideRange ? '#5080FA' : colorImageIsAvailable;
12781
12813
  var height = requestedStepIsOutsideRange ? '15px' : '20px';
12782
12814
  var top = requestedStepIsOutsideRange ? '5px' : '2px';
@@ -12885,7 +12917,8 @@ var TimeawareImageSourceWMSLayer = function TimeawareImageSourceWMSLayer(_ref) {
12885
12917
  layerOptions = _ref.layerOptions,
12886
12918
  styleName = _ref.styleName,
12887
12919
  layerName = _ref.layerName,
12888
- dimensions = _ref.dimensions,
12920
+ _ref$dimensions = _ref.dimensions,
12921
+ dimensions = _ref$dimensions === void 0 ? [] : _ref$dimensions,
12889
12922
  debugMode = _ref.debugMode,
12890
12923
  _ref$visible = _ref.visible,
12891
12924
  visible = _ref$visible === void 0 ? true : _ref$visible,
@@ -13861,7 +13894,8 @@ var TimeAwareEDRLocationLayer = function TimeAwareEDRLocationLayer(_ref) {
13861
13894
  style = _ref.style,
13862
13895
  zIndex = _ref.zIndex,
13863
13896
  opacity = _ref.opacity,
13864
- dimensions = _ref.dimensions,
13897
+ _ref$dimensions = _ref.dimensions,
13898
+ dimensions = _ref$dimensions === void 0 ? [] : _ref$dimensions,
13865
13899
  layerId = _ref.layerId,
13866
13900
  _ref$visible = _ref.visible,
13867
13901
  visible = _ref$visible === void 0 ? true : _ref$visible,
@@ -14255,7 +14289,8 @@ var TimeAwareGeoTIFFLayer = function TimeAwareGeoTIFFLayer(_ref) {
14255
14289
  _ref.style;
14256
14290
  var zIndex = _ref.zIndex,
14257
14291
  opacity = _ref.opacity,
14258
- dimensions = _ref.dimensions,
14292
+ _ref$dimensions = _ref.dimensions,
14293
+ dimensions = _ref$dimensions === void 0 ? [] : _ref$dimensions,
14259
14294
  layerId = _ref.layerId,
14260
14295
  _ref$visible = _ref.visible,
14261
14296
  visible = _ref$visible === void 0 ? true : _ref$visible,
@@ -14347,7 +14382,8 @@ var registerProjection = function registerProjection(wkt2) {
14347
14382
  var TimeAwareWMTSLayer = function TimeAwareWMTSLayer(_ref) {
14348
14383
  var getCapsURL = _ref.getCapsURL,
14349
14384
  layerName = _ref.layerName,
14350
- dimensions = _ref.dimensions,
14385
+ _ref$dimensions = _ref.dimensions,
14386
+ dimensions = _ref$dimensions === void 0 ? [] : _ref$dimensions,
14351
14387
  layerOptions = _ref.layerOptions,
14352
14388
  layerId = _ref.layerId,
14353
14389
  onInitializeLayer = _ref.onInitializeLayer,
@@ -16357,6 +16393,7 @@ var drawStyles = {
16357
16393
  POINT: pointFeatureStyle,
16358
16394
  MULTIPOINT: pointFeatureStyle,
16359
16395
  LOCATION: locationFeatureStyle,
16396
+ ROTATABLEBOX: drawPolygonLikeFeatureStyle,
16360
16397
  DELETE: [],
16361
16398
  '': []
16362
16399
  };
@@ -16372,6 +16409,7 @@ var modifyStyles = {
16372
16409
  POINT: modifyPointFeatureStyle,
16373
16410
  MULTIPOINT: modifyPointFeatureStyle,
16374
16411
  LOCATION: locationFeatureStyle,
16412
+ ROTATABLEBOX: boxModificationStyle,
16375
16413
  DELETE: [],
16376
16414
  '': []
16377
16415
  };
@@ -16406,6 +16444,7 @@ var DRAWMODE;
16406
16444
  DRAWMODE["OVAL"] = "OVAL";
16407
16445
  DRAWMODE["LOCATION"] = "LOCATION";
16408
16446
  DRAWMODE["FREEHANDLINE"] = "FREEHANDLINE";
16447
+ DRAWMODE["ROTATABLEBOX"] = "ROTATABLEBOX";
16409
16448
  })(DRAWMODE || (DRAWMODE = {}));
16410
16449
 
16411
16450
  var createDrawOperation = function createDrawOperation(type) {
@@ -16425,6 +16464,7 @@ var createDrawOperation = function createDrawOperation(type) {
16425
16464
  geometryFunction: createRegularPolygon(4)
16426
16465
  };
16427
16466
  case 'BOX':
16467
+ case 'ROTATABLEBOX':
16428
16468
  return {
16429
16469
  type: 'Circle',
16430
16470
  geometryFunction: createBox()
@@ -16469,6 +16509,8 @@ var selectionTypeToDrawModeValue = function selectionTypeToDrawModeValue(selecti
16469
16509
  return DRAWMODE.SQUARE;
16470
16510
  case 'box':
16471
16511
  return DRAWMODE.BOX;
16512
+ case 'rotatable-box':
16513
+ return DRAWMODE.ROTATABLEBOX;
16472
16514
  case 'oval':
16473
16515
  return DRAWMODE.OVAL;
16474
16516
  case 'point':
@@ -16679,7 +16721,7 @@ var OpenLayersMapDraw = function OpenLayersMapDraw(_ref) {
16679
16721
  var handlePoints = getBoxRotateHandlePoints(featureToRotate, resolution);
16680
16722
  var prevIndex = featureToRotate.get('activeRotateHandleIndex');
16681
16723
  var newIndex;
16682
- if (!handlePoints || !resolution) {
16724
+ if (!handlePoints || !resolution || !isBoxOrSquareRotatable) {
16683
16725
  newIndex = undefined;
16684
16726
  } else {
16685
16727
  var coord = map.getEventCoordinate(event);
@@ -16722,7 +16764,8 @@ var OpenLayersMapDraw = function OpenLayersMapDraw(_ref) {
16722
16764
  };
16723
16765
  window.addEventListener('keydown', deleteVertexOnDeleteKey);
16724
16766
  var isSquare = actualDrawMode === DRAWMODE.SQUARE;
16725
- var isBoxOrSquare = actualDrawMode === DRAWMODE.BOX || isSquare;
16767
+ var isBoxOrSquareRotatable = actualDrawMode === DRAWMODE.ROTATABLEBOX || isSquare;
16768
+ var isBoxOrSquare = actualDrawMode === DRAWMODE.BOX || isBoxOrSquareRotatable;
16726
16769
  // Modifying is a combination of Modify and Translate interactions
16727
16770
  var modify = new Modify({
16728
16771
  features: editFeatureCollection,
@@ -16838,7 +16881,7 @@ var OpenLayersMapDraw = function OpenLayersMapDraw(_ref) {
16838
16881
  isPointerDownNearCorner = false;
16839
16882
  };
16840
16883
  var startRotateIfOnHandle = function startRotateIfOnHandle(event) {
16841
- if (!isBoxOrSquare || !selectedFeatureHasGeometry) {
16884
+ if (!isBoxOrSquareRotatable || !selectedFeatureHasGeometry) {
16842
16885
  return;
16843
16886
  }
16844
16887
  var featureToRotate = editFeatureCollection.item(0);
@@ -17099,6 +17142,7 @@ var getIcon = function getIcon(selectionType) {
17099
17142
  case 'poly':
17100
17143
  return jsx(DrawToolPolygon, {});
17101
17144
  case 'box':
17145
+ case 'rotatable-box':
17102
17146
  return jsx(DrawToolRectangle, {});
17103
17147
  case 'linestring':
17104
17148
  return jsx(DrawToolLineString, {});
@@ -17208,8 +17252,16 @@ var defaultSmoothLine = {
17208
17252
  isSelectable: true,
17209
17253
  selectionType: 'smooth-line'
17210
17254
  };
17211
- var defaultModes = [defaultPolygon, defaultLineString, defaultFreehandLine, defaultOval, defaultCircle, defaultBox, defaultSquare, defaultPoint, defaultLocation, defaultDelete];
17212
- var currentlySupportedDrawModes = [defaultPolygon, defaultLineString, defaultFreehandLine, defaultCircle, defaultSquare, defaultPoint, defaultDelete, defaultSmoothLine, defaultOval, defaultBox, defaultLocation];
17255
+ var defaultRotatableBox = {
17256
+ drawModeId: 'drawtools-rotatable-box',
17257
+ value: DRAWMODE.ROTATABLEBOX,
17258
+ title: "".concat(WEBMAP_REACT_NAMESPACE, ":webmap-react-rotatable-box"),
17259
+ shape: emptyPolygon,
17260
+ isSelectable: true,
17261
+ selectionType: 'rotatable-box'
17262
+ };
17263
+ var defaultModes = [defaultPolygon, defaultLineString, defaultFreehandLine, defaultOval, defaultCircle, defaultBox, defaultSquare, defaultPoint, defaultLocation, defaultDelete, defaultRotatableBox];
17264
+ var currentlySupportedDrawModes = [defaultPolygon, defaultLineString, defaultFreehandLine, defaultCircle, defaultSquare, defaultPoint, defaultDelete, defaultSmoothLine, defaultOval, defaultBox, defaultLocation, defaultRotatableBox];
17213
17265
  var useMapDrawTool = function useMapDrawTool(_ref) {
17214
17266
  var _ref$defaultDrawModes = _ref.defaultDrawModes,
17215
17267
  defaultDrawModes = _ref$defaultDrawModes === void 0 ? defaultModes : _ref$defaultDrawModes,
@@ -19322,4 +19374,4 @@ var getLayerUpdateInfo = function getLayerUpdateInfo(wmLayer, mapId) {
19322
19374
  return updateObject;
19323
19375
  };
19324
19376
 
19325
- export { BaseLayerType, CLASSNAME_MAP_MEASURE_TOOLTIP, ClickOnMapTool, Clock, DEFAULT_GEOJSON_STYLE_FILL_OPACITY, DRAWMODE, DefaultBaseLayers, DimensionSelectButton, DimensionSelectDialog, DimensionSelectSlider, EditModeButton as EditModeButtonField, FEATURE_DRAW_FILL_COLOR, FEATURE_DRAW_FILL_COLOR_TRANSPARENT, FEATURE_DRAW_SECONDARY_FILL_COLOR, FEATURE_DRAW_SECONDARY_STROKE_COLOR, FEATURE_DRAW_STROKE_COLOR, FEATURE_FILL, FEATURE_FILL_SELECTED, FEATURE_STROKE, FEATURE_STROKE_EDIT, FEATURE_STROKE_SELECTED, FEATURE_VERTICES_EDIT_HANDLES, FEATURE_VERTICE_HANDLE_IMAGE, FEATURE_VERTICE_IMAGE, FeatureLayer, FeatureLayers, GeoJSONTextField, IntersectionSelect, LayerInfoButton, LayerInfoDialog, LayerInfoLegend, LayerInfoList, LayerInfoText, Legend, LegendButton, LegendDialog, LegendLayout, MIN_HEIGHT, MIN_WIDTH, MapContext, MapControlButton, MapControls, MapDimensionSelect, MapFeatureClass, MapMeasure, MapTime, MapWarningProperties, NEW_FEATURE_CREATED, NEW_LINESTRING_CREATED, NEW_POINT_CREATED, OpenLayersFeatureLayer, OpenLayersGetFeatureInfo, OpenLayersLayer, OpenLayersMapDraw, OpenLayersMapView, OpenLayersZoomControl, SelectField, StoryLayoutGrid, TimeAwareEDRLocationLayer, TimeAwareGeoTIFFLayer, TimeAwareWMTSLayer, TimeContext, TimeawareImageSource, TimeawareImageSourceWMSLayer, WEBMAP_REACT_NAMESPACE, WMSLayer, WMTSLayer, XYZLayer, ZoomControls, addFeatureProperties, addGeoJSONProperties, addSelectionTypeToGeoJSON, basicExampleDrawOptions, basicExampleMultipleShapeDrawOptions, basicExampleMultipleShapeWithValuesDrawOptions, catmullRomSpline, clearImageCacheForAllMaps, colorMaps, createBoxBasedOnModifiedVertex, createIconStyle, createInterSections, createOval, currentlySupportedDrawModes, defaultBox, defaultCircle, defaultDelete, defaultEdrStyles, defaultFreehandLine, defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, defaultLayers, defaultLineString, defaultLocation, defaultModes, defaultOval, defaultPoint, defaultPolygon, defaultSmoothLine, defaultSquare, defaultTimeFormat, dimensionConfig, drawPolyStoryStyles, drawStyles, emptyGeoJSON, endToolExampleConfig, exampleIntersectionOptions, exampleIntersectionWithShapeOptions, exampleIntersections, exampleIntersectionsMultiDrawTool, fakeEdrLayerApiHandlers, featureMultiPoint, featurePoint, featurePolygon, fetchStacCollection, fetchStacItem, fetchStacItems, fillOptions, firSelectionType, formatTime, generateImageFromLegend, genericOpenLayersFeatureStyle, geowebColorToOpenLayersColor, getBoxRotateHandlePoints, getDimensionIcon, getDimensionLabel, getDimensionValue, getDimensionsList, getDoubleControlToolIcon, getDrawModeIdFromSelectionType, getFeatureCollection, getFeatureExtent, getFeaturePointStyle, getFirTitle, getGeoJSONPropertyValue, getGeoJson, getIcon, getIntersectionToolIcon, getIsInsideAcceptanceTime, getLastEmptyFeatureIndex, getLayerBbox, getLayerStyles, getLayerUpdateInfo, getLegendClass, getProj4, getTimeDimension, getToolIcon, initializeOpenLayersProjections, inlineFeatureStyle, intersectPointGeoJSONS, intersectPolygonGeoJSONS, intersectionFeatureBE, intersectionFeatureNL, isGeoJSONFeatureCreatedByTool, isGeoJSONGeometryEmpty, isPointFeatureCollection, labelOptions, lineString, lineStringCollection, makeFeatureStyleDisc, makeFeatureStyleLoading, makeFeatureStyleMultiParam, makeFeatureStyleMultiParamLoading, makeFeatureStyleWind, makeLegendFromColorMap, makeLegendFromStyleName, makeTimeList, makeView, marksByDimension, measureResultStyle, measureToolStyle, modifyStyles, moveFeature, multiLineStringLabelStyle, multiPolygonLabelStyle, opacityOptions, openLayersGetMapImageStore, precipitationMMLegendColorsWoW, projectorCache, publicLayers, publicServices, rewindGeometry, roundCoordinates, selectPreferredWMSProjection, setMapCenter, setViewFromExtent, setViewFromFeature, simpleBoxGeoJSON, simpleBoxGeoJSONWrongOrder, simpleFlightRouteLineStringGeoJSON, simpleFlightRoutePointsGeoJSON, simpleGeometryCollectionGeoJSON, simpleLineStringGeoJSON, simpleMultiPolygon, simplePointsGeojson, simplePolygonGeoJSON, simpleSmallLineStringGeoJSON, startToolExampleConfig, strokeWidthOptions, styleNameToStyleLike, temperatureLegendColorsCWK, temperatureLegendColorsWoW, textLabelStyle, textStyle, textStyleWithMargin, updateEditModeButtonsWithFir, useAnimationForLayer, useEDRGetCollectionDetails, useEDRGetParameterData, useEDRWMLayer, useFetchGeoTIFFBlob, useGeoJSON, useGetWMLayerInstance, useGetWMSLayerStyleList, useIconStyle, useMapDrawTool, useProjection, useQueryGetWMSGetCapabilities, useQueryGetWMSLayer, useQueryGetWMSLayers, useQueryGetWMSLayersTree, useQueryGetWMSServiceInfo, useQueryWMTSGetCapabilities, useSetIntervalWhenVisible, useStacCollection, useStacItems, useViewFromLayer, viewUtils, webmapEDRQueryOptions, webmapReactTranslations };
19377
+ export { BaseLayerType, CLASSNAME_MAP_MEASURE_TOOLTIP, ClickOnMapTool, Clock, DEFAULT_GEOJSON_STYLE_FILL_OPACITY, DRAWMODE, DefaultBaseLayers, DimensionSelectButton, DimensionSelectDialog, DimensionSelectSlider, EditModeButton as EditModeButtonField, FEATURE_DRAW_FILL_COLOR, FEATURE_DRAW_FILL_COLOR_TRANSPARENT, FEATURE_DRAW_SECONDARY_FILL_COLOR, FEATURE_DRAW_SECONDARY_STROKE_COLOR, FEATURE_DRAW_STROKE_COLOR, FEATURE_FILL, FEATURE_FILL_SELECTED, FEATURE_STROKE, FEATURE_STROKE_EDIT, FEATURE_STROKE_SELECTED, FEATURE_VERTICES_EDIT_HANDLES, FEATURE_VERTICE_HANDLE_IMAGE, FEATURE_VERTICE_IMAGE, FeatureLayer, FeatureLayers, GeoJSONTextField, IntersectionSelect, LayerInfoButton, LayerInfoDialog, LayerInfoLegend, LayerInfoList, LayerInfoText, Legend, LegendButton, LegendDialog, LegendLayout, MIN_HEIGHT, MIN_WIDTH, MapContext, MapControlButton, MapControls, MapDimensionSelect, MapFeatureClass, MapMeasure, MapTime, MapWarningProperties, NEW_FEATURE_CREATED, NEW_LINESTRING_CREATED, NEW_POINT_CREATED, OpenLayersFeatureLayer, OpenLayersGetFeatureInfo, OpenLayersLayer, OpenLayersMapDraw, OpenLayersMapView, OpenLayersZoomControl, SelectField, StoryLayoutGrid, TimeAwareEDRLocationLayer, TimeAwareGeoTIFFLayer, TimeAwareWMTSLayer, TimeContext, TimeawareImageSource, TimeawareImageSourceWMSLayer, WEBMAP_REACT_NAMESPACE, WMSLayer, WMTSLayer, XYZLayer, ZoomControls, addFeatureProperties, addGeoJSONProperties, addSelectionTypeToGeoJSON, basicExampleDrawOptions, basicExampleMultipleShapeDrawOptions, basicExampleMultipleShapeWithValuesDrawOptions, catmullRomSpline, clearImageCacheForAllMaps, colorMaps, createBoxBasedOnModifiedVertex, createIconStyle, createInterSections, createOval, currentlySupportedDrawModes, defaultBox, defaultCircle, defaultDelete, defaultEdrStyles, defaultFreehandLine, defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, defaultLayers, defaultLineString, defaultLocation, defaultModes, defaultOval, defaultPoint, defaultPolygon, defaultRotatableBox, defaultSmoothLine, defaultSquare, defaultTimeFormat, dimensionConfig, drawPolyStoryStyles, drawStyles, emptyGeoJSON, endToolExampleConfig, exampleIntersectionOptions, exampleIntersectionWithShapeOptions, exampleIntersections, exampleIntersectionsMultiDrawTool, fakeEdrLayerApiHandlers, featureMultiPoint, featurePoint, featurePolygon, fetchStacCollection, fetchStacItem, fetchStacItems, fillOptions, firSelectionType, formatTime, generateImageFromLegend, genericOpenLayersFeatureStyle, geowebColorToOpenLayersColor, getBoxRotateHandlePoints, getDimensionIcon, getDimensionLabel, getDimensionValue, getDimensionsList, getDoubleControlToolIcon, getDrawModeIdFromSelectionType, getFeatureCollection, getFeatureExtent, getFeaturePointStyle, getFirTitle, getGeoJSONPropertyValue, getGeoJson, getIcon, getIntersectionToolIcon, getIsInsideAcceptanceTime, getLastEmptyFeatureIndex, getLayerBbox, getLayerStyles, getLayerUpdateInfo, getLegendClass, getProj4, getTimeDimension, getToolIcon, initializeOpenLayersProjections, inlineFeatureStyle, intersectPointGeoJSONS, intersectPolygonGeoJSONS, intersectionFeatureBE, intersectionFeatureNL, isGeoJSONFeatureCreatedByTool, isGeoJSONGeometryEmpty, isPointFeatureCollection, labelOptions, lineString, lineStringCollection, makeFeatureStyleDisc, makeFeatureStyleLoading, makeFeatureStyleMultiParam, makeFeatureStyleMultiParamLoading, makeFeatureStyleWind, makeLegendFromColorMap, makeLegendFromStyleName, makeTimeList, makeView, marksByDimension, measureResultStyle, measureToolStyle, modifyStyles, moveFeature, multiLineStringLabelStyle, multiPolygonLabelStyle, opacityOptions, openLayersGetMapImageStore, precipitationMMLegendColorsWoW, projectorCache, publicLayers, publicServices, rewindGeometry, roundCoordinates, selectPreferredWMSProjection, setMapCenter, setViewFromExtent, setViewFromFeature, simpleBoxGeoJSON, simpleBoxGeoJSONWrongOrder, simpleFlightRouteLineStringGeoJSON, simpleFlightRoutePointsGeoJSON, simpleGeometryCollectionGeoJSON, simpleLineStringGeoJSON, simpleMultiPolygon, simplePointsGeojson, simplePolygonGeoJSON, simpleSmallLineStringGeoJSON, startToolExampleConfig, strokeWidthOptions, styleNameToStyleLike, temperatureLegendColorsCWK, temperatureLegendColorsWoW, textLabelStyle, textStyle, textStyleWithMargin, updateEditModeButtonsWithFir, useAnimationForLayer, useEDRGetCollectionDetails, useEDRGetParameterData, useEDRWMLayer, useFetchGeoTIFFBlob, useGeoJSON, useGetWMLayerInstance, useGetWMSLayerStyleList, useIconStyle, useMapDrawTool, useProjection, useQueryGetWMSGetCapabilities, useQueryGetWMSLayer, useQueryGetWMSLayers, useQueryGetWMSLayersTree, useQueryGetWMSServiceInfo, useQueryWMTSGetCapabilities, useSetIntervalWhenVisible, useStacCollection, useStacItems, useViewFromLayer, viewUtils, webmapEDRQueryOptions, webmapReactTranslations };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/webmap-react",
3
- "version": "15.2.0",
3
+ "version": "15.3.0",
4
4
  "description": "GeoWeb react wrapper for webmap",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,9 +8,9 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/webmap": "15.2.0",
12
- "@opengeoweb/theme": "15.2.0",
13
- "@opengeoweb/shared": "15.2.0",
11
+ "@opengeoweb/webmap": "15.3.0",
12
+ "@opengeoweb/theme": "15.3.0",
13
+ "@opengeoweb/shared": "15.3.0",
14
14
  "lodash": "^4.17.21",
15
15
  "ol": "^10.4.0",
16
16
  "proj4": "^2.9.2",
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
+ import { OpenLayersMapView } from '.';
3
+ declare const meta: Meta<typeof OpenLayersMapView>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof OpenLayersMapView>;
6
+ export declare const MapViewNoTimeDim: Story;
@@ -1,6 +1,6 @@
1
1
  export * from './OpenLayersMapDraw';
2
2
  export * from './types';
3
- export { useMapDrawTool, defaultPoint, defaultDelete, defaultPolygon, defaultBox, defaultLocation, defaultIntersectionStyleProperties, defaultSmoothLine, defaultCircle, defaultFreehandLine, defaultLineString, defaultOval, defaultSquare, getIcon, currentlySupportedDrawModes, defaultModes, } from './useMapDrawTool';
3
+ export { useMapDrawTool, defaultPoint, defaultDelete, defaultPolygon, defaultBox, defaultLocation, defaultIntersectionStyleProperties, defaultSmoothLine, defaultCircle, defaultFreehandLine, defaultLineString, defaultOval, defaultSquare, defaultRotatableBox, getIcon, currentlySupportedDrawModes, defaultModes, } from './useMapDrawTool';
4
4
  export type { MapDrawToolOptions } from './useMapDrawTool';
5
5
  export * from './utils';
6
6
  export * from './storyExamplesMapDrawTool';
@@ -10,7 +10,8 @@ export declare enum DRAWMODE {
10
10
  SQUARE = "SQUARE",
11
11
  OVAL = "OVAL",
12
12
  LOCATION = "LOCATION",
13
- FREEHANDLINE = "FREEHANDLINE"
13
+ FREEHANDLINE = "FREEHANDLINE",
14
+ ROTATABLEBOX = "ROTATABLEBOX"
14
15
  }
15
16
  export interface FeatureEvent {
16
17
  coordinateIndexInFeature: number;
@@ -53,6 +53,7 @@ export declare const defaultFreehandLine: DrawMode;
53
53
  export declare const defaultOval: DrawMode;
54
54
  export declare const defaultLocation: DrawMode;
55
55
  export declare const defaultSmoothLine: DrawMode;
56
+ export declare const defaultRotatableBox: DrawMode;
56
57
  export declare const defaultModes: DrawMode[];
57
58
  export declare const currentlySupportedDrawModes: DrawMode[];
58
59
  export declare const useMapDrawTool: ({ defaultDrawModes, shouldAllowMultipleShapes, defaultGeoJSON, defaultGeoJSONIntersection, defaultGeoJSONIntersectionBounds, defaultGeoJSONIntersectionProperties, geoJSONLayerId, geoJSONIntersectionLayerId, geoJSONIntersectionBoundsLayerId, projection, }: MapDrawToolOptions) => MapDrawToolProps;
@@ -2,6 +2,7 @@ import type { Extent } from 'ol/extent';
2
2
  import type ImageWrapper from 'ol/Image';
3
3
  import type { Projection } from 'ol/proj';
4
4
  import ImageSource from 'ol/source/Image';
5
+ import type { WMImage } from '@opengeoweb/webmap';
5
6
  import TimeAwareImageWrapper from './TimeAwareImageWrapper';
6
7
  export declare const initImageWrapper: () => TimeAwareImageWrapper;
7
8
  interface TimeawareImageSourceOptions {
@@ -47,11 +48,18 @@ export declare class TimeawareImageSource extends ImageSource {
47
48
  getImage(extent: Extent, resolution: number, pixelRatio: number, projection: Projection): ImageWrapper;
48
49
  setDimProps(params: Record<string, string>): void;
49
50
  /**
50
- * Check if an image is available and loaded for requested date. Used for animation to proceed.
51
+ * Check if an image is available and loaded for requested date. Used for showlayerinfo to proceed.
51
52
  * @param isoTime
52
53
  * @returns
53
54
  */
54
55
  hasImageLoadedForTimeValue(isoTime: string): boolean;
56
+ getAltGeoReferencedImages(isoTime: string): WMImage[];
57
+ /**
58
+ * This function can be used to determine if the animation can proceed to the next step.
59
+ * @param isoTime ISO8601 string formatat like `YYYY-MM-DDTHH:MM:SSZ`
60
+ * @returns Only specic case it returns false: when a image is available and is loading. That means we wait till it is loaded.
61
+ * This function returns true if an image is not available in the store. Or true if it is available and already loaded.
62
+ */
55
63
  isImageLoadingForTimestep(isoTime: string): boolean;
56
64
  setImageForTimeValue(timeStampsToPrefetch: string): void;
57
65
  setStyle(styleName: string): void;
@@ -1,5 +1,12 @@
1
1
  import type { WMJSDimension, Dimension, WMLayer } from '@opengeoweb/webmap';
2
2
  import type { Timespan } from '../types/Timespan';
3
+ /**
4
+ *
5
+ * @param wmTimeDim WMDimension time containing dimension values
6
+ * @param stepsToCheck Array with timestamps as posix timestamps to check
7
+ * @param isAnimating If the application is running an animation loop
8
+ * @returns A string list with ISO8601 values to fetch
9
+ */
3
10
  export declare const makeDimValuesToPrefetch: (wmTimeDim: WMJSDimension, stepsToCheck: number[], isAnimating: boolean) => string[];
4
11
  export declare const extendPrefetchListWithModelRunTimeSteps: (wmLayer: WMLayer, stepsToCheck: number[]) => number[];
5
12
  /**
@@ -10,7 +17,7 @@ export declare const extendPrefetchListWithModelRunTimeSteps: (wmLayer: WMLayer,
10
17
  * @param wmLayer The layer for which we would like to do the request
11
18
  * @returns A map which returns a key/value to use
12
19
  */
13
- export declare const getDimensionParamsForWMS: (dimensions: Dimension[] | undefined, wmLayer: WMLayer | null) => Record<string, string> | undefined;
20
+ export declare const getDimensionParamsForWMS: (dimensions: Dimension[], wmLayer: WMLayer | null) => Record<string, string> | undefined;
14
21
  /**
15
22
  * Calculates number of timesteps for given timespan
16
23
  * @param timespan Object of Timespan, with start/stop/end in milliseconds