@opengeoweb/webmap 9.8.0 → 9.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -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
 
@@ -1177,7 +1176,9 @@ var WMImage = /*#__PURE__*/function () {
1177
1176
  }, {
1178
1177
  key: "load",
1179
1178
  value: function load() {
1180
- this._load();
1179
+ if (!this._isLoading) {
1180
+ this._load();
1181
+ }
1181
1182
  }
1182
1183
  }, {
1183
1184
  key: "forceReload",
@@ -1193,8 +1194,17 @@ var WMImage = /*#__PURE__*/function () {
1193
1194
  var _this2 = this;
1194
1195
  var fetchHeaders = new Headers();
1195
1196
  if (headers && headers.length > 0) {
1196
- for (var j = 0; j < headers.length; j += 1) {
1197
- fetchHeaders.append(headers[j].name, headers[j].value);
1197
+ var _iterator = _createForOfIteratorHelper(headers),
1198
+ _step;
1199
+ try {
1200
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1201
+ var header = _step.value;
1202
+ fetchHeaders.append(header.name, header.value);
1203
+ }
1204
+ } catch (err) {
1205
+ _iterator.e(err);
1206
+ } finally {
1207
+ _iterator.f();
1198
1208
  }
1199
1209
  }
1200
1210
  var options = {
@@ -1346,8 +1356,17 @@ var WMImageStore = /*#__PURE__*/function () {
1346
1356
  }, {
1347
1357
  key: "imageLoadEventCallback",
1348
1358
  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);
1359
+ var _iterator = _createForOfIteratorHelper(this._loadEventCallbackList),
1360
+ _step;
1361
+ try {
1362
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1363
+ var eventCallback = _step.value;
1364
+ eventCallback.callback(_img, eventCallback.id, imageEventType);
1365
+ }
1366
+ } catch (err) {
1367
+ _iterator.e(err);
1368
+ } finally {
1369
+ _iterator.f();
1351
1370
  }
1352
1371
  }
1353
1372
  /**
@@ -1657,16 +1676,25 @@ var WMListener = /*#__PURE__*/function () {
1657
1676
  }, {
1658
1677
  key: "removeEvents",
1659
1678
  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;
1679
+ var _iterator = _createForOfIteratorHelper(this._callBacks),
1680
+ _step;
1681
+ try {
1682
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1683
+ var callBack = _step.value;
1684
+ if (callBack.finished === 0) {
1685
+ if (callBack.name === name) {
1686
+ if (!f) {
1687
+ callBack.finished = 1;
1688
+ } else if (callBack.functionpointer === f) {
1689
+ callBack.finished = 1;
1690
+ }
1667
1691
  }
1668
1692
  }
1669
1693
  }
1694
+ } catch (err) {
1695
+ _iterator.e(err);
1696
+ } finally {
1697
+ _iterator.f();
1670
1698
  }
1671
1699
  }
1672
1700
  }, {
@@ -1706,19 +1734,28 @@ var WMListener = /*#__PURE__*/function () {
1706
1734
  return [];
1707
1735
  }
1708
1736
  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);
1737
+ var _iterator2 = _createForOfIteratorHelper(this._callBacks),
1738
+ _step2;
1739
+ try {
1740
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1741
+ var callBack = _step2.value;
1742
+ if (callBack.finished === 0) {
1743
+ if (callBack.name === name) {
1744
+ if (callBack.keepOnCall === false) {
1745
+ callBack.finished = 1;
1746
+ }
1747
+ try {
1748
+ returnList.push(callBack.functionpointer(param, this));
1749
+ } catch (e) {
1750
+ debugLogger(DebugType.Error, "Error for event [".concat(name, "]: "), param, e);
1751
+ }
1719
1752
  }
1720
1753
  }
1721
1754
  }
1755
+ } catch (err) {
1756
+ _iterator2.e(err);
1757
+ } finally {
1758
+ _iterator2.f();
1722
1759
  }
1723
1760
  return returnList;
1724
1761
  }
@@ -1897,11 +1934,20 @@ var WMCanvasBuffer = /*#__PURE__*/function () {
1897
1934
  }, {
1898
1935
  key: "_statDivBufferImageLoaded",
1899
1936
  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;
1937
+ var _iterator = _createForOfIteratorHelper(this.layers),
1938
+ _step;
1939
+ try {
1940
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1941
+ var layer = _step.value;
1942
+ var image = this._imageStore.getImageForSrc(layer.imageSource);
1943
+ if (!image || image.isLoaded() === false) {
1944
+ return;
1945
+ }
1904
1946
  }
1947
+ } catch (err) {
1948
+ _iterator.e(err);
1949
+ } finally {
1950
+ _iterator.f();
1905
1951
  }
1906
1952
  this.finishedLoading();
1907
1953
  }
@@ -2016,11 +2062,20 @@ var WMCanvasBuffer = /*#__PURE__*/function () {
2016
2062
  return;
2017
2063
  }
2018
2064
  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()));
2065
+ var _iterator2 = _createForOfIteratorHelper(this.layers),
2066
+ _step2;
2067
+ try {
2068
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2069
+ var layer = _step2.value;
2070
+ var image = this._imageStore.getImageForSrc(layer.imageSource);
2071
+ if (image && image.hasError()) {
2072
+ debugLogger(DebugType.Error, "image error: ".concat(image.getSrc()));
2073
+ }
2023
2074
  }
2075
+ } catch (err) {
2076
+ _iterator2.e(err);
2077
+ } finally {
2078
+ _iterator2.f();
2024
2079
  }
2025
2080
  try {
2026
2081
  if (isDefined(this.onLoadReadyFunction)) {
@@ -2196,8 +2251,8 @@ function prefetchImagesForNonAnimation(wmMap) {
2196
2251
  }
2197
2252
  var currentValue = timeDimension.currentValue;
2198
2253
  var currentTimeIsoString = timeDimension.getClosestValue(currentValue);
2199
- var currentTime = parseISO(currentTimeIsoString);
2200
- if (!isValid(currentTime)) {
2254
+ var currentTime = dateUtils.parseISO(currentTimeIsoString);
2255
+ if (!dateUtils.isValid(currentTime)) {
2201
2256
  return;
2202
2257
  }
2203
2258
  var maxTimesToPrefetchIfOneLayer = maxImagesToPrefetch / 2;
@@ -2205,8 +2260,8 @@ function prefetchImagesForNonAnimation(wmMap) {
2205
2260
  var duration = {
2206
2261
  minutes: timestepInMinutes * offset
2207
2262
  };
2208
- var nextTime = add(currentTime, duration).toISOString();
2209
- var previousTime = sub(currentTime, duration).toISOString();
2263
+ var nextTime = dateUtils.add(currentTime, duration).toISOString();
2264
+ var previousTime = dateUtils.sub(currentTime, duration).toISOString();
2210
2265
  return [nextTime, previousTime];
2211
2266
  });
2212
2267
  prefetchLayerImagesInOrder(wmMap, timesToPrefetchInOrder, maxImagesToPrefetch);
@@ -2664,8 +2719,8 @@ var WMTileRenderer = /*#__PURE__*/function () {
2664
2719
  }
2665
2720
  return 0;
2666
2721
  });
