@nextgis/ngw-map 1.8.2 → 1.9.1

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.
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/ngw-map; version: 1.8.2; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-map; version: 1.9.1; author: NextGIS */
2
2
  var NgwMap = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -1428,10 +1428,6 @@ var NgwMap = (function (exports) {
1428
1428
  }
1429
1429
  return false;
1430
1430
  }
1431
- /** @deprecated use {@link isPropertyFilter} instead */
1432
- function checkIfPropertyFilter(filter) {
1433
- return isPropertyFilter(filter);
1434
- }
1435
1431
  function featureFilter(feature, filters) {
1436
1432
  var properties = __assign({}, feature.properties);
1437
1433
  if (properties) {
@@ -2051,7 +2047,11 @@ var NgwMap = (function (exports) {
2051
2047
  * @returns The map's current zoom level (0-24).
2052
2048
  */
2053
2049
  WebMapMain.prototype.getZoom = function () {
2054
- return this.mapAdapter.getZoom();
2050
+ var zoom = this.mapAdapter.getZoom();
2051
+ if (typeof zoom === 'number') {
2052
+ return zoom;
2053
+ }
2054
+ throw Error('Unable to get zoom level. Perhaps the map is not have been initialized yet');
2055
2055
  };
2056
2056
  WebMapMain.prototype.zoomIn = function () {
2057
2057
  if (this.mapAdapter.zoomIn) {
@@ -2077,27 +2077,25 @@ var NgwMap = (function (exports) {
2077
2077
  }
2078
2078
  }
2079
2079
  };
2080
- /**
2081
- * Sets the view of the map geographical center and zoom
2082
- * @param lngLat - Array of two numbers representing longitude and latitude of the center of the map view.
2083
- * @param zoom - The zoom level to set (0-24).
2084
- *
2085
- * @example
2086
- * ```javascript
2087
- * // Mount Everest 27° 59′ 17″ N, 86° 55′ 31″ E
2088
- * webMap.setView([86.925278, 27.988056], 12)
2089
- * ```
2090
- */
2091
- WebMapMain.prototype.setView = function (lngLat, zoom) {
2092
- if (this.mapAdapter.setView && lngLat && defined(zoom)) {
2093
- this.mapAdapter.setView(lngLat, zoom);
2080
+ WebMapMain.prototype.setView = function (lngLatOrOpt, zoom) {
2081
+ if (Array.isArray(lngLatOrOpt)) {
2082
+ var lngLat = lngLatOrOpt;
2083
+ if (this.mapAdapter.setView && lngLat && defined(zoom)) {
2084
+ this.mapAdapter.setView(lngLat, zoom);
2085
+ }
2086
+ else {
2087
+ if (lngLat) {
2088
+ this.mapAdapter.setCenter(lngLat);
2089
+ }
2090
+ if (defined(zoom)) {
2091
+ this.mapAdapter.setZoom(zoom);
2092
+ }
2093
+ }
2094
2094
  }
2095
2095
  else {
2096
- if (lngLat) {
2097
- this.mapAdapter.setCenter(lngLat);
2098
- }
2099
- if (defined(zoom)) {
2100
- this.mapAdapter.setZoom(zoom);
2096
+ var viewOpt = lngLatOrOpt;
2097
+ if (this.mapAdapter.setView) {
2098
+ this.mapAdapter.setView(viewOpt);
2101
2099
  }
2102
2100
  }
2103
2101
  };
@@ -2547,9 +2545,9 @@ var NgwMap = (function (exports) {
2547
2545
  var _a, _b;
2548
2546
  if (options === void 0) { options = {}; }
2549
2547
  return __awaiter(this, void 0, void 0, function () {
2550
- var id, _order, adapterEngine, geoJsonOptions, _c, maxZoom, minZoom, visibility, modified, _adapter, layerId, layer, opacity, getBounds, extent;
2551
- return __generator(this, function (_d) {
2552
- switch (_d.label) {
2548
+ var id, _order, adapterEngine, geoJsonOptions, visibility, modified, _adapter, layerId, layer, opacity, getBounds, extent;
2549
+ return __generator(this, function (_c) {
2550
+ switch (_c.label) {
2553
2551
  case 0:
2554
2552
  id = this._layersIdCounter++;
2555
2553
  _order = defined(order)
@@ -2568,13 +2566,12 @@ var NgwMap = (function (exports) {
2568
2566
  if (!('then' in adapter)) return [3 /*break*/, 4];
2569
2567
  return [4 /*yield*/, adapter];
2570
2568
  case 3:
2571
- adapterEngine = (_d.sent());
2572
- _d.label = 4;
2569
+ adapterEngine = (_c.sent());
2570
+ _c.label = 4;
2573
2571
  case 4:
2574
2572
  geoJsonOptions = options;
2575
2573
  this._updateGeoJsonOptions(geoJsonOptions);
2576
- _c = this.options, maxZoom = _c.maxZoom, minZoom = _c.minZoom;
2577
- options = __assign({ id: String(id), order: _order, maxZoom: maxZoom, minZoom: minZoom }, options);
2574
+ options = __assign({ id: String(id), order: _order }, options);
2578
2575
  visibility = (_a = options.visibility) !== null && _a !== void 0 ? _a : true;
2579
2576
  options.visibility = false;
2580
2577
  if (options.baselayer) {
@@ -2610,11 +2607,11 @@ var NgwMap = (function (exports) {
2610
2607
  this._emitLayerEvent('layer:preadd', layerId || '', _adapter);
2611
2608
  return [4 /*yield*/, this.onMapLoad()];
2612
2609
  case 5:
2613
- _d.sent();
2610
+ _c.sent();
2614
2611
  _adapter.map = this.mapAdapter.map;
2615
2612
  return [4 /*yield*/, _adapter.addLayer(_adapter.options)];
2616
2613
  case 6:
2617
- layer = _d.sent();
2614
+ layer = _c.sent();
2618
2615
  // checking that the original layer was inserted into the adapter anyway
2619
2616
  _adapter.layer = layer;
2620
2617
  // think about how to move `id` to the adapter's constructor,
@@ -2643,8 +2640,8 @@ var NgwMap = (function (exports) {
2643
2640
  if (!visibility) return [3 /*break*/, 8];
2644
2641
  return [4 /*yield*/, this.showLayer(layerId)];
2645
2642
  case 7:
2646
- _d.sent();
2647
- _d.label = 8;
2643
+ _c.sent();
2644
+ _c.label = 8;
2648
2645
  case 8:
2649
2646
  opacity = options.opacity;
2650
2647
  if (opacity !== undefined && opacity <= 1) {
@@ -2654,12 +2651,12 @@ var NgwMap = (function (exports) {
2654
2651
  if (!(options.fit && getBounds)) return [3 /*break*/, 11];
2655
2652
  return [4 /*yield*/, getBounds.call(_adapter)];
2656
2653
  case 9:
2657
- extent = _d.sent();
2654
+ extent = _c.sent();
2658
2655
  if (!extent) return [3 /*break*/, 11];
2659
2656
  return [4 /*yield*/, this.fitBounds(extent)];
2660
2657
  case 10:
2661
- _d.sent();
2662
- _d.label = 11;
2658
+ _c.sent();
2659
+ _c.label = 11;
2663
2660
  case 11:
2664
2661
  this._emitLayerEvent('layer:add', layerId, _adapter);
2665
2662
  return [2 /*return*/, _adapter];
@@ -2852,7 +2849,7 @@ var NgwMap = (function (exports) {
2852
2849
  this._emitLayerEvent(preEventName, id, l);
2853
2850
  this._emitLayerEvent('layer:pretoggle', id, l);
2854
2851
  }
2855
- if (!(toStatus && this.mapAdapter)) return [3 /*break*/, 5];
2852
+ if (!(toStatus && this.mapAdapter)) return [3 /*break*/, 9];
2856
2853
  order = l.options.baselayer ? 0 : l.options.order;
2857
2854
  if (!(l.options.baselayer && this._baselayers.length)) return [3 /*break*/, 4];
2858
2855
  anotherVisibleBaselayers = this._baselayers.filter(function (x) {
@@ -2871,25 +2868,35 @@ var NgwMap = (function (exports) {
2871
2868
  _i++;
2872
2869
  return [3 /*break*/, 1];
2873
2870
  case 4:
2874
- if (l.showLayer) {
2875
- l.showLayer.call(l, l.layer);
2876
- }
2877
- else if (l.layer !== undefined) {
2878
- this.mapAdapter.showLayer(l.layer);
2879
- }
2871
+ if (!l.showLayer) return [3 /*break*/, 6];
2872
+ return [4 /*yield*/, l.showLayer.call(l, l.layer)];
2873
+ case 5:
2874
+ _a.sent();
2875
+ return [3 /*break*/, 8];
2876
+ case 6:
2877
+ if (!(l.layer !== undefined)) return [3 /*break*/, 8];
2878
+ return [4 /*yield*/, this.mapAdapter.showLayer(l.layer)];
2879
+ case 7:
2880
+ _a.sent();
2881
+ _a.label = 8;
2882
+ case 8:
2880
2883
  if (order !== undefined) {
2881
2884
  this.mapAdapter.setLayerOrder(l.layer, order, this._layers);
2882
2885
  }
2883
- return [3 /*break*/, 6];
2884
- case 5:
2885
- if (l.hideLayer) {
2886
- l.hideLayer.call(l, l.layer);
2887
- }
2888
- else if (l.layer !== undefined) {
2889
- this.mapAdapter.hideLayer(l.layer);
2890
- }
2891
- _a.label = 6;
2892
- case 6:
2886
+ return [3 /*break*/, 13];
2887
+ case 9:
2888
+ if (!l.hideLayer) return [3 /*break*/, 11];
2889
+ return [4 /*yield*/, l.hideLayer.call(l, l.layer)];
2890
+ case 10:
2891
+ _a.sent();
2892
+ return [3 /*break*/, 13];
2893
+ case 11:
2894
+ if (!(l.layer !== undefined)) return [3 /*break*/, 13];
2895
+ return [4 /*yield*/, this.mapAdapter.hideLayer(l.layer)];
2896
+ case 12:
2897
+ _a.sent();
2898
+ _a.label = 13;
2899
+ case 13:
2893
2900
  if (!silent) {
2894
2901
  this._emitLayerEvent(eventName, id, l);
2895
2902
  this._emitLayerEvent('layer:toggle', id, l);
@@ -3153,6 +3160,17 @@ var NgwMap = (function (exports) {
3153
3160
  attribution: tileJson.attribution,
3154
3161
  });
3155
3162
  };
3163
+ /** @internal */
3164
+ WebMapLayers.prototype._emitLayerEvent = function (name, id, options) {
3165
+ var name_ = String(name);
3166
+ if (defined(id) && name_.startsWith('layer:')) {
3167
+ var specificLayerName = name_.replace('layer:', 'layer-' + id + ':');
3168
+ // @ts-ignore can't paste template literal key for interface
3169
+ this.emitter.emit(specificLayerName, options);
3170
+ }
3171
+ // @ts-ignore
3172
+ this.emitter.emit(name, options);
3173
+ };
3156
3174
  WebMapLayers.prototype._onLayerClick = function (options) {
3157
3175
  return __awaiter(this, void 0, void 0, function () {
3158
3176
  var id;
@@ -3212,14 +3230,6 @@ var NgwMap = (function (exports) {
3212
3230
  }
3213
3231
  }
3214
3232
  };
3215
- WebMapLayers.prototype._emitLayerEvent = function (name, id, options) {
3216
- if (defined(id) && name.startsWith('layer:')) {
3217
- var specificLayerName = name.replace('layer:', 'layer-' + id + ':');
3218
- // @ts-ignore can't paste template literal key for interface
3219
- this.emitter.emit(specificLayerName, options);
3220
- }
3221
- this.emitter.emit(name, options);
3222
- };
3223
3233
  return WebMapLayers;
3224
3234
  }(WebMapMain));
3225
3235
 
@@ -4996,7 +5006,7 @@ var NgwMap = (function (exports) {
4996
5006
  };
4997
5007
  if (logic === 'any') {
4998
5008
  filters_.forEach(function (f) {
4999
- if (checkIfPropertyFilter(f)) {
5009
+ if (isPropertyFilter(f)) {
5000
5010
  _queries.push(fetchNgwLayerItemsRequest(__assign(__assign({}, opt), { paramList: __spreadArray(__spreadArray([], _parentAllParams, true), [createParam(f)]) })));
5001
5011
  }
5002
5012
  else {
@@ -5009,7 +5019,7 @@ var NgwMap = (function (exports) {
5009
5019
  var propertiesFilterList = [];
5010
5020
  for (var _i = 0, filters_1 = filters_; _i < filters_1.length; _i++) {
5011
5021
  var f = filters_1[_i];
5012
- if (checkIfPropertyFilter(f)) {
5022
+ if (isPropertyFilter(f)) {
5013
5023
  filters_2.push(createParam(f));
5014
5024
  }
5015
5025
  else {
@@ -5145,10 +5155,21 @@ var NgwMap = (function (exports) {
5145
5155
  });
5146
5156
  }
5147
5157
 
5158
+ function fetchNgwLayerCount(_a) {
5159
+ var connector = _a.connector, resourceId = _a.resourceId, _b = _a.cache, cache = _b === void 0 ? true : _b;
5160
+ return connector
5161
+ .get('feature_layer.feature.count', { cache: cache }, {
5162
+ id: resourceId,
5163
+ })
5164
+ .then(function (resp) {
5165
+ return resp.total_count;
5166
+ });
5167
+ }
5168
+
5148
5169
  function createGeoJsonAdapter(props) {
5149
5170
  var _a, _b;
5150
5171
  return __awaiter(this, void 0, void 0, function () {
5151
- var item, webMap, Adapter, connector, layerOptions, alop, addLayerOptionsPriority, options, GeoJsonAdapter, _fullDataLoad, _lastFilterArgs, _dataPromise, resourceId, getData, removed, abort, NgwGeoJsonAdapter;
5172
+ var item, webMap, Adapter, connector, layerOptions, alop, addLayerOptionsPriority, options, GeoJsonAdapter, _loadedIds, _fullDataLoad, _lastFilterArgs, _dataPromise, resourceId, getData, removed, abort, NgwGeoJsonAdapter;
5152
5173
  var _this = this;
5153
5174
  return __generator(this, function (_c) {
5154
5175
  switch (_c.label) {
@@ -5157,6 +5178,7 @@ var NgwMap = (function (exports) {
5157
5178
  addLayerOptionsPriority = alop !== null && alop !== void 0 ? alop : true;
5158
5179
  options = layerOptions;
5159
5180
  GeoJsonAdapter = Adapter || webMap.mapAdapter.layerAdapters.GEOJSON;
5181
+ _loadedIds = [];
5160
5182
  _fullDataLoad = false;
5161
5183
  return [4 /*yield*/, resourceIdFromLayerOptions(options, connector)];
5162
5184
  case 1:
@@ -5195,7 +5217,7 @@ var NgwMap = (function (exports) {
5195
5217
  }
5196
5218
  NgwGeoJsonAdapter.prototype.addLayer = function (opt) {
5197
5219
  return __awaiter(this, void 0, void 0, function () {
5198
- var needUpdate, waitFullLoad, layer, updatePromise;
5220
+ var needUpdate, waitFullLoad, strategy, layer, updatePromise;
5199
5221
  return __generator(this, function (_a) {
5200
5222
  switch (_a.label) {
5201
5223
  case 0:
@@ -5223,8 +5245,9 @@ var NgwMap = (function (exports) {
5223
5245
  opt.data = undefined;
5224
5246
  needUpdate = false;
5225
5247
  }
5248
+ strategy = opt.strategy || undefined;
5249
+ this.options.strategy = strategy;
5226
5250
  layer = _super.prototype.addLayer.call(this, opt);
5227
- this.options.strategy = opt.strategy || undefined;
5228
5251
  _lastFilterArgs = {
5229
5252
  filters: opt.propertiesFilter,
5230
5253
  options: getLayerFilterOptions(opt),
@@ -5238,7 +5261,7 @@ var NgwMap = (function (exports) {
5238
5261
  _a.sent();
5239
5262
  _a.label = 2;
5240
5263
  case 2:
5241
- if (this.options.strategy === 'BBOX' && !_fullDataLoad) {
5264
+ if (strategy && strategy.startsWith('BBOX') && !_fullDataLoad) {
5242
5265
  this._addBboxEventListener();
5243
5266
  }
5244
5267
  return [2 /*return*/, layer];
@@ -5252,10 +5275,11 @@ var NgwMap = (function (exports) {
5252
5275
  };
5253
5276
  NgwGeoJsonAdapter.prototype.getBounds = function () {
5254
5277
  return __awaiter(this, void 0, void 0, function () {
5255
- var hasData;
5278
+ var hasData, strategy;
5256
5279
  return __generator(this, function (_a) {
5257
5280
  hasData = this.getLayers && this.getLayers().length;
5258
- if (this.options.strategy === 'BBOX' || hasData) {
5281
+ strategy = this.options.strategy;
5282
+ if ((strategy === null || strategy === void 0 ? void 0 : strategy.startsWith('BBOX')) || hasData) {
5259
5283
  return [2 /*return*/, fetchNgwResourceExtent(item, connector)];
5260
5284
  }
5261
5285
  else {
@@ -5278,61 +5302,88 @@ var NgwMap = (function (exports) {
5278
5302
  abort();
5279
5303
  };
5280
5304
  NgwGeoJsonAdapter.prototype.getCount = function () {
5281
- var _this = this;
5282
- if (this._count !== undefined) {
5283
- return this._count;
5284
- }
5285
- return connector
5286
- .get('feature_layer.feature.count', { cache: true }, {
5287
- id: resourceId,
5288
- })
5289
- .then(function (resp) {
5290
- if (resp) {
5291
- _this._count = resp.total_count;
5292
- return _this._count;
5293
- }
5294
- });
5305
+ return fetchNgwLayerCount({ connector: connector, resourceId: resourceId, cache: true });
5295
5306
  };
5296
5307
  NgwGeoJsonAdapter.prototype.updateLayer = function (filterArgs) {
5308
+ var _a;
5297
5309
  return __awaiter(this, void 0, void 0, function () {
5298
- var data, count, er_1;
5299
- return __generator(this, function (_a) {
5300
- switch (_a.label) {
5310
+ var _b, minZoom, maxZoom, zoom, data, newData, count, _i, _c, f, er_1;
5311
+ return __generator(this, function (_d) {
5312
+ switch (_d.label) {
5301
5313
  case 0:
5302
5314
  filterArgs = filterArgs || _lastFilterArgs || {};
5303
- if (!(this.options.strategy === 'BBOX')) return [3 /*break*/, 2];
5315
+ if (!((_a = this.options.strategy) === null || _a === void 0 ? void 0 : _a.startsWith('BBOX'))) return [3 /*break*/, 2];
5304
5316
  return [4 /*yield*/, webMap.onLoad('create')];
5305
5317
  case 1:
5306
- _a.sent();
5318
+ _d.sent();
5307
5319
  filterArgs.options = filterArgs.options || {};
5308
5320
  filterArgs.options.intersects = webMap.getBounds();
5309
- _a.label = 2;
5321
+ _b = this.options, minZoom = _b.minZoom, maxZoom = _b.maxZoom;
5322
+ zoom = webMap.getZoom();
5323
+ if (minZoom !== undefined && zoom < minZoom) {
5324
+ return [2 /*return*/];
5325
+ }
5326
+ if (maxZoom !== undefined && zoom > maxZoom) {
5327
+ return [2 /*return*/];
5328
+ }
5329
+ if (_fullDataLoad) {
5330
+ return [2 /*return*/];
5331
+ }
5332
+ _d.label = 2;
5310
5333
  case 2:
5311
5334
  if (removed) {
5312
5335
  return [2 /*return*/];
5313
5336
  }
5314
- _a.label = 3;
5337
+ _d.label = 3;
5315
5338
  case 3:
5316
- _a.trys.push([3, 7, , 8]);
5339
+ _d.trys.push([3, 10, , 11]);
5340
+ this.emitter.emit('preupdate', filterArgs);
5341
+ webMap._emitLayerEvent('layer:preupdate', options.id || '', filterArgs);
5317
5342
  return [4 /*yield*/, getData(filterArgs.filters, __assign(__assign({}, filterArgs.options), { srs: this.options.srs }))];
5318
5343
  case 4:
5319
- data = _a.sent();
5344
+ data = _d.sent();
5345
+ newData = data;
5320
5346
  return [4 /*yield*/, this.getCount()];
5321
5347
  case 5:
5322
- count = _a.sent();
5323
- _fullDataLoad = count === data.features.length;
5324
- return [4 /*yield*/, webMap.setLayerData(this, data)];
5348
+ count = _d.sent();
5349
+ if (!(this.options.strategy === 'BBOX+')) return [3 /*break*/, 7];
5350
+ newData = {
5351
+ type: 'FeatureCollection',
5352
+ features: [],
5353
+ };
5354
+ for (_i = 0, _c = data.features; _i < _c.length; _i++) {
5355
+ f = _c[_i];
5356
+ if (_loadedIds.indexOf(String(f.id)) === -1) {
5357
+ _loadedIds.push(String(f.id));
5358
+ newData.features.push(f);
5359
+ }
5360
+ }
5361
+ _fullDataLoad = count !== undefined && _loadedIds.length >= count;
5362
+ return [4 /*yield*/, webMap.addLayerData(this, newData)];
5325
5363
  case 6:
5326
- _a.sent();
5327
- this.emitter.emit('updated');
5328
- return [3 /*break*/, 8];
5364
+ _d.sent();
5365
+ return [3 /*break*/, 9];
5329
5366
  case 7:
5330
- er_1 = _a.sent();
5367
+ _fullDataLoad = count !== undefined && data.features.length >= count;
5368
+ return [4 /*yield*/, webMap.setLayerData(this, data)];
5369
+ case 8:
5370
+ _d.sent();
5371
+ _d.label = 9;
5372
+ case 9:
5373
+ this.emitter.emit('updated', data);
5374
+ webMap._emitLayerEvent('layer:updated', options.id || '', {
5375
+ data: data,
5376
+ newData: newData,
5377
+ isFull: _fullDataLoad,
5378
+ });
5379
+ return [3 /*break*/, 11];
5380
+ case 10:
5381
+ er_1 = _d.sent();
5331
5382
  if (er_1 instanceof Error && er_1.name !== 'CancelError') {
5332
5383
  throw er_1;
5333
5384
  }
5334
- return [3 /*break*/, 8];
5335
- case 8:
5385
+ return [3 /*break*/, 11];
5386
+ case 11:
5336
5387
  if (_super.prototype.updateLayer) {
5337
5388
  _super.prototype.updateLayer.call(this);
5338
5389
  }
@@ -6278,12 +6329,7 @@ var NgwMap = (function (exports) {
6278
6329
  options.order = Number((this.options.order | 0) + '.' + subLevel);
6279
6330
  }
6280
6331
  if (item.item_type === 'layer') {
6281
- var maxZoom = item.layer_max_scale_denom
6282
- ? this._mapScaleToZoomLevel(item.layer_max_scale_denom)
6283
- : this.webMap.options.maxZoom;
6284
- var minZoom = item.layer_min_scale_denom
6285
- ? this._mapScaleToZoomLevel(item.layer_min_scale_denom)
6286
- : this.webMap.options.minZoom;
6332
+ var _a = this._getZoomRange(item), maxZoom = _a.maxZoom, minZoom = _a.minZoom;
6287
6333
  objectAssign(options, {
6288
6334
  updateWmsParams: item.updateWmsParams,
6289
6335
  url: item.url,
@@ -6306,6 +6352,21 @@ var NgwMap = (function (exports) {
6306
6352
  NgwWebmapItem.prototype._mapScaleToZoomLevel = function (scale) {
6307
6353
  return setScaleRatio(scale);
6308
6354
  };
6355
+ NgwWebmapItem.prototype._getZoomRange = function (item) {
6356
+ var minZoomWebmap = this.options.minZoom;
6357
+ var maxZoomWebmap = this.options.maxZoom;
6358
+ var minZoomLayer = item.layer_min_scale_denom
6359
+ ? this._mapScaleToZoomLevel(item.layer_min_scale_denom)
6360
+ : undefined;
6361
+ var maxZoomLayer = item.layer_max_scale_denom
6362
+ ? this._mapScaleToZoomLevel(item.layer_max_scale_denom)
6363
+ : undefined;
6364
+ var minZooms = [minZoomWebmap, minZoomLayer].filter(Boolean);
6365
+ var maxZooms = [maxZoomWebmap, maxZoomLayer].filter(Boolean);
6366
+ var minZoom = Math.max.apply(Math, minZooms);
6367
+ var maxZoom = Math.min.apply(Math, maxZooms);
6368
+ return { minZoom: minZoom, maxZoom: maxZoom };
6369
+ };
6309
6370
  NgwWebmapItem.prototype._init = function (item) {
6310
6371
  var _this = this;
6311
6372
  this.initItem(item).then(function () {
@@ -6393,15 +6454,59 @@ var NgwMap = (function (exports) {
6393
6454
  return this._removed;
6394
6455
  };
6395
6456
  OnFirstShowAdapter.prototype.showLayer = function () {
6396
- this.options.visibility = true;
6397
- if (this.layer.length) {
6398
- this.layer.forEach(function (x) {
6399
- webMap.showLayer(x);
6457
+ return __awaiter(this, void 0, void 0, function () {
6458
+ var _i, _a, x;
6459
+ return __generator(this, function (_b) {
6460
+ switch (_b.label) {
6461
+ case 0:
6462
+ this.options.visibility = true;
6463
+ if (!this.layer.length) return [3 /*break*/, 5];
6464
+ _i = 0, _a = this.layer;
6465
+ _b.label = 1;
6466
+ case 1:
6467
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
6468
+ x = _a[_i];
6469
+ return [4 /*yield*/, webMap.showLayer(x)];
6470
+ case 2:
6471
+ _b.sent();
6472
+ _b.label = 3;
6473
+ case 3:
6474
+ _i++;
6475
+ return [3 /*break*/, 1];
6476
+ case 4: return [3 /*break*/, 7];
6477
+ case 5: return [4 /*yield*/, this.loadLayer()];
6478
+ case 6:
6479
+ _b.sent();
6480
+ _b.label = 7;
6481
+ case 7: return [2 /*return*/];
6482
+ }
6400
6483
  });
6401
- }
6402
- else {
6403
- this.loadLayer();
6404
- }
6484
+ });
6485
+ };
6486
+ OnFirstShowAdapter.prototype.hideLayer = function () {
6487
+ return __awaiter(this, void 0, void 0, function () {
6488
+ var _i, _a, x;
6489
+ return __generator(this, function (_b) {
6490
+ switch (_b.label) {
6491
+ case 0:
6492
+ this.options.visibility = false;
6493
+ if (!this.layer) return [3 /*break*/, 4];
6494
+ _i = 0, _a = this.layer;
6495
+ _b.label = 1;
6496
+ case 1:
6497
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
6498
+ x = _a[_i];
6499
+ return [4 /*yield*/, webMap.hideLayer(x)];
6500
+ case 2:
6501
+ _b.sent();
6502
+ _b.label = 3;
6503
+ case 3:
6504
+ _i++;
6505
+ return [3 /*break*/, 1];
6506
+ case 4: return [2 /*return*/];
6507
+ }
6508
+ });
6509
+ });
6405
6510
  };
6406
6511
  OnFirstShowAdapter.prototype.loadLayer = function () {
6407
6512
  return __awaiter(this, void 0, void 0, function () {
@@ -6431,13 +6536,13 @@ var NgwMap = (function (exports) {
6431
6536
  if (this._removed) {
6432
6537
  webMap.removeLayer(adapter);
6433
6538
  }
6539
+ this.layer.push(adapter);
6434
6540
  if (!this.options.visibility) return [3 /*break*/, 4];
6435
6541
  return [4 /*yield*/, webMap.showLayer(adapter)];
6436
6542
  case 3:
6437
6543
  _a.sent();
6438
6544
  _a.label = 4;
6439
6545
  case 4:
6440
- this.layer.push(adapter);
6441
6546
  this._creatingInProgress = false;
6442
6547
  _a.label = 5;
6443
6548
  case 5: return [2 /*return*/, this.layer];
@@ -6445,12 +6550,6 @@ var NgwMap = (function (exports) {
6445
6550
  });
6446
6551
  });
6447
6552
  };
6448
- OnFirstShowAdapter.prototype.hideLayer = function () {
6449
- this.options.visibility = false;
6450
- if (this.layer) {
6451
- this.layer.forEach(function (x) { return webMap.hideLayer(x); });
6452
- }
6453
- };
6454
6553
  return OnFirstShowAdapter;
6455
6554
  }());
6456
6555
  return [2 /*return*/, OnFirstShowAdapter];
@@ -6731,6 +6830,8 @@ var NgwMap = (function (exports) {
6731
6830
  options.order = _this.options.order;
6732
6831
  options.ratio = _this.options.ratio;
6733
6832
  options.crossOrigin = _this.options.crossOrigin;
6833
+ options.minZoom = _this.options.minZoom;
6834
+ options.maxZoom = _this.options.maxZoom;
6734
6835
  options.drawOrderEnabled = webmap_1.draw_order_enabled;
6735
6836
  var layer = new _this.NgwWebmapItem(_this.options.webMap, webmap_1.root_item, options, _this.options.connector);
6736
6837
  layer.emitter.on('init', function () { return resolve(layer); });
@@ -8480,5 +8581,5 @@ var NgwMap = (function (exports) {
8480
8581
 
8481
8582
  return exports;
8482
8583
 
8483
- }({}));
8584
+ })({});
8484
8585
  //# sourceMappingURL=ngw-map.global.js.map