@opengeoweb/webmap 9.7.0 → 9.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { debounce, throttle } from 'throttle-debounce';
2
2
  import { compact, range } from 'lodash';
3
3
  import { dateUtils } from '@opengeoweb/shared';
4
- import { parseISO, isValid, add, sub, isWithinInterval } from 'date-fns';
5
4
  import moment from 'moment';
6
5
  import proj4 from 'proj4';
7
6
 
@@ -491,6 +490,21 @@ var WMSVersion = {
491
490
  version130: '1.3.0'
492
491
  };
493
492
  var WMProj4Defs = [['EPSG:4326', '+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees'], ['EPSG:4269', '+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees'], ['EPSG:3575', '+proj=laea +lat_0=90 +lon_0=10 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs'], ['EPSG:3785', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], ['EPSG:3857', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], ['EPSG:3411', '+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs'], ['EPSG:3412', '+proj=stere +lat_0=-90 +lat_ts=-70 +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs'], ['EPSG:28992', '+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs <>'], ['EPSG:32661', '+proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs'], ['EPSG:102100', '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs'], ['EPSG:3067', '+proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs +type=crs']];
493
+ var epsgDescriptionLookup = {
494
+ 'EPSG:3411': 'NSIDC Sea Ice Polar Stereographic North',
495
+ 'EPSG:3412': 'NSIDC Sea Ice Polar Stereographic South',
496
+ 'EPSG:3575': 'Lambert azimuthal equal-area projection Europe',
497
+ 'EPSG:3785': 'Mercator (deprecated)',
498
+ 'EPSG:3857': 'Mercator',
499
+ 'EPSG:4258': 'ETRS89',
500
+ 'EPSG:4326': 'World Lat lon WGS84',
501
+ 'CRS:84': 'World Lat lon WGS84',
502
+ 'EPSG:25831': 'ETRS89 / UTM zone 31N',
503
+ 'EPSG:25832': 'ETRS89 / UTM zone 32N',
504
+ 'EPSG:28992': 'Dutch Amersfoort / RD New',
505
+ 'EPSG:32661': 'Polar Stereographic WGS 84 / UPS North',
506
+ 'EPSG:3067': 'ETRS89 / TM35FIN(E,N) -- Finland'
507
+ };
494
508
  var mapImageStoreLength = 1000;
495
509
  var bgImageStoreLength = 360;
496
510
  var legendImageStoreLength = 500;
