@opengeoweb/webmap 9.8.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
 
@@ -1193,8 +1192,17 @@ var WMImage = /*#__PURE__*/function () {
1193
1192
  var _this2 = this;
1194
1193
  var fetchHeaders = new Headers();
1195
1194
  if (headers && headers.length > 0) {
1196
- for (var j = 0; j < headers.length; j += 1) {
1197
- 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();
1198
1206
  }
1199
1207
  }
1200
1208
  var options = {
@@ -1346,8 +1354,17 @@ var WMImageStore = /*#__PURE__*/function () {
1346
1354
  }, {
1347
1355
  key: "imageLoadEventCallback",
1348
1356
  value: function imageLoadEventCallback(_img, imageEventType) {
1349
- for (var j = 0; j < this._loadEventCallbackList.length; j += 1) {
1350
- 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();
1351
1368
  }
1352
1369
  }
1353
1370
  /**
@@ -1657,16 +1674,25 @@ var WMListener = /*#__PURE__*/function () {
1657
1674
  }, {
1658
1675
  key: "removeEvents",
1659
1676
  value: function removeEvents(name, f) {
1660
- for (var j = 0; j < this._callBacks.length; j += 1) {
1661
- if (this._callBacks[j].finished === 0) {
1662
- if (this._callBacks[j].name === name) {
1663
- if (!f) {
1664
- this._callBacks[j].finished = 1;
1665
- } else if (this._callBacks[j].functionpointer === f) {
1666
- 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
+ }
1667
1689
  }
1668
1690
  }
1669
1691
  }
1692
+ } catch (err) {
1693
+ _iterator.e(err);
1694
+ } finally {
1695
+ _iterator.f();
1670
1696
  }
1671
1697
  }
1672
1698
  }, {
@@ -1706,19 +1732,28 @@ var WMListener = /*#__PURE__*/function () {
1706
1732
  return [];
1707
1733
  }
1708
1734
  var returnList = [];
1709
- for (var j = 0; j < this._callBacks.length; j += 1) {
1710
- if (this._callBacks[j].finished === 0) {
1711
- if (this._callBacks[j].name === name) {
1712
- if (this._callBacks[j].keepOnCall === false) {
1713
- this._callBacks[j].finished = 1;
1714
- }
1715
- try {
1716
- returnList.push(this._callBacks[j].functionpointer(param, this));
1717
- } catch (e) {
1718
- 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
+ }
1719
1750
  }
1720
1751
  }
1721
1752
  }
1753
+ } catch (err) {
1754
+ _iterator2.e(err);
1755
+ } finally {
1756
+ _iterator2.f();
1722
1757
  }
1723
1758
  return returnList;
1724
1759
  }
@@ -1897,11 +1932,20 @@ var WMCanvasBuffer = /*#__PURE__*/function () {
1897
1932
  }, {
1898
1933
  key: "_statDivBufferImageLoaded",
1899
1934
  value: function _statDivBufferImageLoaded() {
1900
- for (var j = 0; j < this.layers.length; j += 1) {
1901
- var image = this._imageStore.getImageForSrc(this.layers[j].imageSource);
1902
- if (!image || image.isLoaded() === false) {
1903
- 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
+ }
1904
1944
  }
1945
+ } catch (err) {
1946
+ _iterator.e(err);
1947
+ } finally {
1948
+ _iterator.f();
1905
1949
  }
1906
1950
  this.finishedLoading();
1907
1951
  }
@@ -2016,11 +2060,20 @@ var WMCanvasBuffer = /*#__PURE__*/function () {
2016
2060
  return;
2017
2061
  }
2018
2062
  this.ready = true;
2019
- for (var j = 0; j < this.layers.length; j += 1) {
2020
- var image = this._imageStore.getImageForSrc(this.layers[j].imageSource);
2021
- if (image && image.hasError()) {
2022
- 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
+ }
2023
2072
  }
2073
+ } catch (err) {
2074
+ _iterator2.e(err);
2075
+ } finally {
2076
+ _iterator2.f();
2024
2077
  }