2667
- for (var i = 0; i < imagesToRender.length; i += 1) {
2668
- var image = imagesToRender[i];
2722
+ for (var _i = 0, _imagesToRender = imagesToRender; _i < _imagesToRender.length; _i++) {
2723
+ var image = _imagesToRender[_i];
2669
2724
  if (image.image.isLoaded() && !image.image.hasError()) {
2670
2725
  try {
2671
2726
  ctx.drawImage(image.i, image.x, image.y, image.w, image.h);
@@ -2683,22 +2738,6 @@ var WMTileRenderer = /*#__PURE__*/function () {
2683
2738
  return WMTileRenderer;
2684
2739
  }();
2685
2740
 
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
2741
  var legendImageStore = new WMImageStore(legendImageStoreLength, {
2703
2742
  id: 'legendImageStore'
2704
2743
  });
@@ -2738,41 +2777,50 @@ var drawLegend = function drawLegend(canvasContext, width, height, layers) {
2738
2777
  /* Draw legends */
2739
2778
  var ctx = canvasContext;
2740
2779
  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);
2780
+ var _iterator = _createForOfIteratorHelper(layers),
2781
+ _step;
2782
+ try {
2783
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
2784
+ var layer = _step.value;
2785
+ if (layer.enabled !== false) {
2786
+ var legendUrl = getLegendGraphicURLForLayer(layer);
2787
+ if (isDefined(legendUrl)) {
2788
+ var image = legendImageStore.getImage(legendUrl, {
2789
+ headers: layer.headers
2790
+ });
2791
+ if (image.hasError() === false) {
2792
+ if (image.isLoaded() === false && image.isLoading() === false) {
2793
+ image.load();
2794
+ } else {
2795
+ var el = image.getElement();
2796
+ var legendW = Math.trunc(el.width) + 4;
2797
+ var legendH = Math.trunc(el.height) + 4;
2798
+ legendPosX += legendW + 4;
2799
+ var legendX = width - legendPosX + 2;
2800
+ var legendY = height - legendH - 2 - 13;
2801
+ ctx.beginPath();
2802
+ ctx.fillStyle = '#FFFFFF';
2803
+ ctx.lineWidth = 0.3;
2804
+ ctx.globalAlpha = 0.5;
2805
+ ctx.strokeStyle = '#000000';
2806
+ ctx.rect(legendX + 0.5, legendY + 0.5, legendW, legendH);
2807
+ ctx.fill();
2808
+ ctx.stroke();
2809
+ ctx.globalAlpha = 1.0;
2810
+ try {
2811
+ ctx.drawImage(el, legendX, legendY);
2812
+ } catch (e) {
2813
+ debugLogger(DebugType.Error, "Unable to draw legend image ".concat(legendUrl));
2814
+ }
2771
2815
  }
2772
2816
  }
2773
2817
  }
2774
2818
  }
2775
2819
  }
2820
+ } catch (err) {
2821
+ _iterator.e(err);
2822
+ } finally {
2823
+ _iterator.f();
2776
2824
  }
2777
2825
  };
2778
2826
 
@@ -3241,7 +3289,7 @@ var ParseISOTimeRangeDuration = /*#__PURE__*/function () {
3241
3289
  var currentTime = next.getTime();
3242
3290
  next.add(this.timeInterval);
3243
3291
  var nextTime = next.getTime();
3244
- if (isWithinInterval(wantedTime, {
3292
+ if (dateUtils.isWithinInterval(wantedTime, {
3245
3293
  start: currentTime,
3246
3294
  end: nextTime
3247
3295
  })) {
@@ -3277,6 +3325,20 @@ var ParseISOTimeRangeDuration = /*#__PURE__*/function () {
3277
3325
  }]);
3278
3326
  return ParseISOTimeRangeDuration;
3279
3327
  }();
3328
+ function calculateTimeIntervalFromList(dateStrings) {
3329
+ if (dateStrings.length < 2) {
3330
+ throw new Error('Need at least two dates to calculate an interval.');
3331
+ }
3332
+ var firstDate = parseISO8601DateToDate(dateStrings[0]);
3333
+ var secondDate = parseISO8601DateToDate(dateStrings[1]);
3334
+ var years = dateUtils.differenceInYears(secondDate, firstDate);
3335
+ var months = dateUtils.differenceInMonths(secondDate, firstDate) % 12;
3336
+ var days = dateUtils.differenceInDays(secondDate, firstDate) % 30;
3337
+ var hours = dateUtils.differenceInHours(secondDate, firstDate) % 24;
3338
+ var minutes = dateUtils.differenceInMinutes(secondDate, firstDate) % 60;
3339
+ var seconds = dateUtils.differenceInSeconds(secondDate, firstDate) % 60;
3340
+ return new DateInterval(years.toString(), months.toString(), days.toString(), hours.toString(), minutes.toString(), seconds.toString());
3341
+ }
3280
3342
  /* Example:
3281
3343
  function init(){
3282
3344
  let isodate="1999-01-01T00:00:00Z/2009-12-01T00:00:00Z/PT60S";
@@ -3530,6 +3592,12 @@ var WMJSDimension = /*#__PURE__*/function () {
3530
3592
  this._allValues.forEach(function (value) {
3531
3593
  _this._allDates.push(parseISO8601DateToDate(value));
3532
3594
  });
3595
+ var isRangeFormat = this._allValues.some(function (value) {
3596
+ return value.includes('/');
3597
+ });
3598
+ if (!isRangeFormat && this._allValues.length > 1) {
3599
+ this.calculatedTimeInterval = calculateTimeIntervalFromList(this._allValues);
3600
+ }
3533
3601
  }
3534
3602
  }
3535
3603
  /* If no default value is given, take the last / most recent one */
@@ -3563,7 +3631,7 @@ var WMJSDimension = /*#__PURE__*/function () {
3563
3631
  if (this._timeRangeDurationDate) {
3564
3632
  this.dimTimeInterval = this._timeRangeDurationDate.timeInterval;
3565
3633
  } else {
3566
- this.dimTimeInterval = null;
3634
+ this.dimTimeInterval = this.calculatedTimeInterval;
3567
3635
  }
3568
3636
  }
3569
3637
  /**
@@ -4650,28 +4718,37 @@ var WMJSMap = /*#__PURE__*/function () {
4650
4718
  key: "_adagucBeforeDraw",
4651
4719
  value: function _adagucBeforeDraw(ctx) {
4652
4720
  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);
4721
+ var _iterator = _createForOfIteratorHelper(this.baseLayers),
4722
+ _step;
4723
+ try {
4724
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
4725
+ var baseLayer = _step.value;
4726
+ if (baseLayer.enabled && baseLayer.keepOnTop === false && baseLayer.type && baseLayer.type === 'twms' && this.tileRenderSettings) {
4727
+ ctx.globalAlpha = baseLayer.opacity;
4728
+ var _this$wmTileRenderer$ = this.wmTileRenderer.render(this.bbox, this.updateBBOX, this.srs, this.width, this.height, ctx, bgMapImageStore, this.tileRenderSettings, baseLayer.name),
4729
+ attributionText = _this$wmTileRenderer$.attributionText;
4730
+ ctx.globalAlpha = 1.0;
4731
+ var adagucAttribution = "ADAGUC webmapjs ".concat(this.WebMapJSMapVersion);
4732
+ var txt = attributionText ? "".concat(adagucAttribution, " | ").concat(attributionText) : adagucAttribution;
4733
+ var x = this.width - 8;
4734
+ var y = this.height - 8;
4735
+ ctx.font = '10px Arial';
4736
+ ctx.textAlign = 'right';
4737
+ ctx.textBaseline = 'middle';
4738
+ ctx.fillStyle = '#FFF';
4739
+ ctx.globalAlpha = 0.75;
4740
+ var _ctx$measureText = ctx.measureText(txt),
4741
+ width = _ctx$measureText.width;
4742
+ ctx.fillRect(x - width, y - 6, width + 8, 14);
4743
+ ctx.fillStyle = '#444';
4744
+ ctx.globalAlpha = 1.0;
4745
+ ctx.fillText(txt, x + 4, y + 2);
4746
+ }
4674
4747
  }
4748
+ } catch (err) {
4749
+ _iterator.e(err);
4750
+ } finally {
4751
+ _iterator.f();
4675
4752
  }
4676
4753
  }
4677
4754
  }
@@ -4714,33 +4791,51 @@ var WMJSMap = /*#__PURE__*/function () {
4714
4791
  ctx.globalAlpha = 1;
4715
4792
  }
4716
4793
  /* 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'
4794
+ var _iterator2 = _createForOfIteratorHelper(this.layers),
4795
+ _step2;
4796
+ try {
4797
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
4798
+ var _layer2 = _step2.value;
4799
+ var _iterator3 = _createForOfIteratorHelper(_layer2.dimensions),
4800
+ _step3;
4801
+ try {
4802
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
4803
+ var _dimension = _step3.value;
4804
+ if (_dimension.currentValue === WMDateOutSideRange) {
4805
+ this.canvasErrors.push({
4806
+ linkedInfo: {
4807
+ layer: _layer2,
4808
+ message: 'Time outside range'
4809
+ }
4810
+ });
4811
+ } else if (_dimension.currentValue === WMDateTooEarlyString) {
4812
+ this.canvasErrors.push({
4813
+ linkedInfo: {
4814
+ layer: _layer2,
4815
+ message: 'Time too early'
4816
+ }
4817
+ });
4818
+ } else if (_dimension.currentValue === WMDateTooLateString) {
4819
+ this.canvasErrors.push({
4820
+ linkedInfo: {
4821
+ layer: _layer2,
4822
+ message: 'Time too late'
4823
+ }
4824
+ });
4738
4825
  }
4739
- });
4826
+ }
4827
+ } catch (err) {
4828
+ _iterator3.e(err);
4829
+ } finally {
4830
+ _iterator3.f();
4740
4831
  }
4741
4832
  }
4833
+ /* Display errors found during drawing canvas */
4834
+ } catch (err) {
4835
+ _iterator2.e(err);
4836
+ } finally {
4837
+ _iterator2.f();
4742
4838
  }