@@ -1178,8 +1192,17 @@ var WMImage = /*#__PURE__*/function () {
1178
1192
  var _this2 = this;
1179
1193
  var fetchHeaders = new Headers();
1180
1194
  if (headers && headers.length > 0) {
1181
- for (var j = 0; j < headers.length; j += 1) {
1182
- fetchHeaders.append(headers[j].name, headers[j].value);
1195
+ var _iterator = _createForOfIteratorHelper(headers),
1196
+ _step;
1197
+ try {
1198
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1199
+ var header = _step.value;
1200
+ fetchHeaders.append(header.name, header.value);
1201
+ }
1202
+ } catch (err) {
1203
+ _iterator.e(err);
1204
+ } finally {
1205
+ _iterator.f();
1183
1206
  }
1184
1207
  }
1185
1208
  var options = {
@@ -1331,8 +1354,17 @@ var WMImageStore = /*#__PURE__*/function () {
1331
1354
  }, {
1332
1355
  key: "imageLoadEventCallback",
1333
1356
  value: function imageLoadEventCallback(_img, imageEventType) {
1334
- for (var j = 0; j < this._loadEventCallbackList.length; j += 1) {
1335
- this._loadEventCallbackList[j].callback(_img, this._loadEventCallbackList[j].id, imageEventType);
1357
+ var _iterator = _createForOfIteratorHelper(this._loadEventCallbackList),
1358
+ _step;
1359
+ try {
1360
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1361
+ var eventCallback = _step.value;
1362
+ eventCallback.callback(_img, eventCallback.id, imageEventType);
1363
+ }
1364
+ } catch (err) {
1365
+ _iterator.e(err);
1366
+ } finally {
1367
+ _iterator.f();
1336
1368
  }
1337
1369
  }
1338
1370
  /**
@@ -1642,16 +1674,25 @@ var WMListener = /*#__PURE__*/function () {
1642
1674
  }, {
1643
1675
  key: "removeEvents",
1644
1676
  value: function removeEvents(name, f) {
1645
- for (var j = 0; j < this._callBacks.length; j += 1) {
1646
- if (this._callBacks[j].finished === 0) {
1647
- if (this._callBacks[j].name === name) {
1648
- if (!f) {
1649
- this._callBacks[j].finished = 1;
1650
- } else if (this._callBacks[j].functionpointer === f) {
1651
- this._callBacks[j].finished = 1;
1677
+ var _iterator = _createForOfIteratorHelper(this._callBacks),
1678
+ _step;
1679
+ try {
1680
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1681
+ var callBack = _step.value;
1682
+ if (callBack.finished === 0) {
1683
+ if (callBack.name === name) {
1684
+ if (!f) {
1685
+ callBack.finished = 1;
1686
+ } else if (callBack.functionpointer === f) {
1687
+ callBack.finished = 1;
1688
+ }
1652
1689
  }
1653
1690
  }
1654
1691
  }
1692
+ } catch (err) {
1693
+ _iterator.e(err);
1694
+ } finally {
1695
+ _iterator.f();
1655
1696
  }
1656
1697
  }
1657
1698
  }, {
@@ -1691,19 +1732,28 @@ var WMListener = /*#__PURE__*/function () {
1691
1732
  return [];
1692
1733
  }
1693
1734
  var returnList = [];
1694
- for (var j = 0; j < this._callBacks.length; j += 1) {
1695
- if (this._callBacks[j].finished === 0) {
1696
- if (this._callBacks[j].name === name) {
1697
- if (this._callBacks[j].keepOnCall === false) {
1698
- this._callBacks[j].finished = 1;
1699
- }
1700
- try {
1701
- returnList.push(this._callBacks[j].functionpointer(param, this));
1702
- } catch (e) {
1703
- debugLogger(DebugType.Error);
1735
+ var _iterator2 = _createForOfIteratorHelper(this._callBacks),
1736
+ _step2;
1737
+ try {
1738
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1739
+ var callBack = _step2.value;
1740
+ if (callBack.finished === 0) {
1741
+ if (callBack.name === name) {
1742
+ if (callBack.keepOnCall === false) {
1743
+ callBack.finished = 1;
1744
+ }
1745
+ try {
1746
+ returnList.push(callBack.functionpointer(param, this));
1747
+ } catch (e) {
1748
+ debugLogger(DebugType.Error, "Error for event [".concat(name, "]: "), param, e);
1749
+ }
1704
1750
  }
1705
1751
  }
1706
1752
  }
1753
+ } catch (err) {
1754
+ _iterator2.e(err);
1755
+ } finally {
1756
+ _iterator2.f();
1707
1757
  }
1708
1758
  return returnList;
1709
1759
  }
@@ -1882,11 +1932,20 @@ var WMCanvasBuffer = /*#__PURE__*/function () {
1882
1932
  }, {
1883
1933
  key: "_statDivBufferImageLoaded",
1884
1934
  value: function _statDivBufferImageLoaded() {
1885
- for (var j = 0; j < this.layers.length; j += 1) {
1886
- var image = this._imageStore.getImageForSrc(this.layers[j].imageSource);
1887
- if (!image || image.isLoaded() === false) {
1888
- return;
1935
+ var _iterator = _createForOfIteratorHelper(this.layers),
1936
+ _step;
1937
+ try {
1938
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1939
+ var layer = _step.value;
1940
+ var image = this._imageStore.getImageForSrc(layer.imageSource);
1941
+ if (!image || image.isLoaded() === false) {
1942
+ return;
1943
+ }
1889
1944
  }
1945
+ } catch (err) {
1946
+ _iterator.e(err);
1947
+ } finally {
1948
+ _iterator.f();
1890
1949
  }
1891
1950
  this.finishedLoading();
1892
1951
  }
@@ -2001,11 +2060,20 @@ var WMCanvasBuffer = /*#__PURE__*/function () {
2001
2060
  return;
2002
2061
  }
2003
2062
  this.ready = true;
2004
- for (var j = 0; j < this.layers.length; j += 1) {
2005
- var image = this._imageStore.getImageForSrc(this.layers[j].imageSource);
2006
- if (image && image.hasError()) {
2007
- debugLogger(DebugType.Error, "image error: ".concat(image.getSrc()));
2063
+ var _iterator2 = _createForOfIteratorHelper(this.layers),
2064
+ _step2;
2065
+ try {
2066
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2067
+ var layer = _step2.value;
2068
+ var image = this._imageStore.getImageForSrc(layer.imageSource);
2069
+ if (image && image.hasError()) {
2070
+ debugLogger(DebugType.Error, "image error: ".concat(image.getSrc()));
2071
+ }
2008
2072
  }
2073
+ } catch (err) {
2074
+ _iterator2.e(err);
2075
+ } finally {
2076
+ _iterator2.f();
2009
2077
  }
2010
2078
  try {
2011
2079
  if (isDefined(this.onLoadReadyFunction)) {
@@ -2181,8 +2249,8 @@ function prefetchImagesForNonAnimation(wmMap) {
2181
2249
  }
2182
2250
  var currentValue = timeDimension.currentValue;
2183
2251
  var currentTimeIsoString = timeDimension.getClosestValue(currentValue);
2184
- var currentTime = parseISO(currentTimeIsoString);
2185
- if (!isValid(currentTime)) {
2252
+ var currentTime = dateUtils.parseISO(currentTimeIsoString);
2253
+ if (!dateUtils.isValid(currentTime)) {
2186
2254
  return;
2187
2255
  }
2188
2256
  var maxTimesToPrefetchIfOneLayer = maxImagesToPrefetch / 2;
@@ -2190,8 +2258,8 @@ function prefetchImagesForNonAnimation(wmMap) {
2190
2258
  var duration = {
2191
2259
  minutes: timestepInMinutes * offset
2192
2260
  };
2193
- var nextTime = add(currentTime, duration).toISOString();
2194
- var previousTime = sub(currentTime, duration).toISOString();
2261
+ var nextTime = dateUtils.add(currentTime, duration).toISOString();
2262
+ var previousTime = dateUtils.sub(currentTime, duration).toISOString();
2195
2263
  return [nextTime, previousTime];
2196
2264
  });
2197
2265
  prefetchLayerImagesInOrder(wmMap, timesToPrefetchInOrder, maxImagesToPrefetch);
@@ -2649,8 +2717,8 @@ var WMTileRenderer = /*#__PURE__*/function () {
2649
2717
  }
2650
2718
  return 0;
2651
2719
  });
2652
- for (var i = 0; i < imagesToRender.length; i += 1) {
2653
- var image = imagesToRender[i];
2720
+ for (var _i = 0, _imagesToRender = imagesToRender; _i < _imagesToRender.length; _i++) {
2721
+ var image = _imagesToRender[_i];
2654
2722
  if (image.image.isLoaded() && !image.image.hasError()) {
2655
2723
  try {
2656
2724
  ctx.drawImage(image.i, image.x, image.y, image.w, image.h);
@@ -2668,22 +2736,6 @@ var WMTileRenderer = /*#__PURE__*/function () {
2668
2736
  return WMTileRenderer;
2669
2737
  }();
2670
2738
 
2671
- /* *
2672
- * Licensed under the Apache License, Version 2.0 (the "License");
2673
- * you may not use this file except in compliance with the License.
2674
- * You may obtain a copy of the License at
2675
- *
2676
- * http://www.apache.org/licenses/LICENSE-2.0
2677
- *
2678
- * Unless required by applicable law or agreed to in writing, software
2679
- * distributed under the License is distributed on an "AS IS" BASIS,
2680
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2681
- * See the License for the specific language governing permissions and
2682
- * limitations under the License.
2683
- *
2684
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
2685
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
2686
- * */
2687
2739
  var legendImageStore = new WMImageStore(legendImageStoreLength, {
2688
2740
  id: 'legendImageStore'
2689
2741
  });
@@ -2723,41 +2775,50 @@ var drawLegend = function drawLegend(canvasContext, width, height, layers) {
2723
2775
  /* Draw legends */
2724
2776
  var ctx = canvasContext;
2725
2777
  var legendPosX = 0;
2726
- for (var j = 0; j < layers.length; j += 1) {
2727
- if (layers[j].enabled !== false) {
2728
- var legendUrl = getLegendGraphicURLForLayer(layers[j]);
2729
- if (isDefined(legendUrl)) {
2730
- var image = legendImageStore.getImage(legendUrl, {
2731
- headers: layers[j].headers
2732
- });
2733
- if (image.hasError() === false) {
2734
- if (image.isLoaded() === false && image.isLoading() === false) {
2735
- image.load();
2736
- } else {
2737
- var el = image.getElement();
2738
- var legendW = Math.trunc(el.width) + 4;
2739
- var legendH = Math.trunc(el.height) + 4;
2740
- legendPosX += legendW + 4;
2741
- var legendX = width - legendPosX + 2;
2742
- var legendY = height - legendH - 2 - 13;
2743
- ctx.beginPath();
2744
- ctx.fillStyle = '#FFFFFF';
2745
- ctx.lineWidth = 0.3;
2746
- ctx.globalAlpha = 0.5;
2747
- ctx.strokeStyle = '#000000';
2748
- ctx.rect(legendX + 0.5, legendY + 0.5, legendW, legendH);
2749
- ctx.fill();
2750
- ctx.stroke();
2751
- ctx.globalAlpha = 1.0;
2752
- try {
2753
- ctx.drawImage(el, legendX, legendY);
2754
- } catch (e) {
2755
- debugLogger(DebugType.Error);
2778
+ var _iterator = _createForOfIteratorHelper(layers),
2779
+ _step;
2780
+ try {
2781
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
2782
+ var layer = _step.value;
2783
+ if (layer.enabled !== false) {
2784
+ var legendUrl = getLegendGraphicURLForLayer(layer);
2785
+ if (isDefined(legendUrl)) {
2786
+ var image = legendImageStore.getImage(legendUrl, {
2787
+ headers: layer.headers
2788
+ });
2789
+ if (image.hasError() === false) {
2790
+ if (image.isLoaded() === false && image.isLoading() === false) {
2791
+ image.load();
2792
+ } else {
2793
+ var el = image.getElement();
2794
+ var legendW = Math.trunc(el.width) + 4;
2795
+ var legendH = Math.trunc(el.height) + 4;
2796
+ legendPosX += legendW + 4;
2797
+ var legendX = width - legendPosX + 2;
2798
+ var legendY = height - legendH - 2 - 13;
2799
+ ctx.beginPath();
2800
+ ctx.fillStyle = '#FFFFFF';
2801
+ ctx.lineWidth = 0.3;
2802
+ ctx.globalAlpha = 0.5;
2803
+ ctx.strokeStyle = '#000000';
2804
+ ctx.rect(legendX + 0.5, legendY + 0.5, legendW, legendH);
2805
+ ctx.fill();
2806
+ ctx.stroke();
2807
+ ctx.globalAlpha = 1.0;
2808
+ try {
2809
+ ctx.drawImage(el, legendX, legendY);
2810
+ } catch (e) {
2811
+ debugLogger(DebugType.Error, "Unable to draw legend image ".concat(legendUrl));
2812
+ }
2756
2813
  }
2757
2814
  }
2758
2815
  }
2759
2816
  }
2760
2817
  }
2818
+ } catch (err) {
2819
+ _iterator.e(err);
2820
+ } finally {
2821
+ _iterator.f();
2761
2822
  }
2762
2823
  };
2763
2824
 
@@ -3226,7 +3287,7 @@ var ParseISOTimeRangeDuration = /*#__PURE__*/function () {
3226
3287
  var currentTime = next.getTime();
3227
3288
  next.add(this.timeInterval);
3228
3289
  var nextTime = next.getTime();
3229
- if (isWithinInterval(wantedTime, {
3290
+ if (dateUtils.isWithinInterval(wantedTime, {
3230
3291
  start: currentTime,
3231
3292
  end: nextTime
3232
3293
  })) {
@@ -3262,6 +3323,20 @@ var ParseISOTimeRangeDuration = /*#__PURE__*/function () {
3262
3323
  }]);
3263
3324
  return ParseISOTimeRangeDuration;
3264
3325
  }();
3326
+ function calculateTimeIntervalFromList(dateStrings) {
3327
+ if (dateStrings.length < 2) {
3328
+ throw new Error('Need at least two dates to calculate an interval.');
3329
+ }
3330
+ var firstDate = parseISO8601DateToDate(dateStrings[0]);
3331
+ var secondDate = parseISO8601DateToDate(dateStrings[1]);
3332
+ var years = dateUtils.differenceInYears(secondDate, firstDate);
3333
+ var months = dateUtils.differenceInMonths(secondDate, firstDate) % 12;
3334
+ var days = dateUtils.differenceInDays(secondDate, firstDate) % 30;
3335
+ var hours = dateUtils.differenceInHours(secondDate, firstDate) % 24;
3336
+ var minutes = dateUtils.differenceInMinutes(secondDate, firstDate) % 60;
3337
+ var seconds = dateUtils.differenceInSeconds(secondDate, firstDate) % 60;
3338
+ return new DateInterval(years.toString(), months.toString(), days.toString(), hours.toString(), minutes.toString(), seconds.toString());
3339
+ }
3265
3340
  /* Example:
3266
3341
  function init(){
3267
3342
  let isodate="1999-01-01T00:00:00Z/2009-12-01T00:00:00Z/PT60S";
@@ -3324,6 +3399,8 @@ var WMJSDimension = /*#__PURE__*/function () {
3324
3399
  this.getValue = this.getValue.bind(this);
3325
3400
  this.setValue = this.setValue.bind(this);
3326
3401
  this.getValues = this.getValues.bind(this);
3402
+ this.processCompressedRefTimeValues = this.processCompressedRefTimeValues.bind(this);
3403
+ this.createTimeStepsArray = this.createTimeStepsArray.bind(this);
3327
3404
  this.setClosestValue = this.setClosestValue.bind(this);
3328
3405
  this.addTimeRangeDurationToValue = this.addTimeRangeDurationToValue.bind(this);
3329
3406
  this.setTimeRangeDuration = this.setTimeRangeDuration.bind(this);
@@ -3458,8 +3535,12 @@ var WMJSDimension = /*#__PURE__*/function () {
3458
3535
  if (ogcdimvalues.indexOf('/') > 0 && ogcdimvalues.indexOf(',') === -1) {
3459
3536
  this._type = 'timestartstopres';
3460
3537
  this._timeRangeDurationDate = new ParseISOTimeRangeDuration(ogcdimvalues);
3538
+ this.processCompressedRefTimeValues(ogcdimvalues);
3461
3539
  } else {
3462
3540
  this._type = 'timevalues';
3541
+ if (ogcdimvalues.indexOf('/') > 0 && ogcdimvalues.indexOf(',') === -1 && this.name === 'reference_time') {
3542
+ this.processCompressedRefTimeValues(ogcdimvalues);
3543
+ }
3463
3544
  }
3464
3545
  } else {
3465
3546
  this._type = 'anyvalue';
@@ -3484,6 +3565,7 @@ var WMJSDimension = /*#__PURE__*/function () {
3484
3565
  _this._allValues.push(dataAtTimeStep.toString());
3485
3566
  }
3486
3567
  }
3568
+ _this.processCompressedRefTimeValues(ogcdimvalues);
3487
3569
  } else {
3488
3570
  var start = parseFloat(valuesRanged[0]);
3489
3571
  var stop = parseFloat(valuesRanged[1]);
@@ -3508,6 +3590,12 @@ var WMJSDimension = /*#__PURE__*/function () {
3508
3590
  this._allValues.forEach(function (value) {
3509
3591
  _this._allDates.push(parseISO8601DateToDate(value));
3510
3592
  });
3593
+ var isRangeFormat = this._allValues.some(function (value) {
3594
+ return value.includes('/');
3595
+ });
3596
+ if (!isRangeFormat && this._allValues.length > 1) {
3597
+ this.calculatedTimeInterval = calculateTimeIntervalFromList(this._allValues);
3598
+ }
3511
3599
  }
3512
3600
  }
3513
3601
  /* If no default value is given, take the last / most recent one */
@@ -3541,7 +3629,7 @@ var WMJSDimension = /*#__PURE__*/function () {
3541
3629
  if (this._timeRangeDurationDate) {
3542
3630
  this.dimTimeInterval = this._timeRangeDurationDate.timeInterval;
3543
3631
  } else {
3544
- this.dimTimeInterval = null;
3632
+ this.dimTimeInterval = this.calculatedTimeInterval;
3545
3633
  }
3546
3634
  }
3547
3635
  /**
@@ -3561,6 +3649,52 @@ var WMJSDimension = /*#__PURE__*/function () {
3561
3649
  value = this.addTimeRangeDurationToValue(value);
3562
3650
  return value;
3563
3651
  }
3652
+ }, {
3653
+ key: "processCompressedRefTimeValues",
3654
+ value: function processCompressedRefTimeValues(ogcdimvalues) {
3655
+ var _this2 = this;
3656
+ if (this.name === 'reference_time') {
3657
+ // Split the format start/stop/res
3658
+ var splitValues = ogcdimvalues.split(',');
3659
+ var timeRanges = splitValues.filter(function (value) {
3660
+ return value.includes('/') && value.includes('P');
3661
+ });
3662
+ var allValues = [];
3663
+ // Get all the ranges between start and stop time
3664
+ timeRanges.forEach(function (timeRange) {
3665
+ var partTimeRanges = new ParseISOTimeRangeDuration(timeRange);
3666
+ var newValues = _this2.createTimeStepsArray(partTimeRanges);
3667
+ allValues = allValues.concat(newValues);
3668
+ });
3669
+ // Some ogcdimvalues deliver the interval for arbitrary timesteps which may stop the array
3670
+ // In that case, get the last date to set as dimMaxValue
3671
+ var lastTimeRangeString = splitValues[splitValues.length - 1];
3672
+ if (lastTimeRangeString.includes('/') && lastTimeRangeString.includes('P')) {
3673
+ var _lastTimeRangeString$ = lastTimeRangeString.split('/'),
3674
+ _lastTimeRangeString$2 = _slicedToArray(_lastTimeRangeString$, 2),
3675
+ endDateString = _lastTimeRangeString$2[1];
3676
+ this.dimMaxValue = endDateString;
3677
+ }
3678
+ this.values = allValues.join(',');
3679
+ }
3680
+ }
3681
+ // eslint-disable-next-line class-methods-use-this
3682
+ }, {
3683
+ key: "createTimeStepsArray",
3684
+ value: function createTimeStepsArray(partTimeRanges) {
3685
+ return Array.from({
3686
+ length: partTimeRanges.getTimeSteps()
3687
+ }, function (_, i) {
3688
+ var dataAtTimeStep = partTimeRanges.getDateAtTimeStep(i);
3689
+ if (dataAtTimeStep && !isNaN(dataAtTimeStep.getTime())) {
3690
+ var isoDateString = dataAtTimeStep.toISO8601();
3691
+ return isoDateString;
3692
+ }
3693
+ return null;
3694
+ }).filter(function (dateString) {
3695
+ return dateString !== null;
3696
+ });
3697
+ }
3564
3698
  /**
3565
3699
  * Set current value of this dimension
3566
3700
  * @param value The new value for this dimension (string)
@@ -3788,7 +3922,7 @@ var WMJSDimension = /*#__PURE__*/function () {
3788
3922
  }, {
3789
3923
  key: "getIndexForValue",
3790
3924
  value: function getIndexForValue(value) {
3791
- var _this2 = this;
3925
+ var _this3 = this;
3792
3926
  var outSideOfRangeFlag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
3793
3927
  this.initialize();
3794
3928
  if (typeof value === 'string') {
@@ -3817,7 +3951,7 @@ var WMJSDimension = /*#__PURE__*/function () {
3817
3951
  var startTime = null;
3818
3952
  var stopTime = null;
3819
3953
  this._allValues.forEach(function (_, valueIndex) {
3820
- var currentTime = _this2._allDates[valueIndex].getTime();
3954
+ var currentTime = _this3._allDates[valueIndex].getTime();
3821
3955
  if (currentTime < startTime || startTime === null) {
3822
3956
  startTime = currentTime;
3823
3957
  }
@@ -4033,8 +4167,8 @@ var MapPin = /*#__PURE__*/function () {
4033
4167
  * See the License for the specific language governing permissions and
4034
4168
  * limitations under the License.
4035
4169
  *
4036
- * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
4037
- * Copyright 2021 - Finnish Meteorological Institute (FMI)
4170
+ * Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
4171
+ * Copyright 2024 - Finnish Meteorological Institute (FMI)
4038
4172
  * */
4039
4173
  var getBBOXandProjString = function getBBOXandProjString(map, layer) {
4040
4174
  var request = '';
@@ -4067,6 +4201,7 @@ var buildWMSGetMapRequest = function buildWMSGetMapRequest(map, layer, dimension
4067
4201
  var _map$getSize = map.getSize(),
4068
4202
  width = _map$getSize.width,
4069
4203
  height = _map$getSize.height;
4204
+ // eslint-disable-next-line no-param-reassign
4070
4205
  (_a = layer.format) !== null && _a !== void 0 ? _a : layer.format = 'image/png';
4071
4206
  // GetFeatureInfo timeseries in the mapview
4072
4207
  if (srs === 'GFI:TIME_ELEVATION') {
@@ -4143,6 +4278,12 @@ var buildWMSGetMapRequest = function buildWMSGetMapRequest(map, layer, dimension
4143
4278
  headers: layer.headers
4144
4279
  };
4145
4280
  };
4281
+ var isProjectionSupported = function isProjectionSupported(srs) {
4282
+ var proj4Defintions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : WMProj4Defs;
4283
+ return proj4Defintions.find(function (proj4Def) {
4284
+ return proj4Def[0] === srs;
4285
+ }) !== undefined;
4286
+ };
4146
4287
 
4147
4288
  var SCALE_DELAY = 10;
4148
4289
  var ZOOMED_CALLBACK_DELAY = 500;
@@ -4530,6 +4671,7 @@ var WMJSMap = /*#__PURE__*/function () {
4530
4671
  this.loadingDiv = document.createElement('div');
4531
4672
  this.loadingDiv.className = 'WMJSDivBuffer-loading';
4532
4673
  this.enableAutoPrefetching = true;
4674
+ this.isProjectionSupported = isProjectionSupported.bind(this);
4533
4675
  this.init();
4534
4676
  }
4535
4677
  _createClass(WMJSMap, [{
@@ -4574,28 +4716,37 @@ var WMJSMap = /*#__PURE__*/function () {
4574
4716
  key: "_adagucBeforeDraw",
4575
4717
  value: function _adagucBeforeDraw(ctx) {
4576
4718
  if (this.baseLayers) {
4577
- for (var l = 0; l < this.baseLayers.length; l += 1) {
4578
- if (this.baseLayers[l].enabled && this.baseLayers[l].keepOnTop === false && this.baseLayers[l].type && this.baseLayers[l].type === 'twms' && this.tileRenderSettings) {
4579
- ctx.globalAlpha = this.baseLayers[l].opacity;
4580
- var _this$wmTileRenderer$ = this.wmTileRenderer.render(this.bbox, this.updateBBOX, this.srs, this.width, this.height, ctx, bgMapImageStore, this.tileRenderSettings, this.baseLayers[l].name),
4581
- attributionText = _this$wmTileRenderer$.attributionText;
4582
- ctx.globalAlpha = 1.0;
4583
- var adagucAttribution = "ADAGUC webmapjs ".concat(this.WebMapJSMapVersion);
4584
- var txt = attributionText ? "".concat(adagucAttribution, " | ").concat(attributionText) : adagucAttribution;
4585
- var x = this.width - 8;
4586
- var y = this.height - 8;
4587
- ctx.font = '10px Arial';
4588
- ctx.textAlign = 'right';
4589
- ctx.textBaseline = 'middle';
4590
- ctx.fillStyle = '#FFF';
4591
- ctx.globalAlpha = 0.75;
4592
- var _ctx$measureText = ctx.measureText(txt),
4593
- width = _ctx$measureText.width;
4594
- ctx.fillRect(x - width, y - 6, width + 8, 14);
4595
- ctx.fillStyle = '#444';
4596
- ctx.globalAlpha = 1.0;
4597
- ctx.fillText(txt, x + 4, y + 2);
4719
+ var _iterator = _createForOfIteratorHelper(this.baseLayers),
4720
+ _step;
4721
+ try {
4722
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
4723
+ var baseLayer = _step.value;
4724
+ if (baseLayer.enabled && baseLayer.keepOnTop === false && baseLayer.type && baseLayer.type === 'twms' && this.tileRenderSettings) {
4725
+ ctx.globalAlpha = baseLayer.opacity;
4726
+ var _this$wmTileRenderer$ = this.wmTileRenderer.render(this.bbox, this.updateBBOX, this.srs, this.width, this.height, ctx, bgMapImageStore, this.tileRenderSettings, baseLayer.name),
4727
+ attributionText = _this$wmTileRenderer$.attributionText;
4728
+ ctx.globalAlpha = 1.0;
4729
+ var adagucAttribution = "ADAGUC webmapjs ".concat(this.WebMapJSMapVersion);
4730
+ var txt = attributionText ? "".concat(adagucAttribution, " | ").concat(attributionText) : adagucAttribution;
4731
+ var x = this.width - 8;
4732
+ var y = this.height - 8;
4733
+ ctx.font = '10px Arial';
4734
+ ctx.textAlign = 'right';
4735
+ ctx.textBaseline = 'middle';
4736
+ ctx.fillStyle = '#FFF';
4737
+ ctx.globalAlpha = 0.75;
4738
+ var _ctx$measureText = ctx.measureText(txt),
4739
+ width = _ctx$measureText.width;
4740
+ ctx.fillRect(x - width, y - 6, width + 8, 14);
4741
+ ctx.fillStyle = '#444';
4742
+ ctx.globalAlpha = 1.0;
4743
+ ctx.fillText(txt, x + 4, y + 2);
4744
+ }
4598
4745
  }
4746
+ } catch (err) {
4747
+ _iterator.e(err);
4748
+ } finally {
4749
+ _iterator.f();
4599
4750
  }
4600
4751
  }
4601
4752
  }
@@ -4638,33 +4789,51 @@ var WMJSMap = /*#__PURE__*/function () {
4638
4789
  ctx.globalAlpha = 1;
4639
4790
  }
4640
4791
  /* Gather errors */
4641
- for (var i = 0; i < this.layers.length; i += 1) {
4642
- for (var j = 0; j < this.layers[i].dimensions.length; j += 1) {
4643
- if (this.layers[i].dimensions[j].currentValue === WMDateOutSideRange) {
4644
- this.canvasErrors.push({
4645
- linkedInfo: {
4646
- layer: this.layers[i],
4647
- message: 'Time outside range'
4648
- }
4649
- });
4650
- } else if (this.layers[i].dimensions[j].currentValue === WMDateTooEarlyString) {
4651
- this.canvasErrors.push({
4652
- linkedInfo: {
4653
- layer: this.layers[i],
4654
- message: 'Time too early'
4655
- }
4656
- });
4657
- } else if (this.layers[i].dimensions[j].currentValue === WMDateTooLateString) {
4658
- this.canvasErrors.push({
4659
- linkedInfo: {
4660
- layer: this.layers[i],
4661
- message: 'Time too late'
4792
+ var _iterator2 = _createForOfIteratorHelper(this.layers),
4793
+ _step2;
4794
+ try {
4795
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
4796
+ var _layer2 = _step2.value;
4797
+ var _iterator3 = _createForOfIteratorHelper(_layer2.dimensions),
4798
+ _step3;
4799
+ try {
4800
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
4801
+ var _dimension = _step3.value;
4802
+ if (_dimension.currentValue === WMDateOutSideRange) {
4803
+ this.canvasErrors.push({
4804
+ linkedInfo: {
4805
+ layer: _layer2,
4806
+ message: 'Time outside range'
4807
+ }
4808
+ });
4809
+ } else if (_dimension.currentValue === WMDateTooEarlyString) {
4810
+ this.canvasErrors.push({
4811
+ linkedInfo: {
4812
+ layer: _layer2,
4813
+ message: 'Time too early'
4814
+ }
4815
+ });
4816
+ } else if (_dimension.currentValue === WMDateTooLateString) {
4817
+ this.canvasErrors.push({
4818
+ linkedInfo: {
4819
+ layer: _layer2,
4820
+ message: 'Time too late'
4821
+ }
4822
+ });
4662
4823
  }
4663
- });
4824
+ }
4825
+ } catch (err) {
4826
+ _iterator3.e(err);
4827
+ } finally {
4828
+ _iterator3.f();
4664
4829
  }
4665
4830
  }
4831
+ /* Display errors found during drawing canvas */
4832
+ } catch (err) {
4833
+ _iterator2.e(err);
4834
+ } finally {
4835
+ _iterator2.f();
4666
4836
  }
4667
- /* Display errors found during drawing canvas */
4668
4837
  if (this.canvasErrors && this.canvasErrors.length > 0) {
4669
4838
  var errorsToDisplay = getErrorsToDisplay(this.canvasErrors, this.getLayerByServiceAndName);
4670
4839
  this.canvasErrors = [];
@@ -4766,15 +4935,15 @@ var WMJSMap = /*#__PURE__*/function () {
4766
4935
  ctx.font = '9px Helvetica';
4767
4936
  ctx.textBaseline = 'middle';
4768
4937
  ctx.textAlign = 'left';
4769
- for (var _j = 0; _j < 2; _j += 1) {
4770
- ctx.moveTo(offsetX, scaleBarHeight - 2 - _j + offsetY);
4771
- ctx.lineTo(scaleBarProps.width * 2 + offsetX + 1, scaleBarHeight - 2 - _j + offsetY);
4938
+ for (var j = 0; j < 2; j += 1) {
4939
+ ctx.moveTo(offsetX, scaleBarHeight - 2 - j + offsetY);
4940
+ ctx.lineTo(scaleBarProps.width * 2 + offsetX + 1, scaleBarHeight - 2 - j + offsetY);
4772
4941
  }
4773
4942
  var subDivXW = parseInt(Math.round(scaleBarProps.width / 5), 10);
4774
4943
  ctx.lineWidth = 0.5;
4775
- for (var _j2 = 1; _j2 < 5; _j2 += 1) {
4776
- ctx.moveTo(offsetX + subDivXW * _j2, scaleBarHeight - 2 + offsetY);
4777
- ctx.lineTo(offsetX + subDivXW * _j2, scaleBarHeight - 2 - 5 + offsetY);
4944
+ for (var _j = 1; _j < 5; _j += 1) {
4945
+ ctx.moveTo(offsetX + subDivXW * _j, scaleBarHeight - 2 + offsetY);
4946
+ ctx.lineTo(offsetX + subDivXW * _j, scaleBarHeight - 2 - 5 + offsetY);
4778
4947
  }
4779
4948
  ctx.lineWidth = 1.0;
4780
4949
  ctx.moveTo(offsetX, scaleBarHeight - 2 + offsetY);
@@ -4869,9 +5038,9 @@ var WMJSMap = /*#__PURE__*/function () {
4869
5038
  drawTextBG(ctx, 'Layer name', metadataX, metadataY + rowNumber * rowHeight, 10);
4870
5039
  drawTextBG(ctx, 'Dimensions', metadataX + dimStartX, metadataY + rowNumber * rowHeight, 10);
4871
5040
  rowNumber += 1;
4872
- for (var _j3 = 0; _j3 < this.layers.length; _j3 += 1) {
4873
- var layer = this.layers[_j3];
4874
- drawTextBG(ctx, "#".concat(_j3, ":").concat(layer.name), metadataX, metadataY + rowNumber * rowHeight, 10);
5041
+ for (var _j2 = 0; _j2 < this.layers.length; _j2 += 1) {
5042
+ var layer = this.layers[_j2];
5043
+ drawTextBG(ctx, "#".concat(_j2, ":").concat(layer.name), metadataX, metadataY + rowNumber * rowHeight, 10);
4875
5044
  for (var d = 0; d < layer.dimensions.length; d += 1) {
4876
5045
  var dimension = layer.dimensions[d];
4877
5046
  drawTextBG(ctx, "".concat(dimension.name, " = ").concat(dimension.currentValue), metadataX + d * 200 + dimStartX, metadataY + rowNumber * rowHeight, 10);
@@ -5062,8 +5231,17 @@ var WMJSMap = /*#__PURE__*/function () {
5062
5231
  }, {
5063
5232
  key: "setActiveLayer",
5064
5233
  value: function setActiveLayer(layer) {
5065
- for (var j = 0; j < this.layers.length; j += 1) {
5066
- this.layers[j].active = false;
5234
+ var _iterator4 = _createForOfIteratorHelper(this.layers),
5235
+ _step4;
5236
+ try {
5237
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
5238
+ var _layer3 = _step4.value;
5239
+ _layer3.active = false;
5240
+ }
5241
+ } catch (err) {
5242
+ _iterator4.e(err);
5243
+ } finally {
5244
+ _iterator4.f();
5067
5245
  }
5068
5246
  this.activeLayer = layer;
5069
5247
  this.activeLayer.active = true;
@@ -5076,12 +5254,21 @@ var WMJSMap = /*#__PURE__*/function () {
5076
5254
  value: function calculateNumBaseLayers() {
5077
5255
  this.numBaseLayers = 0;
5078
5256
  if (this.baseLayers) {
5079
- for (var l = 0; l < this.baseLayers.length; l += 1) {
5080
- if (this.baseLayers[l].enabled) {
5081
- if (this.baseLayers[l].keepOnTop === false) {
5082
- this.numBaseLayers += 1;
5257
+ var _iterator5 = _createForOfIteratorHelper(this.baseLayers),
5258
+ _step5;
5259
+ try {
5260
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
5261
+ var baseLayer = _step5.value;
5262
+ if (baseLayer.enabled) {
5263
+ if (baseLayer.keepOnTop === false) {
5264
+ this.numBaseLayers += 1;
5265
+ }
5083
5266
  }
5084
5267
  }
5268
+ } catch (err) {
5269
+ _iterator5.e(err);
5270
+ } finally {
5271
+ _iterator5.f();
5085
5272
  }
5086
5273
  }
5087
5274
  }
@@ -5133,8 +5320,17 @@ var WMJSMap = /*#__PURE__*/function () {
5133
5320
  }, {
5134
5321
  key: "removeAllLayers",
5135
5322
  value: function removeAllLayers() {
5136
- for (var i = 0; i < this.layers.length; i += 1) {
5137
- this.layers[i].setAutoUpdate(false);
5323
+ var _iterator6 = _createForOfIteratorHelper(this.layers),
5324
+ _step6;
5325
+ try {
5326
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
5327
+ var layer = _step6.value;
5328
+ layer.setAutoUpdate(false);
5329
+ }
5330
+ } catch (err) {
5331
+ _iterator6.e(err);
5332
+ } finally {
5333
+ _iterator6.f();
5138
5334
  }
5139
5335
  this.layers.length = 0;
5140
5336
  this.mapdimensions.length = 0;
@@ -5454,15 +5650,33 @@ var WMJSMap = /*#__PURE__*/function () {
5454
5650
  // Make first a header with 'Layer' and the dimensions
5455
5651
  infoHTML += '<tr><th>Layer</th>';
5456
5652
  if (this.mapdimensions) {
5457
- for (var d = 0; d < this.mapdimensions.length; d += 1) {
5458
- infoHTML += "<th>".concat(this.mapdimensions[d].name, "</th>");
5653
+ var _iterator7 = _createForOfIteratorHelper(this.mapdimensions),
5654
+ _step7;
5655
+ try {
5656
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
5657
+ var mapDim = _step7.value;
5658
+ infoHTML += "<th>".concat(mapDim.name, "</th>");
5659
+ }
5660
+ } catch (err) {
5661
+ _iterator7.e(err);
5662
+ } finally {
5663
+ _iterator7.f();
5459
5664
  }
5460
5665
  }
5461
5666
  infoHTML += '</tr>';
5462
5667
  infoHTML += '<tr><td>Map</tdh>';
5463
5668
  if (this.mapdimensions) {
5464
- for (var _d = 0; _d < this.mapdimensions.length; _d += 1) {
5465
- infoHTML += "<td>".concat(this.mapdimensions[_d].currentValue, "</td>");
5669
+ var _iterator8 = _createForOfIteratorHelper(this.mapdimensions),
5670
+ _step8;
5671
+ try {
5672
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
5673
+ var _mapDim = _step8.value;
5674
+ infoHTML += "<td>".concat(_mapDim.currentValue, "</td>");
5675
+ }
5676
+ } catch (err) {
5677
+ _iterator8.e(err);
5678
+ } finally {
5679
+ _iterator8.f();
5466
5680
  }
5467
5681
  }
5468
5682
  infoHTML += '</tr>';
@@ -5475,19 +5689,37 @@ var WMJSMap = /*#__PURE__*/function () {
5475
5689
  var layerTitle = '';
5476
5690
  layerTitle += this.layers[j].title;
5477
5691
  infoHTML += "<tr><td>".concat(layerTitle, "</td>");
5478
- for (var mapdim = 0; mapdim < this.mapdimensions.length; mapdim += 1) {
5479
- var foundDim = false;
5480
- for (var layerdim = 0; layerdim < layerDimensionsObject.length; layerdim += 1) {
5481
- if (layerDimensionsObject[layerdim].name.toUpperCase() === this.mapdimensions[mapdim].name.toUpperCase()) {
5482
- infoHTML += "<td>".concat(layerDimensionsObject[layerdim].currentValue, "</td>");
5483
- foundDim = true;
5484
- infoHTMLHasValidContent = true;
5485
- break;
5692
+ var _iterator9 = _createForOfIteratorHelper(this.mapdimensions),
5693
+ _step9;
5694
+ try {
5695
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
5696
+ var _mapDim2 = _step9.value;
5697
+ var foundDim = false;
5698
+ var _iterator10 = _createForOfIteratorHelper(layerDimensionsObject),
5699
+ _step10;
5700
+ try {
5701
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
5702
+ var layerDim = _step10.value;
5703
+ if (layerDim.name.toUpperCase() === _mapDim2.name.toUpperCase()) {
5704
+ infoHTML += "<td>".concat(layerDim.currentValue, "</td>");
5705
+ foundDim = true;
5706
+ infoHTMLHasValidContent = true;
5707
+ break;
5708
+ }
5709
+ }
5710
+ } catch (err) {
5711
+ _iterator10.e(err);
5712
+ } finally {
5713
+ _iterator10.f();
5714
+ }
5715
+ if (foundDim === false) {
5716
+ infoHTML += '<td>-</td>';
5486
5717
  }
5487
5718
  }
5488
- if (foundDim === false) {
5489
- infoHTML += '<td>-</td>';
5490
- }
5719
+ } catch (err) {
5720
+ _iterator9.e(err);
5721
+ } finally {
5722
+ _iterator9.f();
5491
5723
  }
5492
5724
  infoHTML += '</tr>';
5493
5725
  }
@@ -5740,10 +5972,19 @@ var WMJSMap = /*#__PURE__*/function () {
5740
5972
  if (layer) {
5741
5973
  this.numBaseLayers = 0;
5742
5974
  this.baseLayers.push(layer);
5743
- for (var j = 0; j < this.baseLayers.length; j += 1) {
5744
- if (this.baseLayers[j].keepOnTop === true) {
5745
- this.numBaseLayers += 1;
5975
+ var _iterator11 = _createForOfIteratorHelper(this.baseLayers),
5976
+ _step11;
5977
+ try {
5978
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
5979
+ var baseLayer = _step11.value;
5980
+ if (baseLayer.keepOnTop === true) {
5981
+ this.numBaseLayers += 1;
5982
+ }
5746
5983
  }
5984
+ } catch (err) {
5985
+ _iterator11.e(err);
5986
+ } finally {
5987
+ _iterator11.f();
5747
5988
  }
5748
5989
  this.callBack.triggerEvent('onlayeradd');
5749
5990
  } else {
@@ -5756,11 +5997,20 @@ var WMJSMap = /*#__PURE__*/function () {
5756
5997
  if (layer) {
5757
5998
  this.numBaseLayers = 0;
5758
5999
  this.baseLayers = layer;
5759
- for (var j = 0; j < this.baseLayers.length; j += 1) {
5760
- this.baseLayers[j].parentMap = this;
5761
- if (this.baseLayers[j].keepOnTop !== true) {
5762
- this.numBaseLayers += 1;
6000
+ var _iterator12 = _createForOfIteratorHelper(this.baseLayers),
6001
+ _step12;
6002
+ try {
6003
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
6004
+ var baseLayer = _step12.value;
6005
+ baseLayer.parentMap = this;
6006
+ if (baseLayer.keepOnTop !== true) {
6007
+ this.numBaseLayers += 1;
6008
+ }
5763
6009
  }
6010
+ } catch (err) {
6011
+ _iterator12.e(err);
6012
+ } finally {
6013
+ _iterator12.f();
5764
6014
  }
5765
6015
  this.callBack.triggerEvent('onlayerchange');
5766
6016
  } else {
@@ -6061,10 +6311,19 @@ var WMJSMap = /*#__PURE__*/function () {
6061
6311
  rightButton: detectRightButton(event),
6062
6312
  shiftKey: shiftKey
6063
6313
  });
6064
- for (var j = 0; j < triggerResults.length; j += 1) {
6065
- if (triggerResults[j] === false) {
6066
- return;
6314
+ var _iterator13 = _createForOfIteratorHelper(triggerResults),
6315
+ _step13;
6316
+ try {
6317
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
6318
+ var triggerResult = _step13.value;
6319
+ if (triggerResult === false) {
6320
+ return;
6321
+ }
6067
6322
  }
6323
+ } catch (err) {
6324
+ _iterator13.e(err);
6325
+ } finally {
6326
+ _iterator13.f();
6068
6327
  }
6069
6328
  }
6070
6329
  }
@@ -6190,10 +6449,19 @@ var WMJSMap = /*#__PURE__*/function () {
6190
6449
  leftButton: detectLeftButton(event),
6191
6450
  rightButton: detectRightButton(event)
6192
6451
  });
6193
- for (var j = 0; j < triggerResults.length; j += 1) {
6194
- if (triggerResults[j] === false) {
6195
- return;
6452
+ var _iterator14 = _createForOfIteratorHelper(triggerResults),
6453
+ _step14;
6454
+ try {
6455
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
6456
+ var triggerResult = _step14.value;
6457
+ if (triggerResult === false) {
6458
+ return;
6459
+ }
6196
6460
  }
6461
+ } catch (err) {
6462
+ _iterator14.e(err);
6463
+ } finally {
6464
+ _iterator14.f();
6197
6465
  }
6198
6466
  }
6199
6467
  if (this.divBoundingBox.displayed === true && this.mapPanning === 0) {
@@ -6351,11 +6619,20 @@ var WMJSMap = /*#__PURE__*/function () {
6351
6619
  mouseDown: false,
6352
6620
  event: e
6353
6621
  });
6354
- for (var j = 0; j < triggerResults.length; j += 1) {
6355
- if (triggerResults[j] === false) {
6356
- this.mouseDownPressed = 0;
6357
- return;
6622
+ var _iterator15 = _createForOfIteratorHelper(triggerResults),
6623
+ _step15;
6624
+ try {
6625
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
6626
+ var triggerResult = _step15.value;
6627
+ if (triggerResult === false) {
6628
+ this.mouseDownPressed = 0;
6629
+ return;
6630
+ }
6358
6631
  }
6632
+ } catch (err) {
6633
+ _iterator15.e(err);
6634
+ } finally {
6635
+ _iterator15.f();
6359
6636
  }
6360
6637
  }
6361
6638
  }
@@ -6447,9 +6724,18 @@ var WMJSMap = /*#__PURE__*/function () {
6447
6724
  this.zoomTo(this.updateBBOX);
6448
6725
  this.wMFlyToBBox.flyZoomToBBOXStop();
6449
6726
  this.baseDiv.style.cursor = 'move';
6450
- for (var j = 0; j < this.gfiDialogList.length; j += 1) {
6451
- this.gfiDialogList[j].origX = this.gfiDialogList[j].x;
6452
- this.gfiDialogList[j].origY = this.gfiDialogList[j].y;
6727
+ var _iterator16 = _createForOfIteratorHelper(this.gfiDialogList),
6728
+ _step16;
6729
+ try {
6730
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
6731
+ var gfiDialog = _step16.value;
6732
+ gfiDialog.origX = gfiDialog.x;
6733
+ gfiDialog.origY = gfiDialog.y;
6734
+ }
6735
+ } catch (err) {
6736
+ _iterator16.e(err);
6737
+ } finally {
6738
+ _iterator16.f();
6453
6739
  }
6454
6740
  this.mapPanning = 1;
6455
6741
  debugLogger(DebugType.Log);
@@ -6675,16 +6961,25 @@ var WMJSMap = /*#__PURE__*/function () {
6675
6961
  this._updateBoundingBox(this.bbox);
6676
6962
  this.drawnBBOX.setBBOX(this.bbox);
6677
6963
  var resetMapPinAndDialogs = function resetMapPinAndDialogs() {
6678
- for (var j = 0; j < _this12.gfiDialogList.length; j += 1) {
6679
- var newpos = _this12.getPixelCoordFromGeoCoord({
6680
- x: _this12.gfiDialogList[j].geoPosX,
6681
- y: _this12.gfiDialogList[j].geoPosY
6682
- });
6683
- if (_this12.gfiDialogList[j].hasBeenDragged === false) {
6684
- if (_this12.gfiDialogList[j].moveToMouseCursor === true) {
6685
- _this12.gfiDialogList[j].setXY(_this12.gfiDialogList[j].origX + newpos.x, _this12.gfiDialogList[j].origY + newpos.y);
6964
+ var _iterator17 = _createForOfIteratorHelper(_this12.gfiDialogList),
6965
+ _step17;
6966
+ try {
6967
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
6968
+ var gfiDialog = _step17.value;
6969
+ var newpos = _this12.getPixelCoordFromGeoCoord({
6970
+ x: gfiDialog.geoPosX,
6971
+ y: gfiDialog.geoPosY
6972
+ });
6973
+ if (gfiDialog.hasBeenDragged === false) {
6974
+ if (gfiDialog.moveToMouseCursor === true) {
6975
+ gfiDialog.setXY(gfiDialog.origX + newpos.x, gfiDialog.origY + newpos.y);
6976
+ }
6686
6977
  }
6687
6978
  }
6979
+ } catch (err) {
6980
+ _iterator17.e(err);
6981
+ } finally {
6982
+ _iterator17.f();
6688
6983
  }
6689
6984
  };
6690
6985
  resetMapPinAndDialogs();
@@ -6873,10 +7168,19 @@ var WMJSMap = /*#__PURE__*/function () {
6873
7168
  }, {
6874
7169
  key: "getDimension",
6875
7170
  value: function getDimension(name) {
6876
- for (var i = 0; i < this.mapdimensions.length; i += 1) {
6877
- if (this.mapdimensions[i].name === name) {
6878
- return this.mapdimensions[i];
7171
+ var _iterator18 = _createForOfIteratorHelper(this.mapdimensions),
7172
+ _step18;
7173
+ try {
7174
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
7175
+ var mapDimension = _step18.value;
7176
+ if (mapDimension.name === name) {
7177
+ return mapDimension;
7178
+ }
6879
7179
  }
7180
+ } catch (err) {
7181
+ _iterator18.e(err);
7182
+ } finally {
7183
+ _iterator18.f();
6880
7184
  }
6881
7185
  return undefined;
6882
7186
  }
@@ -6927,19 +7231,28 @@ var WMJSMap = /*#__PURE__*/function () {
6927
7231
  this.draw('zoomTolayer');
6928
7232
  return;
6929
7233
  }
6930
- for (var j = 0; j < layer.projectionProperties.length; j += 1) {
6931
- if (layer.projectionProperties[j].srs === this.srs) {
6932
- var w = layer.projectionProperties[j].bbox.right - layer.projectionProperties[j].bbox.left;
6933
- var h = layer.projectionProperties[j].bbox.top - layer.projectionProperties[j].bbox.bottom;
6934
- var newBBOX = layer.projectionProperties[j].bbox.clone();
6935
- newBBOX.left -= w / 100;
6936
- newBBOX.right += w / 100;
6937
- newBBOX.bottom -= h / 100;
6938
- newBBOX.top += h / 100;
6939
- this.zoomTo(newBBOX);
6940
- this.draw('zoomTolayer');
6941
- return;
7234
+ var _iterator19 = _createForOfIteratorHelper(layer.projectionProperties),
7235
+ _step19;
7236
+ try {
7237
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
7238
+ var layerProjProp = _step19.value;
7239
+ if (layerProjProp.srs === this.srs) {
7240
+ var w = layerProjProp.bbox.right - layerProjProp.bbox.left;
7241
+ var h = layerProjProp.bbox.top - layerProjProp.bbox.bottom;
7242
+ var newBBOX = layerProjProp.bbox.clone();
7243
+ newBBOX.left -= w / 100;
7244
+ newBBOX.right += w / 100;
7245
+ newBBOX.bottom -= h / 100;
7246
+ newBBOX.top += h / 100;
7247
+ this.zoomTo(newBBOX);
7248
+ this.draw('zoomTolayer');
7249
+ return;
7250
+ }
6942
7251
  }
7252
+ } catch (err) {
7253
+ _iterator19.e(err);
7254
+ } finally {
7255
+ _iterator19.f();
6943
7256
  }
6944
7257
  debugLogger(DebugType.Error, "WebMapJS: Unable to find the correct bbox with current map projection ".concat(this.srs, " for layer ").concat(layer.title, ". Using default bbox instead."));
6945
7258
  this.zoomTo(this.defaultBBOX);
@@ -6982,14 +7295,14 @@ var WMJSMap = /*#__PURE__*/function () {
6982
7295
  for (var j = 0; j <= this.UndoPointer; j += 1) {
6983
7296
  this.WMProjectionTempUndo[j] = this.WMProjectionUndo[j];
6984
7297
  }
6985
- for (var _j4 = 0; _j4 <= this.UndoPointer; _j4 += 1) {
6986
- this.WMProjectionUndo[_j4] = this.WMProjectionTempUndo[this.UndoPointer - _j4];
7298
+ for (var _j3 = 0; _j3 <= this.UndoPointer; _j3 += 1) {
7299
+ this.WMProjectionUndo[_j3] = this.WMProjectionTempUndo[this.UndoPointer - _j3];
6987
7300
  }
6988
7301
  this.UndoPointer = 0;
6989
7302
  }
6990
- for (var _j5 = this.MaxUndos - 1; _j5 > 0; _j5 -= 1) {
6991
- this.WMProjectionUndo[_j5].bbox.setBBOX(this.WMProjectionUndo[_j5 - 1].bbox);
6992
- this.WMProjectionUndo[_j5].srs = this.WMProjectionUndo[_j5 - 1].srs;
7303
+ for (var _j4 = this.MaxUndos - 1; _j4 > 0; _j4 -= 1) {
7304
+ this.WMProjectionUndo[_j4].bbox.setBBOX(this.WMProjectionUndo[_j4 - 1].bbox);
7305
+ this.WMProjectionUndo[_j4].srs = this.WMProjectionUndo[_j4 - 1].srs;
6993
7306
  }
6994
7307
  this.WMProjectionUndo[0].bbox.setBBOX(this.bbox);
6995
7308
  this.WMProjectionUndo[0].srs = this.srs;
@@ -7529,46 +7842,63 @@ var WMXMLtoJSON = function WMXMLtoJSON(xmlDocument) {
7529
7842
  // eslint-disable-next-line no-shadow
7530
7843
  var traverse = function traverse(data, path, json) {
7531
7844
  if (data.children && data.children.length) {
7532
- for (var childc = 0; childc < data.children.length; childc += 1) {
7533
- var child = data.children[childc];
7534
- var newPath = "".concat(path, "->").concat(child.nodeName);
7535
- var newJson = null;
7536
- var nodeName = child.nodeName;
7537
- if (json[nodeName]) {
7538
- newJson = {
7539
- attr: {}
7540
- };
7541
- // eslint-disable-next-line no-empty
7542
- if (json[nodeName] instanceof Array) ; else {
7543
- var obj = Object.assign({}, json[nodeName]);
7845
+ var _iterator = _createForOfIteratorHelper(data.children),
7846
+ _step;
7847
+ try {
7848
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
7849
+ var child = _step.value;
7850
+ var newPath = "".concat(path, "->").concat(child.nodeName);
7851
+ var newJson = null;
7852
+ var nodeName = child.nodeName;
7853
+ if (json[nodeName]) {
7854
+ newJson = {
7855
+ attr: {}
7856
+ };
7857
+ // eslint-disable-next-line no-empty
7858
+ if (json[nodeName] instanceof Array) {} else {
7859
+ var obj = Object.assign({}, json[nodeName]);
7860
+ // eslint-disable-next-line no-param-reassign
7861
+ json[nodeName] = [];
7862
+ json[nodeName].push(obj);
7863
+ }
7864
+ json[nodeName].push(newJson);
7865
+ } else {
7544
7866
  // eslint-disable-next-line no-param-reassign
7545
- json[nodeName] = [];
7546
- json[nodeName].push(obj);
7867
+ json[nodeName] = {
7868
+ attr: {}
7869
+ };
7870
+ newJson = json[nodeName];
7547
7871
  }
7548
- json[nodeName].push(newJson);
7549
- } else {
7550
- // eslint-disable-next-line no-param-reassign
7551
- json[nodeName] = {
7552
- attr: {}
7553
- };
7554
- newJson = json[nodeName];
7555
- }
7556
- // Value
7557
- if (child.childNodes && child.childNodes.length > 0) {
7558
- if (child.childNodes[0].nodeValue) {
7559
- var value = child.childNodes[0].nodeValue.trim();
7560
- if (value !== '\n' && value.length > 0) {
7561
- newJson.value = value;
7872
+ // Value
7873
+ if (child.childNodes && child.childNodes.length > 0) {
7874
+ if (child.childNodes[0].nodeValue) {
7875
+ var value = child.childNodes[0].nodeValue.trim();
7876
+ if (value !== '\n' && value.length > 0) {
7877
+ newJson.value = value;
7878
+ }
7562
7879
  }
7563
7880
  }
7564
- }
7565
- // Attributes
7566
- if (child.attributes && child.attributes.length > 0) {
7567
- for (var attrc = 0; attrc < child.attributes.length; attrc += 1) {
7568
- newJson.attr[child.attributes[attrc].name] = child.attributes[attrc].value;
7881
+ // Attributes
7882
+ if (child.attributes && child.attributes.length > 0) {
7883
+ var _iterator2 = _createForOfIteratorHelper(child.attributes),
7884
+ _step2;
7885
+ try {
7886
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
7887
+ var childAttribute = _step2.value;
7888
+ newJson.attr[childAttribute.name] = childAttribute.value;
7889
+ }
7890
+ } catch (err) {
7891
+ _iterator2.e(err);
7892
+ } finally {
7893
+ _iterator2.f();
7894
+ }
7569
7895
  }
7896
+ traverse(child, newPath, newJson);
7570
7897
  }
7571
- traverse(child, newPath, newJson);
7898
+ } catch (err) {
7899
+ _iterator.e(err);
7900
+ } finally {
7901
+ _iterator.f();
7572
7902
  }
7573
7903
  }
7574
7904
  };
@@ -7583,8 +7913,17 @@ var WMXMLParser = function WMXMLParser(url, headers) {
7583
7913
  return new Promise(function (resolve, reject) {
7584
7914
  var fetchHeaders = new Headers();
7585
7915
  if (headers && headers.length > 0) {
7586
- for (var j = 0; j < headers.length; j += 1) {
7587
- fetchHeaders.append(headers[j].name, headers[j].value);
7916
+ var _iterator3 = _createForOfIteratorHelper(headers),
7917
+ _step3;
7918
+ try {
7919
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
7920
+ var header = _step3.value;
7921
+ fetchHeaders.append(header.name, header.value);
7922
+ }
7923
+ } catch (err) {
7924
+ _iterator3.e(err);
7925
+ } finally {
7926
+ _iterator3.f();
7588
7927
  }
7589
7928
  }
7590
7929
  fetch(url, {
@@ -8011,27 +8350,20 @@ var WMJSService = /*#__PURE__*/function () {
8011
8350
  return WMJSService;
8012
8351
  }();
8013
8352
 
8014
- /* *
8015
- * Licensed under the Apache License, Version 2.0 (the "License");
8016
- * you may not use this file except in compliance with the License.
8017
- * You may obtain a copy of the License at
8018
- *
8019
- * http://www.apache.org/licenses/LICENSE-2.0
8020
- *
8021
- * Unless required by applicable law or agreed to in writing, software
8022
- * distributed under the License is distributed on an "AS IS" BASIS,
8023
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8024
- * See the License for the specific language governing permissions and
8025
- * limitations under the License.
8026
- *
8027
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
8028
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
8029
- * */
8030
8353
  var WMGetServiceFromStore = function WMGetServiceFromStore(serviceName) {
8031
- for (var j = 0; j < WMServiceStore.length; j += 1) {
8032
- if (WMServiceStore[j].service === serviceName) {
8033
- return WMServiceStore[j];
8354
+ var _iterator = _createForOfIteratorHelper(WMServiceStore),
8355
+ _step;
8356
+ try {
8357
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
8358
+ var WMService = _step.value;
8359
+ if (WMService.service === serviceName) {
8360
+ return WMService;
8361
+ }
8034
8362
  }
8363
+ } catch (err) {
8364
+ _iterator.e(err);
8365
+ } finally {
8366
+ _iterator.f();
8035
8367
  }
8036
8368
  var service = new WMJSService({
8037
8369
  service: serviceName
@@ -8147,10 +8479,19 @@ var configureDimensions = function configureDimensions(layerProps, wmLayer) {
8147
8479
  */
8148
8480
  /* Flag dimensions which are currently in use for this layer, it is possible that the update will remove dimensions from this layer; keep track of the current ones */
8149
8481
  var layerDimNamesToRemove = new Set();
8150
- for (var d = 0; d < wmLayer.dimensions.length; d += 1) {
8151
- layerDimNamesToRemove.add(wmLayer.dimensions[d].name);
8482
+ var _iterator = _createForOfIteratorHelper(wmLayer.dimensions),
8483
+ _step;
8484
+ try {
8485
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
8486
+ var layerDim = _step.value;
8487
+ layerDimNamesToRemove.add(layerDim.name);
8488
+ }
8489
+ /* Now start adding all dimensions starting with the parent layer. Layers more deeply nested will inherit Dimension info */
8490
+ } catch (err) {
8491
+ _iterator.e(err);
8492
+ } finally {
8493
+ _iterator.f();
8152
8494
  }
8153
- /* Now start adding all dimensions starting with the parent layer. Layers more deeply nested will inherit Dimension info */
8154
8495
  addDimsForLayer(layerProps, wmLayer, layerDimNamesToRemove);
8155
8496
  /* The list with dimensions to remove is now complete, remove the unneeded dimensions from the layer */
8156
8497
  layerDimNamesToRemove.forEach(function (dimName) {
@@ -8479,13 +8820,22 @@ var WMLayer = /*#__PURE__*/function () {
8479
8820
  // Get the optimal image format for this layer
8480
8821
  try {
8481
8822
  var serverFormats = capabilityObject.Request.GetMap.Format;
8482
- for (var f = 0; f < serverFormats.length; f += 1) {
8483
- if (serverFormats[f].value.indexOf('24') > 0) {
8484
- this.optimalFormat = serverFormats[f].value;
8485
- }
8486
- if (serverFormats[f].value.indexOf('32') > 0) {
8487
- this.optimalFormat = serverFormats[f].value;
8823
+ var _iterator2 = _createForOfIteratorHelper(serverFormats),
8824
+ _step2;
8825
+ try {
8826
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
8827
+ var serverFormat = _step2.value;
8828
+ if (serverFormat.value.indexOf('24') > 0) {
8829
+ this.optimalFormat = serverFormat.value;
8830
+ }
8831
+ if (serverFormat.value.indexOf('32') > 0) {
8832
+ this.optimalFormat = serverFormat.value;
8833
+ }
8488
8834
  }
8835
+ } catch (err) {
8836
+ _iterator2.e(err);
8837
+ } finally {
8838
+ _iterator2.f();
8489
8839
  }
8490
8840
  } catch (e) {
8491
8841
  debugLogger(DebugType.Error);
@@ -8702,12 +9052,21 @@ var WMLayer = /*#__PURE__*/function () {
8702
9052
  return;
8703
9053
  }
8704
9054
  var styleFound = false;
8705
- for (var j = 0; j < this.styles.length; j += 1) {
8706
- if (this.styles[j].name === styleName) {
8707
- this.legendGraphic = this.styles[j].legendURL;
8708
- this.currentStyle = this.styles[j].name;
8709
- styleFound = true;
9055
+ var _iterator3 = _createForOfIteratorHelper(this.styles),
9056
+ _step3;
9057
+ try {
9058
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
9059
+ var style = _step3.value;
9060
+ if (style.name === styleName) {
9061
+ this.legendGraphic = style.legendURL;
9062
+ this.currentStyle = style.name;
9063
+ styleFound = true;
9064
+ }
8710
9065
  }
9066
+ } catch (err) {
9067
+ _iterator3.e(err);
9068
+ } finally {
9069
+ _iterator3.f();
8711
9070
  }
8712
9071
  if (!styleFound) {
8713
9072
  debugLogger(DebugType.Log, "WMLayer::setStyle: Style ".concat(styleName, " not found, setting style ").concat(this.styles[0].name));
@@ -8778,17 +9137,25 @@ var WMLayer = /*#__PURE__*/function () {
8778
9137
  key: "getCRS",
8779
9138
  value: function getCRS() {
8780
9139
  var crs = [];
8781
- for (var j = 0; j < this.projectionProperties.length; j += 1) {
8782
- var projectionProperty = this.projectionProperties[j];
8783
- if (projectionProperty) {
8784
- var bbox = projectionProperty.bbox;
8785
- if (bbox) {
8786
- crs.push({
8787
- srs: "".concat(projectionProperty.srs),
8788
- bbox: new WMBBOX(bbox.left, bbox.bottom, bbox.right, bbox.top)
8789
- });
9140
+ var _iterator4 = _createForOfIteratorHelper(this.projectionProperties),
9141
+ _step4;
9142
+ try {
9143
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
9144
+ var projectionProperty = _step4.value;
9145
+ if (projectionProperty) {
9146
+ var bbox = projectionProperty.bbox;
9147
+ if (bbox) {
9148
+ crs.push({
9149
+ srs: "".concat(projectionProperty.srs),
9150
+ bbox: new WMBBOX(bbox.left, bbox.bottom, bbox.right, bbox.top)
9151
+ });
9152
+ }
8790
9153
  }
8791
9154
  }
9155
+ } catch (err) {
9156
+ _iterator4.e(err);
9157
+ } finally {
9158
+ _iterator4.f();
8792
9159
  }
8793
9160
  return crs;
8794
9161
  }
@@ -8801,16 +9168,25 @@ var WMLayer = /*#__PURE__*/function () {
8801
9168
  }, {
8802
9169
  key: "getCRSByName",
8803
9170
  value: function getCRSByName(srsName) {
8804
- for (var j = 0; j < this.projectionProperties.length; j += 1) {
8805
- if (this.projectionProperties[j].srs === srsName) {
8806
- var returnSRS = {
8807
- srs: '',
8808
- bbox: new WMBBOX(undefined, undefined, undefined, undefined)
8809
- };
8810
- returnSRS.srs = "".concat(this.projectionProperties[j].srs);
8811
- returnSRS.bbox = new WMBBOX(this.projectionProperties[j].bbox.left, this.projectionProperties[j].bbox.bottom, this.projectionProperties[j].bbox.right, this.projectionProperties[j].bbox.top);
8812
- return returnSRS;
9171
+ var _iterator5 = _createForOfIteratorHelper(this.projectionProperties),
9172
+ _step5;
9173
+ try {
9174
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
9175
+ var projProps = _step5.value;
9176
+ if (projProps.srs === srsName) {
9177
+ var returnSRS = {
9178
+ srs: '',
9179
+ bbox: new WMBBOX(undefined, undefined, undefined, undefined)
9180
+ };
9181
+ returnSRS.srs = "".concat(projProps.srs);
9182
+ returnSRS.bbox = new WMBBOX(projProps.bbox.left, projProps.bbox.bottom, projProps.bbox.right, projProps.bbox.top);
9183
+ return returnSRS;
9184
+ }
8813
9185
  }
9186
+ } catch (err) {
9187
+ _iterator5.e(err);
9188
+ } finally {
9189
+ _iterator5.f();
8814
9190
  }
8815
9191
  return undefined;
8816
9192
  }
@@ -10028,22 +10404,6 @@ var mockGetCapabilities = Object.assign(Object.assign({}, getCapabilities$1), {
10028
10404
  WMS111GetCapabilitiesGeoServicesRADAR: WMS111GetCapabilitiesGeoServicesRADAR
10029
10405
  });
10030
10406
 
10031
- /* *
10032
- * Licensed under the Apache License, Version 2.0 (the "License");
10033
- * you may not use this file except in compliance with the License.
10034
- * You may obtain a copy of the License at
10035
- *
10036
- * http://www.apache.org/licenses/LICENSE-2.0
10037
- *
10038
- * Unless required by applicable law or agreed to in writing, software
10039
- * distributed under the License is distributed on an "AS IS" BASIS,
10040
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10041
- * See the License for the specific language governing permissions and
10042
- * limitations under the License.
10043
- *
10044
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
10045
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
10046
- * */
10047
10407
  /**
10048
10408
  * Converts webmapjs node structure to LayerTree
10049
10409
  * @param nodesToRecur THe WebMapJS node structure from service.getNodes();
@@ -10062,8 +10422,17 @@ var recurseNodes = function recurseNodes(nodesToRecur) {
10062
10422
  geographicBoundingBox: nodesToRecur.geographicBoundingBox || null
10063
10423
  };
10064
10424
  if (nodesToRecur.children) {
10065
- for (var j = 0; j < nodesToRecur.children.length; j += 1) {
10066
- newLayerTreeObj.children.push(recurseNodes(nodesToRecur.children[j]));
10425
+ var _iterator = _createForOfIteratorHelper(nodesToRecur.children),
10426
+ _step;
10427
+ try {
10428
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
10429
+ var childNodesToRecur = _step.value;
10430
+ newLayerTreeObj.children.push(recurseNodes(childNodesToRecur));
10431
+ }
10432
+ } catch (err) {
10433
+ _iterator.e(err);
10434
+ } finally {
10435
+ _iterator.f();
10067
10436
  }
10068
10437
  }
10069
10438
  return newLayerTreeObj;
@@ -10110,4 +10479,4 @@ var getCapabilities = /*#__PURE__*/Object.freeze({
10110
10479
  getLayersFlattenedFromService: getLayersFlattenedFromService
10111
10480
  });
10112
10481
 
10113
- export { DateInterval, DebugType, EPSGCode, I18n, LayerType, ParseISOTimeRangeDuration, URLDecode, URLEncode, WMBBOX, WMDateOutSideRange, WMDateTooEarlyString, WMDateTooLateString, WMEmptyLayerName, WMEmptyLayerTitle, WMGetServiceFromStore, WMImage, WMImageEventType, WMJSDimension, WMJSMap, WMJSService, WMJScheckURL, WMLayer, buildWMSGetMapRequest, clearImageCache, debugLogger, generateLayerId, generateMapId, generateTimesliderId, getCapabilities, getLegendGraphicURLForLayer, getMapImageStore, getUriWithParam, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSMapIds, getWMJSTimeDimensionForLayerId, getWMLayerById, handleMomentISOString, isDefined, legendImageStore, mockGetCapabilities, parseISO8601DateToDate, parseISO8601IntervalToDateInterval, registerWMJSMap, registerWMLayer, tilesettings, toArray, unRegisterAllWMJSLayersAndMaps, unRegisterWMJSLayer, unRegisterWMJSMap, testSettings as webmapTestSettings, utils as webmapUtils };
10482
+ export { DateInterval, DebugType, EPSGCode, I18n, LayerType, ParseISOTimeRangeDuration, URLDecode, URLEncode, WMBBOX, WMDateOutSideRange, WMDateTooEarlyString, WMDateTooLateString, WMEmptyLayerName, WMEmptyLayerTitle, WMGetServiceFromStore, WMImage, WMImageEventType, WMJSDimension, WMJSMap, WMJSService, WMJScheckURL, WMLayer, WMProj4Defs, WMSVersion, bgImageStoreLength, buildWMSGetMapRequest, clearImageCache, debugLogger, epsgDescriptionLookup, generateLayerId, generateMapId, generateTimesliderId, getBBOXandProjString, getCapabilities, getLegendGraphicURLForLayer, getMapImageStore, getUriWithParam, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSMapIds, getWMJSTimeDimensionForLayerId, getWMLayerById, handleMomentISOString, isDefined, isProjectionSupported, legendImageStore, legendImageStoreLength, mapImageStoreLength, mockGetCapabilities, parseISO8601DateToDate, parseISO8601IntervalToDateInterval, registerWMJSMap, registerWMLayer, tilesettings, toArray, unRegisterAllWMJSLayersAndMaps, unRegisterWMJSLayer, unRegisterWMJSMap, testSettings as webmapTestSettings, utils as webmapUtils };