2025
2078
  try {
2026
2079
  if (isDefined(this.onLoadReadyFunction)) {
@@ -2196,8 +2249,8 @@ function prefetchImagesForNonAnimation(wmMap) {
2196
2249
  }
2197
2250
  var currentValue = timeDimension.currentValue;
2198
2251
  var currentTimeIsoString = timeDimension.getClosestValue(currentValue);
2199
- var currentTime = parseISO(currentTimeIsoString);
2200
- if (!isValid(currentTime)) {
2252
+ var currentTime = dateUtils.parseISO(currentTimeIsoString);
2253
+ if (!dateUtils.isValid(currentTime)) {
2201
2254
  return;
2202
2255
  }
2203
2256
  var maxTimesToPrefetchIfOneLayer = maxImagesToPrefetch / 2;
@@ -2205,8 +2258,8 @@ function prefetchImagesForNonAnimation(wmMap) {
2205
2258
  var duration = {
2206
2259
  minutes: timestepInMinutes * offset
2207
2260
  };
2208
- var nextTime = add(currentTime, duration).toISOString();
2209
- var previousTime = sub(currentTime, duration).toISOString();
2261
+ var nextTime = dateUtils.add(currentTime, duration).toISOString();
2262
+ var previousTime = dateUtils.sub(currentTime, duration).toISOString();
2210
2263
  return [nextTime, previousTime];
2211
2264
  });
2212
2265
  prefetchLayerImagesInOrder(wmMap, timesToPrefetchInOrder, maxImagesToPrefetch);
@@ -2664,8 +2717,8 @@ var WMTileRenderer = /*#__PURE__*/function () {
2664
2717
  }
2665
2718
  return 0;
2666
2719
  });