4743
- /* Display errors found during drawing canvas */
4744
4839
  if (this.canvasErrors && this.canvasErrors.length > 0) {
4745
4840
  var errorsToDisplay = getErrorsToDisplay(this.canvasErrors, this.getLayerByServiceAndName);
4746
4841
  this.canvasErrors = [];
@@ -4842,15 +4937,15 @@ var WMJSMap = /*#__PURE__*/function () {
4842
4937
  ctx.font = '9px Helvetica';
4843
4938
  ctx.textBaseline = 'middle';
4844
4939
  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);
4940
+ for (var j = 0; j < 2; j += 1) {
4941
+ ctx.moveTo(offsetX, scaleBarHeight - 2 - j + offsetY);
4942
+ ctx.lineTo(scaleBarProps.width * 2 + offsetX + 1, scaleBarHeight - 2 - j + offsetY);
4848
4943
  }
4849
4944
  var subDivXW = parseInt(Math.round(scaleBarProps.width / 5), 10);
4850
4945
  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);
4946
+ for (var _j = 1; _j < 5; _j += 1) {
4947
+ ctx.moveTo(offsetX + subDivXW * _j, scaleBarHeight - 2 + offsetY);
4948
+ ctx.lineTo(offsetX + subDivXW * _j, scaleBarHeight - 2 - 5 + offsetY);
4854
4949
  }
4855
4950
  ctx.lineWidth = 1.0;
4856
4951
  ctx.moveTo(offsetX, scaleBarHeight - 2 + offsetY);
@@ -4945,9 +5040,9 @@ var WMJSMap = /*#__PURE__*/function () {
4945
5040
  drawTextBG(ctx, 'Layer name', metadataX, metadataY + rowNumber * rowHeight, 10);
4946
5041
  drawTextBG(ctx, 'Dimensions', metadataX + dimStartX, metadataY + rowNumber * rowHeight, 10);
4947
5042
  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);