2667
- for (var i = 0; i < imagesToRender.length; i += 1) {
2668
- var image = imagesToRender[i];
2720
+ for (var _i = 0, _imagesToRender = imagesToRender; _i < _imagesToRender.length; _i++) {
2721
+ var image = _imagesToRender[_i];
2669
2722
  if (image.image.isLoaded() && !image.image.hasError()) {
2670
2723
  try {
2671
2724
  ctx.drawImage(image.i, image.x, image.y, image.w, image.h);
@@ -2683,22 +2736,6 @@ var WMTileRenderer = /*#__PURE__*/function () {
2683
2736
  return WMTileRenderer;
2684
2737
  }();
2685
2738
 
2686
- /* *
2687
- * Licensed under the Apache License, Version 2.0 (the "License");
2688
- * you may not use this file except in compliance with the License.
2689
- * You may obtain a copy of the License at
2690
- *
2691
- * http://www.apache.org/licenses/LICENSE-2.0
2692
- *
2693
- * Unless required by applicable law or agreed to in writing, software
2694
- * distributed under the License is distributed on an "AS IS" BASIS,
2695
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2696
- * See the License for the specific language governing permissions and
2697
- * limitations under the License.
2698
- *
2699
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
2700
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
2701
- * */
2702
2739
  var legendImageStore = new WMImageStore(legendImageStoreLength, {
2703
2740
  id: 'legendImageStore'
2704
2741
  });
@@ -2738,41 +2775,50 @@ var drawLegend = function drawLegend(canvasContext, width, height, layers) {
2738
2775
  /* Draw legends */
2739
2776
  var ctx = canvasContext;
2740
2777
  var legendPosX = 0;
2741
- for (var j = 0; j < layers.length; j += 1) {
2742
- if (layers[j].enabled !== false) {
2743
- var legendUrl = getLegendGraphicURLForLayer(layers[j]);
2744
- if (isDefined(legendUrl)) {
2745
- var image = legendImageStore.getImage(legendUrl, {
2746
- headers: layers[j].headers
2747
- });
2748
- if (image.hasError() === false) {
2749
- if (image.isLoaded() === false && image.isLoading() === false) {
2750
- image.load();
2751
- } else {
2752
- var el = image.getElement();
2753
- var legendW = Math.trunc(el.width) + 4;
2754
- var legendH = Math.trunc(el.height) + 4;
2755
- legendPosX += legendW + 4;
2756
- var legendX = width - legendPosX + 2;
2757
- var legendY = height - legendH - 2 - 13;
2758
- ctx.beginPath();
2759
- ctx.fillStyle = '#FFFFFF';
2760
- ctx.lineWidth = 0.3;
2761
- ctx.globalAlpha = 0.5;
2762
- ctx.strokeStyle = '#000000';
2763
- ctx.rect(legendX + 0.5, legendY + 0.5, legendW, legendH);
2764
- ctx.fill();
2765
- ctx.stroke();
2766
- ctx.globalAlpha = 1.0;
2767
- try {
2768
- ctx.drawImage(el, legendX, legendY);
2769
- } catch (e) {
2770
- 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
+ }
2771
2813
  }
2772
2814
  }
2773
2815
  }
2774
2816
  }
2775
2817
  }
2818
+ } catch (err) {
2819
+ _iterator.e(err);
2820
+ } finally {
2821
+ _iterator.f();
2776
2822
  }
2777
2823
  };
2778
2824
 
@@ -3241,7 +3287,7 @@ var ParseISOTimeRangeDuration = /*#__PURE__*/function () {
3241
3287
  var currentTime = next.getTime();
3242
3288
  next.add(this.timeInterval);
3243
3289
  var nextTime = next.getTime();
3244
- if (isWithinInterval(wantedTime, {
3290
+ if (dateUtils.isWithinInterval(wantedTime, {
3245
3291
  start: currentTime,
3246
3292
  end: nextTime
3247
3293
  })) {
@@ -3277,6 +3323,20 @@ var ParseISOTimeRangeDuration = /*#__PURE__*/function () {
3277
3323
  }]);
3278
3324
  return ParseISOTimeRangeDuration;
3279
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
+ }
3280
3340
  /* Example:
3281
3341
  function init(){
3282
3342
  let isodate="1999-01-01T00:00:00Z/2009-12-01T00:00:00Z/PT60S";
@@ -3530,6 +3590,12 @@ var WMJSDimension = /*#__PURE__*/function () {
3530
3590
  this._allValues.forEach(function (value) {
3531
3591
  _this._allDates.push(parseISO8601DateToDate(value));
3532
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
+ }
3533
3599
  }
3534
3600
  }
3535
3601
  /* If no default value is given, take the last / most recent one */
@@ -3563,7 +3629,7 @@ var WMJSDimension = /*#__PURE__*/function () {
3563
3629
  if (this._timeRangeDurationDate) {
3564
3630
  this.dimTimeInterval = this._timeRangeDurationDate.timeInterval;
3565
3631
  } else {
3566
- this.dimTimeInterval = null;
3632
+ this.dimTimeInterval = this.calculatedTimeInterval;
3567
3633
  }
3568
3634
  }
3569
3635
  /**
@@ -4650,28 +4716,37 @@ var WMJSMap = /*#__PURE__*/function () {
4650
4716
  key: "_adagucBeforeDraw",
4651
4717
  value: function _adagucBeforeDraw(ctx) {
4652
4718
  if (this.baseLayers) {
4653
- for (var l = 0; l < this.baseLayers.length; l += 1) {
4654
- if (this.baseLayers[l].enabled && this.baseLayers[l].keepOnTop === false && this.baseLayers[l].type && this.baseLayers[l].type === 'twms' && this.tileRenderSettings) {
4655
- ctx.globalAlpha = this.baseLayers[l].opacity;
4656
- var _this$wmTileRenderer$ = this.wmTileRenderer.render(this.bbox, this.updateBBOX, this.srs, this.width, this.height, ctx, bgMapImageStore, this.tileRenderSettings, this.baseLayers[l].name),
4657
- attributionText = _this$wmTileRenderer$.attributionText;
4658
- ctx.globalAlpha = 1.0;
4659
- var adagucAttribution = "ADAGUC webmapjs ".concat(this.WebMapJSMapVersion);
4660
- var txt = attributionText ? "".concat(adagucAttribution, " | ").concat(attributionText) : adagucAttribution;
4661
- var x = this.width - 8;
4662
- var y = this.height - 8;
4663
- ctx.font = '10px Arial';
4664
- ctx.textAlign = 'right';
4665
- ctx.textBaseline = 'middle';
4666
- ctx.fillStyle = '#FFF';
4667
- ctx.globalAlpha = 0.75;
4668
- var _ctx$measureText = ctx.measureText(txt),
4669
- width = _ctx$measureText.width;
4670
- ctx.fillRect(x - width, y - 6, width + 8, 14);
4671
- ctx.fillStyle = '#444';
4672
- ctx.globalAlpha = 1.0;
4673
- 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
+ }
4674
4745
  }
4746
+ } catch (err) {
4747
+ _iterator.e(err);
4748
+ } finally {
4749
+ _iterator.f();
4675
4750
  }
4676
4751
  }
4677
4752
  }
@@ -4714,33 +4789,51 @@ var WMJSMap = /*#__PURE__*/function () {
4714
4789
  ctx.globalAlpha = 1;
4715
4790
  }
4716
4791
  /* Gather errors */
4717
- for (var i = 0; i < this.layers.length; i += 1) {
4718
- for (var j = 0; j < this.layers[i].dimensions.length; j += 1) {
4719
- if (this.layers[i].dimensions[j].currentValue === WMDateOutSideRange) {
4720
- this.canvasErrors.push({
4721
- linkedInfo: {
4722
- layer: this.layers[i],
4723
- message: 'Time outside range'
4724
- }
4725
- });
4726
- } else if (this.layers[i].dimensions[j].currentValue === WMDateTooEarlyString) {
4727
- this.canvasErrors.push({
4728
- linkedInfo: {
4729
- layer: this.layers[i],
4730
- message: 'Time too early'
4731
- }
4732
- });
4733
- } else if (this.layers[i].dimensions[j].currentValue === WMDateTooLateString) {
4734
- this.canvasErrors.push({
4735
- linkedInfo: {
4736
- layer: this.layers[i],
4737
- 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
+ });
4738
4823
  }
4739
- });
4824
+ }
4825
+ } catch (err) {
4826
+ _iterator3.e(err);
4827
+ } finally {
4828
+ _iterator3.f();
4740
4829
  }
4741
4830
  }
4831
+ /* Display errors found during drawing canvas */
4832
+ } catch (err) {
4833
+ _iterator2.e(err);
4834
+ } finally {
4835
+ _iterator2.f();
4742
4836
  }
4743
- /* Display errors found during drawing canvas */
4744
4837
  if (this.canvasErrors && this.canvasErrors.length > 0) {
4745
4838
  var errorsToDisplay = getErrorsToDisplay(this.canvasErrors, this.getLayerByServiceAndName);
4746
4839
  this.canvasErrors = [];
@@ -4842,15 +4935,15 @@ var WMJSMap = /*#__PURE__*/function () {
4842
4935
  ctx.font = '9px Helvetica';
4843
4936
  ctx.textBaseline = 'middle';
4844
4937
  ctx.textAlign = 'left';
4845
- for (var _j = 0; _j < 2; _j += 1) {
4846
- ctx.moveTo(offsetX, scaleBarHeight - 2 - _j + offsetY);
4847
- 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);
4848
4941
  }
4849
4942
  var subDivXW = parseInt(Math.round(scaleBarProps.width / 5), 10);
4850
4943
  ctx.lineWidth = 0.5;
4851
- for (var _j2 = 1; _j2 < 5; _j2 += 1) {
4852
- ctx.moveTo(offsetX + subDivXW * _j2, scaleBarHeight - 2 + offsetY);
4853
- 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);
4854
4947
  }
4855
4948
  ctx.lineWidth = 1.0;
4856
4949
  ctx.moveTo(offsetX, scaleBarHeight - 2 + offsetY);
@@ -4945,9 +5038,9 @@ var WMJSMap = /*#__PURE__*/function () {
4945
5038
  drawTextBG(ctx, 'Layer name', metadataX, metadataY + rowNumber * rowHeight, 10);
4946
5039
  drawTextBG(ctx, 'Dimensions', metadataX + dimStartX, metadataY + rowNumber * rowHeight, 10);
4947
5040
  rowNumber += 1;
4948
- for (var _j3 = 0; _j3 < this.layers.length; _j3 += 1) {
4949
- var layer = this.layers[_j3];
4950
- 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);
4951
5044
  for (var d = 0; d < layer.dimensions.length; d += 1) {
4952
5045
  var dimension = layer.dimensions[d];
4953
5046
  drawTextBG(ctx, "".concat(dimension.name, " = ").concat(dimension.currentValue), metadataX + d * 200 + dimStartX, metadataY + rowNumber * rowHeight, 10);
@@ -5138,8 +5231,17 @@ var WMJSMap = /*#__PURE__*/function () {
5138
5231
  }, {
5139
5232
  key: "setActiveLayer",
5140
5233
  value: function setActiveLayer(layer) {
5141
- for (var j = 0; j < this.layers.length; j += 1) {
5142
- 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();
5143
5245
  }
5144
5246
  this.activeLayer = layer;
5145
5247
  this.activeLayer.active = true;
@@ -5152,12 +5254,21 @@ var WMJSMap = /*#__PURE__*/function () {
5152
5254
  value: function calculateNumBaseLayers() {
5153
5255
  this.numBaseLayers = 0;
5154
5256
  if (this.baseLayers) {
5155
- for (var l = 0; l < this.baseLayers.length; l += 1) {
5156
- if (this.baseLayers[l].enabled) {
5157
- if (this.baseLayers[l].keepOnTop === false) {
5158
- 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
+ }
5159
5266
  }
5160
5267
  }
5268
+ } catch (err) {
5269
+ _iterator5.e(err);
5270
+ } finally {
5271
+ _iterator5.f();
5161
5272
  }
5162
5273
  }
5163
5274
  }
@@ -5209,8 +5320,17 @@ var WMJSMap = /*#__PURE__*/function () {
5209
5320
  }, {
5210
5321
  key: "removeAllLayers",
5211
5322
  value: function removeAllLayers() {
5212
- for (var i = 0; i < this.layers.length; i += 1) {
5213
- 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();
5214
5334
  }
5215
5335
  this.layers.length = 0;
5216
5336
  this.mapdimensions.length = 0;
@@ -5530,15 +5650,33 @@ var WMJSMap = /*#__PURE__*/function () {
5530
5650
  // Make first a header with 'Layer' and the dimensions
5531
5651
  infoHTML += '<tr><th>Layer</th>';
5532
5652
  if (this.mapdimensions) {
5533
- for (var d = 0; d < this.mapdimensions.length; d += 1) {
5534
- 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();
5535
5664
  }
5536
5665
  }
5537
5666
  infoHTML += '</tr>';
5538
5667
  infoHTML += '<tr><td>Map</tdh>';
5539
5668
  if (this.mapdimensions) {
5540
- for (var _d = 0; _d < this.mapdimensions.length; _d += 1) {
5541
- 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();
5542
5680
  }
5543
5681
  }
5544
5682
  infoHTML += '</tr>';
@@ -5551,19 +5689,37 @@ var WMJSMap = /*#__PURE__*/function () {
5551
5689
  var layerTitle = '';
5552
5690
  layerTitle += this.layers[j].title;
5553
5691
  infoHTML += "<tr><td>".concat(layerTitle, "</td>");
5554
- for (var mapdim = 0; mapdim < this.mapdimensions.length; mapdim += 1) {
5555
- var foundDim = false;
5556
- for (var layerdim = 0; layerdim < layerDimensionsObject.length; layerdim += 1) {
5557
- if (layerDimensionsObject[layerdim].name.toUpperCase() === this.mapdimensions[mapdim].name.toUpperCase()) {
5558
- infoHTML += "<td>".concat(layerDimensionsObject[layerdim].currentValue, "</td>");
5559
- foundDim = true;
5560
- infoHTMLHasValidContent = true;
5561
- 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>';
5562
5717
  }
5563
5718
  }
5564
- if (foundDim === false) {
5565
- infoHTML += '<td>-</td>';
5566
- }
5719
+ } catch (err) {
5720
+ _iterator9.e(err);
5721
+ } finally {
5722
+ _iterator9.f();
5567
5723
  }
5568
5724
  infoHTML += '</tr>';
5569
5725
  }
@@ -5816,10 +5972,19 @@ var WMJSMap = /*#__PURE__*/function () {
5816
5972
  if (layer) {
5817
5973
  this.numBaseLayers = 0;
5818
5974
  this.baseLayers.push(layer);
5819
- for (var j = 0; j < this.baseLayers.length; j += 1) {
5820
- if (this.baseLayers[j].keepOnTop === true) {
5821
- 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
+ }
5822
5983
  }
5984
+ } catch (err) {
5985
+ _iterator11.e(err);
5986
+ } finally {
5987
+ _iterator11.f();
5823
5988
  }
5824
5989
  this.callBack.triggerEvent('onlayeradd');
5825
5990
  } else {
@@ -5832,11 +5997,20 @@ var WMJSMap = /*#__PURE__*/function () {
5832
5997
  if (layer) {
5833
5998
  this.numBaseLayers = 0;
5834
5999
  this.baseLayers = layer;
5835
- for (var j = 0; j < this.baseLayers.length; j += 1) {
5836
- this.baseLayers[j].parentMap = this;
5837
- if (this.baseLayers[j].keepOnTop !== true) {
5838
- 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
+ }
5839
6009
  }
6010
+ } catch (err) {
6011
+ _iterator12.e(err);
6012
+ } finally {
6013
+ _iterator12.f();
5840
6014
  }
5841
6015
  this.callBack.triggerEvent('onlayerchange');
5842
6016
  } else {
@@ -6137,10 +6311,19 @@ var WMJSMap = /*#__PURE__*/function () {
6137
6311
  rightButton: detectRightButton(event),
6138
6312
  shiftKey: shiftKey
6139
6313
  });
6140
- for (var j = 0; j < triggerResults.length; j += 1) {
6141
- if (triggerResults[j] === false) {
6142
- 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
+ }
6143
6322
  }
6323
+ } catch (err) {
6324
+ _iterator13.e(err);
6325
+ } finally {
6326
+ _iterator13.f();
6144
6327
  }
6145
6328
  }
6146
6329
  }
@@ -6266,10 +6449,19 @@ var WMJSMap = /*#__PURE__*/function () {
6266
6449
  leftButton: detectLeftButton(event),
6267
6450
  rightButton: detectRightButton(event)
6268
6451
  });
6269
- for (var j = 0; j < triggerResults.length; j += 1) {
6270
- if (triggerResults[j] === false) {
6271
- 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
+ }
6272
6460
  }
6461
+ } catch (err) {
6462
+ _iterator14.e(err);
6463
+ } finally {
6464
+ _iterator14.f();
6273
6465
  }
6274
6466
  }
6275
6467
  if (this.divBoundingBox.displayed === true && this.mapPanning === 0) {
@@ -6427,11 +6619,20 @@ var WMJSMap = /*#__PURE__*/function () {
6427
6619
  mouseDown: false,
6428
6620
  event: e
6429
6621
  });
6430
- for (var j = 0; j < triggerResults.length; j += 1) {
6431
- if (triggerResults[j] === false) {
6432
- this.mouseDownPressed = 0;
6433
- 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
+ }
6434
6631
  }
6632
+ } catch (err) {
6633
+ _iterator15.e(err);
6634
+ } finally {
6635
+ _iterator15.f();
6435
6636
  }
6436
6637
  }
6437
6638
  }
@@ -6523,9 +6724,18 @@ var WMJSMap = /*#__PURE__*/function () {
6523
6724
  this.zoomTo(this.updateBBOX);
6524
6725
  this.wMFlyToBBox.flyZoomToBBOXStop();
6525
6726
  this.baseDiv.style.cursor = 'move';
6526
- for (var j = 0; j < this.gfiDialogList.length; j += 1) {
6527
- this.gfiDialogList[j].origX = this.gfiDialogList[j].x;
6528
- 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();
6529
6739
  }
6530
6740
  this.mapPanning = 1;
6531
6741
  debugLogger(DebugType.Log);
@@ -6751,16 +6961,25 @@ var WMJSMap = /*#__PURE__*/function () {
6751
6961
  this._updateBoundingBox(this.bbox);
6752
6962
  this.drawnBBOX.setBBOX(this.bbox);
6753
6963
  var resetMapPinAndDialogs = function resetMapPinAndDialogs() {
6754
- for (var j = 0; j < _this12.gfiDialogList.length; j += 1) {
6755
- var newpos = _this12.getPixelCoordFromGeoCoord({
6756
- x: _this12.gfiDialogList[j].geoPosX,
6757
- y: _this12.gfiDialogList[j].geoPosY
6758
- });
6759
- if (_this12.gfiDialogList[j].hasBeenDragged === false) {
6760
- if (_this12.gfiDialogList[j].moveToMouseCursor === true) {
6761
- _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
+ }
6762
6977
  }
6763
6978
  }
6979
+ } catch (err) {
6980
+ _iterator17.e(err);
6981
+ } finally {
6982
+ _iterator17.f();
6764
6983
  }
6765
6984
  };
6766
6985
  resetMapPinAndDialogs();
@@ -6949,10 +7168,19 @@ var WMJSMap = /*#__PURE__*/function () {
6949
7168
  }, {
6950
7169
  key: "getDimension",
6951
7170
  value: function getDimension(name) {
6952
- for (var i = 0; i < this.mapdimensions.length; i += 1) {
6953
- if (this.mapdimensions[i].name === name) {
6954
- 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
+ }
6955
7179
  }
7180
+ } catch (err) {
7181
+ _iterator18.e(err);
7182
+ } finally {
7183
+ _iterator18.f();
6956
7184
  }
6957
7185
  return undefined;
6958
7186
  }
@@ -7003,19 +7231,28 @@ var WMJSMap = /*#__PURE__*/function () {
7003
7231
  this.draw('zoomTolayer');
7004
7232
  return;
7005
7233
  }
7006
- for (var j = 0; j < layer.projectionProperties.length; j += 1) {
7007
- if (layer.projectionProperties[j].srs === this.srs) {
7008
- var w = layer.projectionProperties[j].bbox.right - layer.projectionProperties[j].bbox.left;
7009
- var h = layer.projectionProperties[j].bbox.top - layer.projectionProperties[j].bbox.bottom;
7010
- var newBBOX = layer.projectionProperties[j].bbox.clone();
7011
- newBBOX.left -= w / 100;
7012
- newBBOX.right += w / 100;
7013
- newBBOX.bottom -= h / 100;
7014
- newBBOX.top += h / 100;
7015
- this.zoomTo(newBBOX);
7016
- this.draw('zoomTolayer');
7017
- 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
+ }
7018
7251
  }
7252
+ } catch (err) {
7253
+ _iterator19.e(err);
7254
+ } finally {
7255
+ _iterator19.f();
7019
7256
  }
7020
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."));
7021
7258
  this.zoomTo(this.defaultBBOX);
@@ -7058,14 +7295,14 @@ var WMJSMap = /*#__PURE__*/function () {
7058
7295
  for (var j = 0; j <= this.UndoPointer; j += 1) {
7059
7296
  this.WMProjectionTempUndo[j] = this.WMProjectionUndo[j];
7060
7297
  }
7061
- for (var _j4 = 0; _j4 <= this.UndoPointer; _j4 += 1) {
7062
- 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];
7063
7300
  }
7064
7301
  this.UndoPointer = 0;
7065
7302
  }
7066
- for (var _j5 = this.MaxUndos - 1; _j5 > 0; _j5 -= 1) {
7067
- this.WMProjectionUndo[_j5].bbox.setBBOX(this.WMProjectionUndo[_j5 - 1].bbox);
7068
- 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;
7069
7306
  }
7070
7307
  this.WMProjectionUndo[0].bbox.setBBOX(this.bbox);
7071
7308
  this.WMProjectionUndo[0].srs = this.srs;
@@ -7605,46 +7842,63 @@ var WMXMLtoJSON = function WMXMLtoJSON(xmlDocument) {
7605
7842
  // eslint-disable-next-line no-shadow
7606
7843
  var traverse = function traverse(data, path, json) {
7607
7844
  if (data.children && data.children.length) {
7608
- for (var childc = 0; childc < data.children.length; childc += 1) {
7609
- var child = data.children[childc];
7610
- var newPath = "".concat(path, "->").concat(child.nodeName);
7611
- var newJson = null;
7612
- var nodeName = child.nodeName;
7613
- if (json[nodeName]) {
7614
- newJson = {
7615
- attr: {}
7616
- };
7617
- // eslint-disable-next-line no-empty
7618
- if (json[nodeName] instanceof Array) ; else {
7619
- 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 {
7620
7866
  // eslint-disable-next-line no-param-reassign
7621
- json[nodeName] = [];
7622
- json[nodeName].push(obj);
7867
+ json[nodeName] = {
7868
+ attr: {}
7869
+ };
7870
+ newJson = json[nodeName];
7623
7871
  }
7624
- json[nodeName].push(newJson);
7625
- } else {
7626
- // eslint-disable-next-line no-param-reassign
7627
- json[nodeName] = {
7628
- attr: {}
7629
- };
7630
- newJson = json[nodeName];
7631
- }
7632
- // Value
7633
- if (child.childNodes && child.childNodes.length > 0) {
7634
- if (child.childNodes[0].nodeValue) {
7635
- var value = child.childNodes[0].nodeValue.trim();
7636
- if (value !== '\n' && value.length > 0) {
7637
- 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
+ }
7638
7879
  }
7639
7880
  }
7640
- }
7641
- // Attributes
7642
- if (child.attributes && child.attributes.length > 0) {
7643
- for (var attrc = 0; attrc < child.attributes.length; attrc += 1) {
7644
- 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
+ }
7645
7895
  }
7896
+ traverse(child, newPath, newJson);
7646
7897
  }
7647
- traverse(child, newPath, newJson);
7898
+ } catch (err) {
7899
+ _iterator.e(err);
7900
+ } finally {
7901
+ _iterator.f();
7648
7902
  }
7649
7903
  }
7650
7904
  };