5043
+ for (var _j2 = 0; _j2 < this.layers.length; _j2 += 1) {
5044
+ var layer = this.layers[_j2];
5045
+ drawTextBG(ctx, "#".concat(_j2, ":").concat(layer.name), metadataX, metadataY + rowNumber * rowHeight, 10);
4951
5046
  for (var d = 0; d < layer.dimensions.length; d += 1) {
4952
5047
  var dimension = layer.dimensions[d];
4953
5048
  drawTextBG(ctx, "".concat(dimension.name, " = ").concat(dimension.currentValue), metadataX + d * 200 + dimStartX, metadataY + rowNumber * rowHeight, 10);
@@ -5138,8 +5233,17 @@ var WMJSMap = /*#__PURE__*/function () {
5138
5233
  }, {
5139
5234
  key: "setActiveLayer",
5140
5235
  value: function setActiveLayer(layer) {
5141
- for (var j = 0; j < this.layers.length; j += 1) {
5142
- this.layers[j].active = false;
5236
+ var _iterator4 = _createForOfIteratorHelper(this.layers),
5237
+ _step4;
5238
+ try {
5239
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
5240
+ var _layer3 = _step4.value;
5241
+ _layer3.active = false;
5242
+ }
5243
+ } catch (err) {
5244
+ _iterator4.e(err);
5245
+ } finally {
5246
+ _iterator4.f();
5143
5247
  }
5144
5248
  this.activeLayer = layer;
5145
5249
  this.activeLayer.active = true;
@@ -5152,12 +5256,21 @@ var WMJSMap = /*#__PURE__*/function () {
5152
5256
  value: function calculateNumBaseLayers() {
5153
5257
  this.numBaseLayers = 0;
5154
5258
  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;
5259
+ var _iterator5 = _createForOfIteratorHelper(this.baseLayers),
5260
+ _step5;
5261
+ try {
5262
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
5263
+ var baseLayer = _step5.value;
5264
+ if (baseLayer.enabled) {
5265
+ if (baseLayer.keepOnTop === false) {
5266
+ this.numBaseLayers += 1;
5267
+ }
5159
5268
  }
5160
5269
  }
5270
+ } catch (err) {
5271
+ _iterator5.e(err);
5272
+ } finally {
5273
+ _iterator5.f();
5161
5274
  }
5162
5275
  }
5163
5276
  }
@@ -5209,8 +5322,17 @@ var WMJSMap = /*#__PURE__*/function () {
5209
5322
  }, {
5210
5323
  key: "removeAllLayers",
5211
5324
  value: function removeAllLayers() {
5212
- for (var i = 0; i < this.layers.length; i += 1) {
5213
- this.layers[i].setAutoUpdate(false);
5325
+ var _iterator6 = _createForOfIteratorHelper(this.layers),
5326
+ _step6;
5327
+ try {
5328
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
5329
+ var layer = _step6.value;
5330
+ layer.setAutoUpdate(false);
5331
+ }
5332
+ } catch (err) {
5333
+ _iterator6.e(err);
5334
+ } finally {
5335
+ _iterator6.f();
5214
5336
  }
5215
5337
  this.layers.length = 0;
5216
5338
  this.mapdimensions.length = 0;
@@ -5530,15 +5652,33 @@ var WMJSMap = /*#__PURE__*/function () {
5530
5652
  // Make first a header with 'Layer' and the dimensions
5531
5653
  infoHTML += '<tr><th>Layer</th>';
5532
5654
  if (this.mapdimensions) {
5533
- for (var d = 0; d < this.mapdimensions.length; d += 1) {
5534
- infoHTML += "<th>".concat(this.mapdimensions[d].name, "</th>");
5655
+ var _iterator7 = _createForOfIteratorHelper(this.mapdimensions),
5656
+ _step7;
5657
+ try {
5658
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
5659
+ var mapDim = _step7.value;
5660
+ infoHTML += "<th>".concat(mapDim.name, "</th>");
5661
+ }
5662
+ } catch (err) {
5663
+ _iterator7.e(err);
5664
+ } finally {
5665
+ _iterator7.f();
5535
5666
  }
5536
5667
  }
5537
5668
  infoHTML += '</tr>';
5538
5669
  infoHTML += '<tr><td>Map</tdh>';
5539
5670
  if (this.mapdimensions) {
5540
- for (var _d = 0; _d < this.mapdimensions.length; _d += 1) {
5541
- infoHTML += "<td>".concat(this.mapdimensions[_d].currentValue, "</td>");
5671
+ var _iterator8 = _createForOfIteratorHelper(this.mapdimensions),
5672
+ _step8;
5673
+ try {
5674
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
5675
+ var _mapDim = _step8.value;
5676
+ infoHTML += "<td>".concat(_mapDim.currentValue, "</td>");
5677
+ }
5678
+ } catch (err) {
5679
+ _iterator8.e(err);
5680
+ } finally {
5681
+ _iterator8.f();
5542
5682
  }
5543
5683
  }
5544
5684
  infoHTML += '</tr>';
@@ -5551,19 +5691,37 @@ var WMJSMap = /*#__PURE__*/function () {
5551
5691
  var layerTitle = '';
5552
5692
  layerTitle += this.layers[j].title;
5553
5693
  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;
5694
+ var _iterator9 = _createForOfIteratorHelper(this.mapdimensions),
5695
+ _step9;
5696
+ try {
5697
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
5698
+ var _mapDim2 = _step9.value;
5699
+ var foundDim = false;
5700
+ var _iterator10 = _createForOfIteratorHelper(layerDimensionsObject),
5701
+ _step10;
5702
+ try {
5703
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
5704
+ var layerDim = _step10.value;
5705
+ if (layerDim.name.toUpperCase() === _mapDim2.name.toUpperCase()) {
5706
+ infoHTML += "<td>".concat(layerDim.currentValue, "</td>");
5707
+ foundDim = true;
5708
+ infoHTMLHasValidContent = true;
5709
+ break;
5710
+ }
5711
+ }
5712
+ } catch (err) {
5713
+ _iterator10.e(err);
5714
+ } finally {
5715
+ _iterator10.f();
5716
+ }
5717
+ if (foundDim === false) {
5718
+ infoHTML += '<td>-</td>';
5562
5719
  }
5563
5720
  }
5564
- if (foundDim === false) {
5565
- infoHTML += '<td>-</td>';
5566
- }
5721
+ } catch (err) {
5722
+ _iterator9.e(err);
5723
+ } finally {
5724
+ _iterator9.f();
5567
5725
  }
5568
5726
  infoHTML += '</tr>';
5569
5727
  }
@@ -5816,10 +5974,19 @@ var WMJSMap = /*#__PURE__*/function () {
5816
5974
  if (layer) {
5817
5975
  this.numBaseLayers = 0;
5818
5976
  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;
5977
+ var _iterator11 = _createForOfIteratorHelper(this.baseLayers),
5978
+ _step11;
5979
+ try {
5980
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
5981
+ var baseLayer = _step11.value;
5982
+ if (baseLayer.keepOnTop === true) {
5983
+ this.numBaseLayers += 1;
5984
+ }
5822
5985
  }
5986
+ } catch (err) {
5987
+ _iterator11.e(err);
5988
+ } finally {
5989
+ _iterator11.f();
5823
5990
  }
5824
5991
  this.callBack.triggerEvent('onlayeradd');
5825
5992
  } else {
@@ -5832,11 +5999,20 @@ var WMJSMap = /*#__PURE__*/function () {
5832
5999
  if (layer) {
5833
6000
  this.numBaseLayers = 0;
5834
6001
  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;
6002
+ var _iterator12 = _createForOfIteratorHelper(this.baseLayers),
6003
+ _step12;
6004
+ try {
6005
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
6006
+ var baseLayer = _step12.value;
6007
+ baseLayer.parentMap = this;
6008
+ if (baseLayer.keepOnTop !== true) {
6009
+ this.numBaseLayers += 1;
6010
+ }
5839
6011
  }
6012
+ } catch (err) {
6013
+ _iterator12.e(err);
6014
+ } finally {
6015
+ _iterator12.f();
5840
6016
  }
5841
6017
  this.callBack.triggerEvent('onlayerchange');
5842
6018
  } else {
@@ -6137,10 +6313,19 @@ var WMJSMap = /*#__PURE__*/function () {
6137
6313
  rightButton: detectRightButton(event),
6138
6314
  shiftKey: shiftKey
6139
6315
  });
6140
- for (var j = 0; j < triggerResults.length; j += 1) {
6141
- if (triggerResults[j] === false) {
6142
- return;
6316
+ var _iterator13 = _createForOfIteratorHelper(triggerResults),
6317
+ _step13;
6318
+ try {
6319
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
6320
+ var triggerResult = _step13.value;
6321
+ if (triggerResult === false) {
6322
+ return;
6323
+ }
6143
6324
  }
6325
+ } catch (err) {
6326
+ _iterator13.e(err);
6327
+ } finally {
6328
+ _iterator13.f();
6144
6329
  }
6145
6330
  }
6146
6331
  }
@@ -6266,10 +6451,19 @@ var WMJSMap = /*#__PURE__*/function () {
6266
6451
  leftButton: detectLeftButton(event),
6267
6452
  rightButton: detectRightButton(event)
6268
6453
  });
6269
- for (var j = 0; j < triggerResults.length; j += 1) {
6270
- if (triggerResults[j] === false) {
6271
- return;
6454
+ var _iterator14 = _createForOfIteratorHelper(triggerResults),
6455
+ _step14;
6456
+ try {
6457
+ for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
6458
+ var triggerResult = _step14.value;
6459
+ if (triggerResult === false) {
6460
+ return;
6461
+ }
6272
6462
  }
6463
+ } catch (err) {
6464
+ _iterator14.e(err);
6465
+ } finally {
6466
+ _iterator14.f();
6273
6467
  }
6274
6468
  }
6275
6469
  if (this.divBoundingBox.displayed === true && this.mapPanning === 0) {
@@ -6427,11 +6621,20 @@ var WMJSMap = /*#__PURE__*/function () {
6427
6621
  mouseDown: false,
6428
6622
  event: e
6429
6623
  });
6430
- for (var j = 0; j < triggerResults.length; j += 1) {
6431
- if (triggerResults[j] === false) {
6432
- this.mouseDownPressed = 0;
6433
- return;
6624
+ var _iterator15 = _createForOfIteratorHelper(triggerResults),
6625
+ _step15;
6626
+ try {
6627
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
6628
+ var triggerResult = _step15.value;
6629
+ if (triggerResult === false) {
6630
+ this.mouseDownPressed = 0;
6631
+ return;
6632
+ }
6434
6633
  }
6634
+ } catch (err) {
6635
+ _iterator15.e(err);
6636
+ } finally {
6637
+ _iterator15.f();
6435
6638
  }
6436
6639
  }
6437
6640
  }
@@ -6523,9 +6726,18 @@ var WMJSMap = /*#__PURE__*/function () {
6523
6726
  this.zoomTo(this.updateBBOX);
6524
6727
  this.wMFlyToBBox.flyZoomToBBOXStop();
6525
6728
  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;
6729
+ var _iterator16 = _createForOfIteratorHelper(this.gfiDialogList),
6730
+ _step16;
6731
+ try {
6732
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
6733
+ var gfiDialog = _step16.value;
6734
+ gfiDialog.origX = gfiDialog.x;
6735
+ gfiDialog.origY = gfiDialog.y;
6736
+ }
6737
+ } catch (err) {
6738
+ _iterator16.e(err);
6739
+ } finally {
6740
+ _iterator16.f();
6529
6741
  }
6530
6742
  this.mapPanning = 1;
6531
6743
  debugLogger(DebugType.Log);
@@ -6751,16 +6963,25 @@ var WMJSMap = /*#__PURE__*/function () {
6751
6963
  this._updateBoundingBox(this.bbox);
6752
6964
  this.drawnBBOX.setBBOX(this.bbox);
6753
6965
  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);
6966
+ var _iterator17 = _createForOfIteratorHelper(_this12.gfiDialogList),
6967
+ _step17;
6968
+ try {
6969
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
6970
+ var gfiDialog = _step17.value;
6971
+ var newpos = _this12.getPixelCoordFromGeoCoord({
6972
+ x: gfiDialog.geoPosX,
6973
+ y: gfiDialog.geoPosY
6974
+ });
6975
+ if (gfiDialog.hasBeenDragged === false) {
6976
+ if (gfiDialog.moveToMouseCursor === true) {
6977
+ gfiDialog.setXY(gfiDialog.origX + newpos.x, gfiDialog.origY + newpos.y);
6978
+ }
6762
6979
  }
6763
6980
  }
6981
+ } catch (err) {
6982
+ _iterator17.e(err);
6983
+ } finally {
6984
+ _iterator17.f();
6764
6985
  }
6765
6986
  };
6766
6987
  resetMapPinAndDialogs();
@@ -6949,10 +7170,19 @@ var WMJSMap = /*#__PURE__*/function () {
6949
7170
  }, {
6950
7171
  key: "getDimension",
6951
7172
  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];
7173
+ var _iterator18 = _createForOfIteratorHelper(this.mapdimensions),
7174
+ _step18;
7175
+ try {
7176
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
7177
+ var mapDimension = _step18.value;
7178
+ if (mapDimension.name === name) {
7179
+ return mapDimension;
7180
+ }
6955
7181
  }
7182
+ } catch (err) {
7183
+ _iterator18.e(err);
7184
+ } finally {
7185
+ _iterator18.f();
6956
7186
  }
6957
7187
  return undefined;
6958
7188
  }
@@ -7003,19 +7233,28 @@ var WMJSMap = /*#__PURE__*/function () {
7003
7233
  this.draw('zoomTolayer');
7004
7234
  return;
7005
7235
  }
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;
7236
+ var _iterator19 = _createForOfIteratorHelper(layer.projectionProperties),
7237
+ _step19;
7238
+ try {
7239
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
7240
+ var layerProjProp = _step19.value;
7241
+ if (layerProjProp.srs === this.srs) {
7242
+ var w = layerProjProp.bbox.right - layerProjProp.bbox.left;
7243
+ var h = layerProjProp.bbox.top - layerProjProp.bbox.bottom;
7244
+ var newBBOX = layerProjProp.bbox.clone();
7245
+ newBBOX.left -= w / 100;
7246
+ newBBOX.right += w / 100;
7247
+ newBBOX.bottom -= h / 100;
7248
+ newBBOX.top += h / 100;
7249
+ this.zoomTo(newBBOX);
7250
+ this.draw('zoomTolayer');
7251
+ return;
7252
+ }
7018
7253
  }