@@ -7659,8 +7913,17 @@ var WMXMLParser = function WMXMLParser(url, headers) {
7659
7913
  return new Promise(function (resolve, reject) {
7660
7914
  var fetchHeaders = new Headers();
7661
7915
  if (headers && headers.length > 0) {
7662
- for (var j = 0; j < headers.length; j += 1) {
7663
- 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();
7664
7927
  }
7665
7928
  }
7666
7929
  fetch(url, {
@@ -8087,27 +8350,20 @@ var WMJSService = /*#__PURE__*/function () {
8087
8350
  return WMJSService;
8088
8351
  }();
8089
8352
 
8090
- /* *
8091
- * Licensed under the Apache License, Version 2.0 (the "License");
8092
- * you may not use this file except in compliance with the License.
8093
- * You may obtain a copy of the License at
8094
- *
8095
- * http://www.apache.org/licenses/LICENSE-2.0
8096
- *
8097
- * Unless required by applicable law or agreed to in writing, software
8098
- * distributed under the License is distributed on an "AS IS" BASIS,
8099
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8100
- * See the License for the specific language governing permissions and
8101
- * limitations under the License.
8102
- *
8103
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
8104
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
8105
- * */
8106
8353
  var WMGetServiceFromStore = function WMGetServiceFromStore(serviceName) {
8107
- for (var j = 0; j < WMServiceStore.length; j += 1) {
8108
- if (WMServiceStore[j].service === serviceName) {
8109
- 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
+ }
8110
8362
  }
8363
+ } catch (err) {
8364
+ _iterator.e(err);
8365
+ } finally {
8366
+ _iterator.f();
8111
8367
  }
8112
8368
  var service = new WMJSService({
8113
8369
  service: serviceName
@@ -8223,10 +8479,19 @@ var configureDimensions = function configureDimensions(layerProps, wmLayer) {
8223
8479
  */
8224
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 */
8225
8481
  var layerDimNamesToRemove = new Set();
8226
- for (var d = 0; d < wmLayer.dimensions.length; d += 1) {
8227
- 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();
8228
8494
  }
8229
- /* Now start adding all dimensions starting with the parent layer. Layers more deeply nested will inherit Dimension info */
8230
8495
  addDimsForLayer(layerProps, wmLayer, layerDimNamesToRemove);
8231
8496
  /* The list with dimensions to remove is now complete, remove the unneeded dimensions from the layer */
8232
8497
  layerDimNamesToRemove.forEach(function (dimName) {
@@ -8555,13 +8820,22 @@ var WMLayer = /*#__PURE__*/function () {
8555
8820
  // Get the optimal image format for this layer
8556
8821
  try {
8557
8822
  var serverFormats = capabilityObject.Request.GetMap.Format;
8558
- for (var f = 0; f < serverFormats.length; f += 1) {
8559
- if (serverFormats[f].value.indexOf('24') > 0) {
8560
- this.optimalFormat = serverFormats[f].value;
8561
- }
8562
- if (serverFormats[f].value.indexOf('32') > 0) {
8563
- 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
+ }
8564
8834
  }
8835
+ } catch (err) {
8836
+ _iterator2.e(err);
8837
+ } finally {
8838
+ _iterator2.f();
8565
8839
  }
8566
8840
  } catch (e) {
8567
8841
  debugLogger(DebugType.Error);
@@ -8778,12 +9052,21 @@ var WMLayer = /*#__PURE__*/function () {
8778
9052
  return;
8779
9053
  }
8780
9054
  var styleFound = false;
8781
- for (var j = 0; j < this.styles.length; j += 1) {
8782
- if (this.styles[j].name === styleName) {
8783
- this.legendGraphic = this.styles[j].legendURL;
8784
- this.currentStyle = this.styles[j].name;
8785
- 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
+ }
8786
9065
  }
9066
+ } catch (err) {
9067
+ _iterator3.e(err);
9068
+ } finally {
9069
+ _iterator3.f();
8787
9070
  }
8788
9071
  if (!styleFound) {
8789
9072
  debugLogger(DebugType.Log, "WMLayer::setStyle: Style ".concat(styleName, " not found, setting style ").concat(this.styles[0].name));
@@ -8854,17 +9137,25 @@ var WMLayer = /*#__PURE__*/function () {
8854
9137
  key: "getCRS",
8855
9138
  value: function getCRS() {
8856
9139
  var crs = [];
8857
- for (var j = 0; j < this.projectionProperties.length; j += 1) {
8858
- var projectionProperty = this.projectionProperties[j];
8859
- if (projectionProperty) {
8860
- var bbox = projectionProperty.bbox;
8861
- if (bbox) {
8862
- crs.push({
8863
- srs: "".concat(projectionProperty.srs),
8864
- bbox: new WMBBOX(bbox.left, bbox.bottom, bbox.right, bbox.top)
8865
- });
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
+ }
8866
9153
  }
8867
9154
  }
9155
+ } catch (err) {
9156
+ _iterator4.e(err);
9157
+ } finally {
9158
+ _iterator4.f();
8868
9159
  }
8869
9160
  return crs;
8870
9161
  }
@@ -8877,16 +9168,25 @@ var WMLayer = /*#__PURE__*/function () {
8877
9168
  }, {
8878
9169
  key: "getCRSByName",
8879
9170
  value: function getCRSByName(srsName) {
8880
- for (var j = 0; j < this.projectionProperties.length; j += 1) {
8881
- if (this.projectionProperties[j].srs === srsName) {
8882
- var returnSRS = {
8883
- srs: '',
8884
- bbox: new WMBBOX(undefined, undefined, undefined, undefined)
8885
- };
8886
- returnSRS.srs = "".concat(this.projectionProperties[j].srs);
8887
- returnSRS.bbox = new WMBBOX(this.projectionProperties[j].bbox.left, this.projectionProperties[j].bbox.bottom, this.projectionProperties[j].bbox.right, this.projectionProperties[j].bbox.top);
8888
- 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
+ }
8889
9185
  }
9186
+ } catch (err) {
9187
+ _iterator5.e(err);
9188
+ } finally {
9189
+ _iterator5.f();
8890
9190
  }
8891
9191
  return undefined;
8892
9192
  }
@@ -10104,22 +10404,6 @@ var mockGetCapabilities = Object.assign(Object.assign({}, getCapabilities$1), {
10104
10404
  WMS111GetCapabilitiesGeoServicesRADAR: WMS111GetCapabilitiesGeoServicesRADAR
10105
10405
  });
10106
10406
 
10107
- /* *
10108
- * Licensed under the Apache License, Version 2.0 (the "License");
10109
- * you may not use this file except in compliance with the License.
10110
- * You may obtain a copy of the License at
10111
- *
10112
- * http://www.apache.org/licenses/LICENSE-2.0
10113
- *
10114
- * Unless required by applicable law or agreed to in writing, software
10115
- * distributed under the License is distributed on an "AS IS" BASIS,
10116
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10117
- * See the License for the specific language governing permissions and
10118
- * limitations under the License.
10119
- *
10120
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
10121
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
10122
- * */
10123
10407
  /**
10124
10408
  * Converts webmapjs node structure to LayerTree
10125
10409
  * @param nodesToRecur THe WebMapJS node structure from service.getNodes();
@@ -10138,8 +10422,17 @@ var recurseNodes = function recurseNodes(nodesToRecur) {
10138
10422
  geographicBoundingBox: nodesToRecur.geographicBoundingBox || null
10139
10423
  };
10140
10424
  if (nodesToRecur.children) {
10141
- for (var j = 0; j < nodesToRecur.children.length; j += 1) {
10142
- 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();
10143
10436
  }
10144
10437
  }
10145
10438
  return newLayerTreeObj;