7254
+ } catch (err) {
7255
+ _iterator19.e(err);
7256
+ } finally {
7257
+ _iterator19.f();
7019
7258
  }
7020
7259
  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
7260
  this.zoomTo(this.defaultBBOX);
@@ -7058,14 +7297,14 @@ var WMJSMap = /*#__PURE__*/function () {
7058
7297
  for (var j = 0; j <= this.UndoPointer; j += 1) {
7059
7298
  this.WMProjectionTempUndo[j] = this.WMProjectionUndo[j];
7060
7299
  }
7061
- for (var _j4 = 0; _j4 <= this.UndoPointer; _j4 += 1) {
7062
- this.WMProjectionUndo[_j4] = this.WMProjectionTempUndo[this.UndoPointer - _j4];
7300
+ for (var _j3 = 0; _j3 <= this.UndoPointer; _j3 += 1) {
7301
+ this.WMProjectionUndo[_j3] = this.WMProjectionTempUndo[this.UndoPointer - _j3];
7063
7302
  }
7064
7303
  this.UndoPointer = 0;
7065
7304
  }
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;
7305
+ for (var _j4 = this.MaxUndos - 1; _j4 > 0; _j4 -= 1) {
7306
+ this.WMProjectionUndo[_j4].bbox.setBBOX(this.WMProjectionUndo[_j4 - 1].bbox);
7307
+ this.WMProjectionUndo[_j4].srs = this.WMProjectionUndo[_j4 - 1].srs;
7069
7308
  }
7070
7309
  this.WMProjectionUndo[0].bbox.setBBOX(this.bbox);
7071
7310
  this.WMProjectionUndo[0].srs = this.srs;
@@ -7605,46 +7844,63 @@ var WMXMLtoJSON = function WMXMLtoJSON(xmlDocument) {
7605
7844
  // eslint-disable-next-line no-shadow
7606
7845
  var traverse = function traverse(data, path, json) {
7607
7846
  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]);
7847
+ var _iterator = _createForOfIteratorHelper(data.children),
7848
+ _step;
7849
+ try {
7850
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
7851
+ var child = _step.value;
7852
+ var newPath = "".concat(path, "->").concat(child.nodeName);
7853
+ var newJson = null;
7854
+ var nodeName = child.nodeName;
7855
+ if (json[nodeName]) {
7856
+ newJson = {
7857
+ attr: {}
7858
+ };
7859
+ // eslint-disable-next-line no-empty
7860
+ if (json[nodeName] instanceof Array) {} else {
7861
+ var obj = Object.assign({}, json[nodeName]);
7862
+ // eslint-disable-next-line no-param-reassign
7863
+ json[nodeName] = [];
7864
+ json[nodeName].push(obj);
7865
+ }
7866
+ json[nodeName].push(newJson);
7867
+ } else {
7620
7868
  // eslint-disable-next-line no-param-reassign
7621
- json[nodeName] = [];
7622
- json[nodeName].push(obj);
7869
+ json[nodeName] = {
7870
+ attr: {}
7871
+ };
7872
+ newJson = json[nodeName];
7623
7873
  }
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;
7874
+ // Value
7875
+ if (child.childNodes && child.childNodes.length > 0) {
7876
+ if (child.childNodes[0].nodeValue) {
7877
+ var value = child.childNodes[0].nodeValue.trim();
7878
+ if (value !== '\n' && value.length > 0) {
7879
+ newJson.value = value;
7880
+ }
7638
7881
  }
7639
7882
  }
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;
7883
+ // Attributes
7884
+ if (child.attributes && child.attributes.length > 0) {
7885
+ var _iterator2 = _createForOfIteratorHelper(child.attributes),
7886
+ _step2;
7887
+ try {
7888
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
7889
+ var childAttribute = _step2.value;
7890
+ newJson.attr[childAttribute.name] = childAttribute.value;
7891
+ }
7892
+ } catch (err) {
7893
+ _iterator2.e(err);
7894
+ } finally {
7895
+ _iterator2.f();
7896
+ }
7645
7897
  }
7898
+ traverse(child, newPath, newJson);
7646
7899
  }
7647
- traverse(child, newPath, newJson);
7900
+ } catch (err) {
7901
+ _iterator.e(err);
7902
+ } finally {
7903
+ _iterator.f();
7648
7904
  }
7649
7905
  }
7650
7906
  };
@@ -7659,8 +7915,17 @@ var WMXMLParser = function WMXMLParser(url, headers) {
7659
7915
  return new Promise(function (resolve, reject) {
7660
7916
  var fetchHeaders = new Headers();
7661
7917
  if (headers && headers.length > 0) {
7662
- for (var j = 0; j < headers.length; j += 1) {
7663
- fetchHeaders.append(headers[j].name, headers[j].value);
7918
+ var _iterator3 = _createForOfIteratorHelper(headers),
7919
+ _step3;
7920
+ try {
7921
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
7922
+ var header = _step3.value;
7923
+ fetchHeaders.append(header.name, header.value);
7924
+ }
7925
+ } catch (err) {
7926
+ _iterator3.e(err);
7927
+ } finally {
7928
+ _iterator3.f();
7664
7929
  }
7665
7930
  }
7666
7931
  fetch(url, {
@@ -8087,27 +8352,20 @@ var WMJSService = /*#__PURE__*/function () {
8087
8352
  return WMJSService;
8088
8353
  }();
8089
8354
 
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
8355
  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];
8356
+ var _iterator = _createForOfIteratorHelper(WMServiceStore),
8357
+ _step;
8358
+ try {
8359
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
8360
+ var WMService = _step.value;
8361
+ if (WMService.service === serviceName) {
8362
+ return WMService;
8363
+ }
8110
8364
  }
8365
+ } catch (err) {
8366
+ _iterator.e(err);
8367
+ } finally {
8368
+ _iterator.f();
8111
8369
  }
8112
8370
  var service = new WMJSService({
8113
8371
  service: serviceName
@@ -8223,10 +8481,19 @@ var configureDimensions = function configureDimensions(layerProps, wmLayer) {
8223
8481
  */
8224
8482
  /* 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
8483
  var layerDimNamesToRemove = new Set();
8226
- for (var d = 0; d < wmLayer.dimensions.length; d += 1) {
8227
- layerDimNamesToRemove.add(wmLayer.dimensions[d].name);
8484
+ var _iterator = _createForOfIteratorHelper(wmLayer.dimensions),
8485
+ _step;
8486
+ try {
8487
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
8488
+ var layerDim = _step.value;
8489
+ layerDimNamesToRemove.add(layerDim.name);
8490
+ }
8491
+ /* Now start adding all dimensions starting with the parent layer. Layers more deeply nested will inherit Dimension info */
8492
+ } catch (err) {
8493
+ _iterator.e(err);
8494
+ } finally {
8495
+ _iterator.f();
8228
8496
  }
8229
- /* Now start adding all dimensions starting with the parent layer. Layers more deeply nested will inherit Dimension info */
8230
8497
  addDimsForLayer(layerProps, wmLayer, layerDimNamesToRemove);
8231
8498
  /* The list with dimensions to remove is now complete, remove the unneeded dimensions from the layer */
8232
8499
  layerDimNamesToRemove.forEach(function (dimName) {
@@ -8555,13 +8822,22 @@ var WMLayer = /*#__PURE__*/function () {
8555
8822
  // Get the optimal image format for this layer
8556
8823
  try {
8557
8824
  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;
8825
+ var _iterator2 = _createForOfIteratorHelper(serverFormats),
8826
+ _step2;
8827
+ try {
8828
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
8829
+ var serverFormat = _step2.value;
8830
+ if (serverFormat.value.indexOf('24') > 0) {
8831
+ this.optimalFormat = serverFormat.value;
8832
+ }
8833
+ if (serverFormat.value.indexOf('32') > 0) {
8834
+ this.optimalFormat = serverFormat.value;
8835
+ }
8564
8836
  }
8837
+ } catch (err) {
8838
+ _iterator2.e(err);
8839
+ } finally {
8840
+ _iterator2.f();
8565
8841
  }
8566
8842
  } catch (e) {
8567
8843
  debugLogger(DebugType.Error);
@@ -8778,12 +9054,21 @@ var WMLayer = /*#__PURE__*/function () {
8778
9054
  return;
8779
9055
  }
8780
9056
  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;
9057
+ var _iterator3 = _createForOfIteratorHelper(this.styles),
9058
+ _step3;
9059
+ try {
9060
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
9061
+ var style = _step3.value;
9062
+ if (style.name === styleName) {
9063
+ this.legendGraphic = style.legendURL;
9064
+ this.currentStyle = style.name;
9065
+ styleFound = true;
9066
+ }
8786
9067
  }
9068
+ } catch (err) {
9069
+ _iterator3.e(err);
9070
+ } finally {
9071
+ _iterator3.f();
8787
9072
  }
8788
9073
  if (!styleFound) {
8789
9074
  debugLogger(DebugType.Log, "WMLayer::setStyle: Style ".concat(styleName, " not found, setting style ").concat(this.styles[0].name));
@@ -8854,17 +9139,25 @@ var WMLayer = /*#__PURE__*/function () {
8854
9139
  key: "getCRS",
8855
9140
  value: function getCRS() {
8856
9141
  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
- });
9142
+ var _iterator4 = _createForOfIteratorHelper(this.projectionProperties),
9143
+ _step4;
9144
+ try {
9145
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
9146
+ var projectionProperty = _step4.value;
9147
+ if (projectionProperty) {
9148
+ var bbox = projectionProperty.bbox;
9149
+ if (bbox) {
9150
+ crs.push({
9151
+ srs: "".concat(projectionProperty.srs),
9152
+ bbox: new WMBBOX(bbox.left, bbox.bottom, bbox.right, bbox.top)
9153
+ });
9154
+ }
8866
9155
  }
8867
9156
  }
9157
+ } catch (err) {
9158
+ _iterator4.e(err);
9159
+ } finally {
9160
+ _iterator4.f();
8868
9161
  }
8869
9162
  return crs;
8870
9163
  }
@@ -8877,16 +9170,25 @@ var WMLayer = /*#__PURE__*/function () {
8877
9170
  }, {
8878
9171
  key: "getCRSByName",
8879
9172
  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;
9173
+ var _iterator5 = _createForOfIteratorHelper(this.projectionProperties),
9174
+ _step5;
9175
+ try {
9176
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
9177
+ var projProps = _step5.value;
9178
+ if (projProps.srs === srsName) {
9179
+ var returnSRS = {
9180
+ srs: '',
9181
+ bbox: new WMBBOX(undefined, undefined, undefined, undefined)
9182
+ };
9183
+ returnSRS.srs = "".concat(projProps.srs);
9184
+ returnSRS.bbox = new WMBBOX(projProps.bbox.left, projProps.bbox.bottom, projProps.bbox.right, projProps.bbox.top);
9185
+ return returnSRS;
9186
+ }
8889
9187
  }
9188
+ } catch (err) {
9189
+ _iterator5.e(err);
9190
+ } finally {
9191
+ _iterator5.f();
8890
9192
  }
8891
9193
  return undefined;
8892
9194
  }
@@ -9105,7 +9407,7 @@ var defaultReduxLayerRadarColor = {
9105
9407
  dimensions: [],
9106
9408
  id: generateLayerId()
9107
9409
  };
9108
- var multiDimensionLayer = {
9410
+ var multiDimensionLayer$1 = {
9109
9411
  service: 'https://testservice',
9110
9412
  id: 'multiDimensionLayerMock',
9111
9413
  name: 'MULTI_DIMENSION_LAYER',
@@ -9143,7 +9445,7 @@ var WmdefaultReduxLayerRadarKNMI = new WMLayer({
9143
9445
  }],
9144
9446
  id: 'layerid_3'
9145
9447
  });
9146
- var defaultReduxLayerRadarKNMI = {
9448
+ var defaultReduxLayerRadarKNMI$1 = {
9147
9449
  service: 'https://testservice',
9148
9450
  name: 'RADNL_OPER_R___25PCPRR_L3_KNMI',
9149
9451
  title: 'RADNL_OPER_R___25PCPRR_L3_KNMI',
@@ -9455,9 +9757,9 @@ var multiDimensionLayer3 = {
9455
9757
  var testSettings = /*#__PURE__*/Object.freeze({
9456
9758
  __proto__: null,
9457
9759
  defaultReduxLayerRadarColor: defaultReduxLayerRadarColor,
9458
- multiDimensionLayer: multiDimensionLayer,
9760
+ multiDimensionLayer: multiDimensionLayer$1,
9459
9761
  WmdefaultReduxLayerRadarKNMI: WmdefaultReduxLayerRadarKNMI,
9460
- defaultReduxLayerRadarKNMI: defaultReduxLayerRadarKNMI,
9762
+ defaultReduxLayerRadarKNMI: defaultReduxLayerRadarKNMI$1,
9461
9763
  makeGeoservicesRadarLayer: makeGeoservicesRadarLayer,
9462
9764
  WmMultiDimensionLayer: WmMultiDimensionLayer,
9463
9765
  layerWithoutTimeDimension: layerWithoutTimeDimension,
@@ -9846,6 +10148,61 @@ var tilesettings = {
9846
10148
  }
9847
10149
  };
9848
10150
 
10151
+ /* *
10152
+ * Licensed under the Apache License, Version 2.0 (the "License");
10153
+ * you may not use this file except in compliance with the License.
10154
+ * You may obtain a copy of the License at
10155
+ *
10156
+ * http://www.apache.org/licenses/LICENSE-2.0
10157
+ *
10158
+ * Unless required by applicable law or agreed to in writing, software
10159
+ * distributed under the License is distributed on an "AS IS" BASIS,
10160
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10161
+ * See the License for the specific language governing permissions and
10162
+ * limitations under the License.
10163
+ *
10164
+ * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
10165
+ * Copyright 2021 - Finnish Meteorological Institute (FMI)
10166
+ * */
10167
+ var defaultReduxLayerRadarKNMI = {
10168
+ service: 'https://testservice',
10169
+ name: 'RADNL_OPER_R___25PCPRR_L3_KNMI',
10170
+ title: 'RADNL_OPER_R___25PCPRR_L3_KNMI',
10171
+ format: 'image/png',
10172
+ style: 'knmiradar/nearest',
10173
+ enabled: true,
10174
+ layerType: LayerType.mapLayer,
10175
+ dimensions: [{
10176
+ name: 'time',
10177
+ units: 'ISO8601',
10178
+ currentValue: '2020-03-13T13:30:00Z'
10179
+ }],
10180
+ id: 'layerid_2'
10181
+ };
10182
+ var multiDimensionLayer = {
10183
+ service: 'https://testservice',
10184
+ id: 'multiDimensionLayerMock',
10185
+ name: 'MULTI_DIMENSION_LAYER',
10186
+ title: 'MULTI_DIMENSION_LAYER',
10187
+ layerType: LayerType.mapLayer,
10188
+ enabled: true,
10189
+ dimensions: [{
10190
+ name: 'flight level',
10191
+ units: 'hft',
10192
+ currentValue: '625',
10193
+ values: '25,325,625'
10194
+ }, {
10195
+ name: 'elevation',
10196
+ units: 'meters',
10197
+ currentValue: '9000',
10198
+ values: '1000,5000,9000'
10199
+ }, {
10200
+ name: 'time',
10201
+ units: 'ISO8601',
10202
+ currentValue: '2020-03-13T14:40:00Z'
10203
+ }]
10204
+ };
10205
+
9849
10206
  /* *
9850
10207
  * Licensed under the Apache License, Version 2.0 (the "License");
9851
10208
  * you may not use this file except in compliance with the License.
@@ -10104,22 +10461,6 @@ var mockGetCapabilities = Object.assign(Object.assign({}, getCapabilities$1), {
10104
10461
  WMS111GetCapabilitiesGeoServicesRADAR: WMS111GetCapabilitiesGeoServicesRADAR
10105
10462
  });
10106
10463
 
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
10464
  /**
10124
10465
  * Converts webmapjs node structure to LayerTree
10125
10466
  * @param nodesToRecur THe WebMapJS node structure from service.getNodes();
@@ -10138,8 +10479,17 @@ var recurseNodes = function recurseNodes(nodesToRecur) {
10138
10479
  geographicBoundingBox: nodesToRecur.geographicBoundingBox || null
10139
10480
  };
10140
10481
  if (nodesToRecur.children) {
10141
- for (var j = 0; j < nodesToRecur.children.length; j += 1) {
10142
- newLayerTreeObj.children.push(recurseNodes(nodesToRecur.children[j]));
10482
+ var _iterator = _createForOfIteratorHelper(nodesToRecur.children),
10483
+ _step;
10484
+ try {
10485
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
10486
+ var childNodesToRecur = _step.value;
10487
+ newLayerTreeObj.children.push(recurseNodes(childNodesToRecur));
10488
+ }
10489
+ } catch (err) {
10490
+ _iterator.e(err);
10491
+ } finally {
10492
+ _iterator.f();
10143
10493
  }
10144
10494
  }
10145
10495
  return newLayerTreeObj;
@@ -10186,4 +10536,4 @@ var getCapabilities = /*#__PURE__*/Object.freeze({
10186
10536
  getLayersFlattenedFromService: getLayersFlattenedFromService
10187
10537
  });
10188
10538
 
10189
- 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 };
10539
+ 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, defaultReduxLayerRadarKNMI, epsgDescriptionLookup, generateLayerId, generateMapId, generateTimesliderId, getAlternativeImage, getBBOXandProjString, getCapabilities, getLegendGraphicURLForLayer, getMapImageStore, getUriWithParam, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSMapIds, getWMJSTimeDimensionForLayerId, getWMLayerById, handleMomentISOString, isDefined, isProjectionSupported, legendImageStore, legendImageStoreLength, mapImageStoreLength, mockGetCapabilities, multiDimensionLayer, parseISO8601DateToDate, parseISO8601IntervalToDateInterval, registerWMJSMap, registerWMLayer, tilesettings, toArray, unRegisterAllWMJSLayersAndMaps, unRegisterWMJSLayer, unRegisterWMJSMap, testSettings as webmapTestSettings, utils as webmapUtils };