@nextgis/ngw-leaflet 1.7.0 → 1.8.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.
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/ngw-leaflet; version: 1.7.0; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-leaflet; version: 1.8.0; author: NextGIS */
2
2
  import 'leaflet/dist/leaflet.css';
3
3
  import { Icon } from 'leaflet';
4
4
  import { NgwMap } from '@nextgis/ngw-map';
@@ -1,4 +1,4 @@
1
- /** Bundle of @nextgis/ngw-leaflet; version: 1.7.0; author: NextGIS */
1
+ /** Bundle of @nextgis/ngw-leaflet; version: 1.8.0; author: NextGIS */
2
2
  var NgwLeaflet = (function () {
3
3
  'use strict';
4
4
 
@@ -16931,7 +16931,7 @@ var NgwLeaflet = (function () {
16931
16931
  var toStatus = status !== undefined ? status : !onMap;
16932
16932
  var silent = options.silent !== undefined ? options.silent : false;
16933
16933
  var action = function (l) { return __awaiter(_this, void 0, void 0, function () {
16934
- var id, preEventName, eventName, order, anotherVisibleLayerBaseLayer;
16934
+ var id, preEventName, eventName, order, anotherVisibleBaselayers, _i, anotherVisibleBaselayers_1, bl;
16935
16935
  var _this = this;
16936
16936
  return __generator(this, function (_a) {
16937
16937
  switch (_a.label) {
@@ -16943,18 +16943,25 @@ var NgwLeaflet = (function () {
16943
16943
  this._emitLayerEvent(preEventName, id, l);
16944
16944
  this._emitLayerEvent('layer:pretoggle', id, l);
16945
16945
  }
16946
- if (!(toStatus && this.mapAdapter)) return [3 /*break*/, 3];
16946
+ if (!(toStatus && this.mapAdapter)) return [3 /*break*/, 5];
16947
16947
  order = l.options.baselayer ? 0 : l.options.order;
16948
- if (!(l.options.baselayer && this._baselayers.length)) return [3 /*break*/, 2];
16949
- anotherVisibleLayerBaseLayer = this._baselayers.find(function (x) {
16948
+ if (!(l.options.baselayer && this._baselayers.length)) return [3 /*break*/, 4];
16949
+ anotherVisibleBaselayers = this._baselayers.filter(function (x) {
16950
16950
  return x !== l.id && _this.isLayerVisible(x);
16951
16951
  });
16952
- if (!anotherVisibleLayerBaseLayer) return [3 /*break*/, 2];
16953
- return [4 /*yield*/, this.hideLayer(anotherVisibleLayerBaseLayer)];
16952
+ _i = 0, anotherVisibleBaselayers_1 = anotherVisibleBaselayers;
16953
+ _a.label = 1;
16954
16954
  case 1:
16955
- _a.sent();
16956
- _a.label = 2;
16955
+ if (!(_i < anotherVisibleBaselayers_1.length)) return [3 /*break*/, 4];
16956
+ bl = anotherVisibleBaselayers_1[_i];
16957
+ return [4 /*yield*/, this.hideLayer(bl)];
16957
16958
  case 2:
16959
+ _a.sent();
16960
+ _a.label = 3;
16961
+ case 3:
16962
+ _i++;
16963
+ return [3 /*break*/, 1];
16964
+ case 4:
16958
16965
  if (l.showLayer) {
16959
16966
  l.showLayer.call(l, l.layer);
16960
16967
  }
@@ -16964,16 +16971,16 @@ var NgwLeaflet = (function () {
16964
16971
  if (order !== undefined) {
16965
16972
  this.mapAdapter.setLayerOrder(l.layer, order, this._layers);
16966
16973
  }
16967
- return [3 /*break*/, 4];
16968
- case 3:
16974
+ return [3 /*break*/, 6];
16975
+ case 5:
16969
16976
  if (l.hideLayer) {
16970
16977
  l.hideLayer.call(l, l.layer);
16971
16978
  }
16972
16979
  else if (l.layer !== undefined) {
16973
16980
  this.mapAdapter.hideLayer(l.layer);
16974
16981
  }
16975
- _a.label = 4;
16976
- case 4:
16982
+ _a.label = 6;
16983
+ case 6:
16977
16984
  if (!silent) {
16978
16985
  this._emitLayerEvent(eventName, id, l);
16979
16986
  this._emitLayerEvent('layer:toggle', id, l);
@@ -22642,7 +22649,8 @@ var NgwLeaflet = (function () {
22642
22649
  this.pane = pane;
22643
22650
  }
22644
22651
  }
22645
- BaseAdapter.prototype.addLayer = function (_options) {
22652
+ BaseAdapter.prototype.addLayer = function (options) {
22653
+ Object.assign(this.options, options);
22646
22654
  return undefined;
22647
22655
  };
22648
22656
  return BaseAdapter;
@@ -22663,12 +22671,12 @@ var NgwLeaflet = (function () {
22663
22671
  _this.$unselect = function () {
22664
22672
  _this.unselect();
22665
22673
  };
22666
- _this.layer = new leafletSrc.exports.FeatureGroup([], { pane: _this.pane });
22667
22674
  return _this;
22668
22675
  }
22669
22676
  GeoJsonAdapter.prototype.addLayer = function (options) {
22670
- this.options = options;
22677
+ Object.assign(this.options, options);
22671
22678
  this.paint = options.paint;
22679
+ this.layer = new leafletSrc.exports.FeatureGroup([], __assign(__assign({}, options.nativeOptions), { pane: this.pane }));
22672
22680
  this.selectedPaint = options.selectedPaint;
22673
22681
  options.paint = this.paint;
22674
22682
  if (options.data) {
@@ -22728,30 +22736,28 @@ var NgwLeaflet = (function () {
22728
22736
  var _this = this;
22729
22737
  // Some optimization
22730
22738
  this._filterFun = fun;
22731
- // @ts-ignore
22732
- var _map = this.layer._map;
22733
- if (_map) {
22734
- this.layer.remove();
22735
- }
22736
- var filteredLayers = [];
22737
- this._layers.forEach(function (_a) {
22738
- var feature = _a.feature, layer = _a.layer;
22739
- if (layer) {
22740
- var ok = fun
22741
- ? fun(__assign({ target: _this, feature: feature, layer: layer }, createFeaturePositionOptions(feature)))
22742
- : true;
22743
- if (ok) {
22744
- _this.layer.addLayer(layer);
22745
- filteredLayers.push(__assign({ target: _this, feature: feature, layer: layer }, createFeaturePositionOptions(feature)));
22746
- }
22747
- else {
22748
- _this.layer.removeLayer(layer);
22739
+ var layer_ = this.layer;
22740
+ var map = layer_ && layer_._map;
22741
+ if (layer_ && map) {
22742
+ layer_.remove();
22743
+ var filteredLayers_1 = [];
22744
+ this._layers.forEach(function (_a) {
22745
+ var feature = _a.feature, layer = _a.layer;
22746
+ if (layer) {
22747
+ var ok = fun
22748
+ ? fun(__assign({ target: _this, feature: feature, layer: layer }, createFeaturePositionOptions(feature)))
22749
+ : true;
22750
+ if (ok) {
22751
+ layer_.addLayer(layer);
22752
+ filteredLayers_1.push(__assign({ target: _this, feature: feature, layer: layer }, createFeaturePositionOptions(feature)));
22753
+ }
22754
+ else {
22755
+ layer_.removeLayer(layer);
22756
+ }
22749
22757
  }
22750
- }
22751
- });
22752
- this._filteredLayers = filteredLayers;
22753
- if (_map) {
22754
- this.layer.addTo(_map);
22758
+ });
22759
+ this._filteredLayers = filteredLayers_1;
22760
+ layer_.addTo(map);
22755
22761
  }
22756
22762
  return this._filteredLayers;
22757
22763
  };
@@ -22768,24 +22774,27 @@ var NgwLeaflet = (function () {
22768
22774
  };
22769
22775
  GeoJsonAdapter.prototype.clearLayer = function (cb) {
22770
22776
  this.unselect();
22771
- if (cb) {
22772
- for (var fry = this._layers.length; fry--;) {
22773
- var def = this._layers[fry];
22774
- if (def) {
22775
- var feature = def.feature, layer = def.layer;
22776
- if (feature && layer) {
22777
- var exist = cb(feature);
22778
- if (exist) {
22779
- this.layer.removeLayer(layer);
22780
- this._layers.splice(fry, 1);
22777
+ var layer_ = this.layer;
22778
+ if (layer_) {
22779
+ if (cb) {
22780
+ for (var fry = this._layers.length; fry--;) {
22781
+ var def = this._layers[fry];
22782
+ if (def) {
22783
+ var feature = def.feature, layer = def.layer;
22784
+ if (feature && layer) {
22785
+ var exist = cb(feature);
22786
+ if (exist) {
22787
+ layer_.removeLayer(layer);
22788
+ this._layers.splice(fry, 1);
22789
+ }
22781
22790
  }
22782
22791
  }
22783
22792
  }
22784
22793
  }
22785
- }
22786
- else {
22787
- this.layer.clearLayers();
22788
- this._layers = [];
22794
+ else {
22795
+ layer_.clearLayers();
22796
+ this._layers = [];
22797
+ }
22789
22798
  }
22790
22799
  };
22791
22800
  GeoJsonAdapter.prototype.setData = function (data) {
@@ -22852,8 +22861,10 @@ var NgwLeaflet = (function () {
22852
22861
  return this.getBounds();
22853
22862
  };
22854
22863
  GeoJsonAdapter.prototype.getBounds = function () {
22855
- var bounds = this.layer.getBounds();
22856
- return boundsToArray(bounds);
22864
+ if (this.layer) {
22865
+ var bounds = this.layer.getBounds();
22866
+ return boundsToArray(bounds);
22867
+ }
22857
22868
  };
22858
22869
  GeoJsonAdapter.prototype.setOpacity = function (value) {
22859
22870
  this.options.opacity = value;
@@ -23085,40 +23096,47 @@ var NgwLeaflet = (function () {
23085
23096
  lopt = this._createPaintOptions(paint, type);
23086
23097
  }
23087
23098
  lopt.onEachFeature = function (feature, layer) {
23088
- var def = __assign({ target: _this, feature: feature, layer: layer }, createFeaturePositionOptions(feature));
23099
+ _this._onEachFeature(feature, layer);
23100
+ };
23101
+ return lopt;
23102
+ };
23103
+ GeoJsonAdapter.prototype._onEachFeature = function (feature, layer) {
23104
+ var _this = this;
23105
+ var layer_ = this.layer;
23106
+ if (layer_) {
23107
+ var def_1 = __assign({ target: this, feature: feature, layer: layer }, createFeaturePositionOptions(feature));
23089
23108
  // @ts-ignore
23090
- layer.options.pane = _this.pane;
23091
- _this._layers.push(def);
23109
+ layer.options.pane = this.pane;
23110
+ this._layers.push(def_1);
23092
23111
  var ok = true;
23093
- if (_this._filterFun) {
23094
- ok = _this._filterFun(def);
23112
+ if (this._filterFun) {
23113
+ ok = this._filterFun(def_1);
23095
23114
  }
23096
23115
  if (ok) {
23097
- var _a = _this.options, popup = _a.popup, popupOptions = _a.popupOptions, selectable = _a.selectable, interactive = _a.interactive, selectOnHover = _a.selectOnHover;
23116
+ var _a = this.options, popup = _a.popup, popupOptions = _a.popupOptions, selectable = _a.selectable, interactive = _a.interactive, selectOnHover = _a.selectOnHover;
23098
23117
  // @ts-ignore
23099
23118
  layer.options.interactive = defined(interactive) ? interactive : true;
23100
- _this.layer.addLayer(layer);
23119
+ layer_.addLayer(layer);
23101
23120
  if (selectable) {
23102
23121
  if (selectOnHover) {
23103
23122
  layer.on('mouseover', function () {
23104
- _this._selectLayer(def, 'hover');
23123
+ _this._selectLayer(def_1, 'hover');
23105
23124
  });
23106
23125
  layer.on('mouseout', function () {
23107
- _this._unSelectLayer(def);
23126
+ _this._unSelectLayer(def_1);
23108
23127
  });
23109
23128
  }
23110
23129
  else {
23111
- layer.on('click', function (e) { return _this._selectOnLayerClick(e); }, _this);
23130
+ layer.on('click', function (e) { return _this._selectOnLayerClick(e); }, this);
23112
23131
  }
23113
23132
  }
23114
- _this._handleMouseEvents(layer);
23133
+ this._handleMouseEvents(layer);
23115
23134
  if (popup) {
23116
- _this._openPopup(__assign({ target: _this, layer: layer, feature: feature }, createFeaturePositionOptions(feature)), popupOptions, 'api');
23135
+ this._openPopup(__assign({ target: this, layer: layer, feature: feature }, createFeaturePositionOptions(feature)), popupOptions, 'api');
23117
23136
  }
23118
- _this._updateTooltip({ layer: layer, feature: feature });
23137
+ this._updateTooltip({ layer: layer, feature: feature });
23119
23138
  }
23120
- };
23121
- return lopt;
23139
+ }
23122
23140
  };
23123
23141
  GeoJsonAdapter.prototype._handleMouseEvents = function (layer) {
23124
23142
  var _this = this;
@@ -23530,7 +23548,7 @@ var NgwLeaflet = (function () {
23530
23548
  if (url) {
23531
23549
  options = __assign({ transparent: true }, options);
23532
23550
  var updateWmsParamsFromOpt_1 = options.updateWmsParams;
23533
- this.layer = new ImageLayer(url, __assign(__assign({ pane: this.pane, headers: options.headers, setViewDelay: options.setViewDelay }, options), options.params));
23551
+ this.layer = new ImageLayer(url, __assign(__assign(__assign({ pane: this.pane, headers: options.headers, setViewDelay: options.setViewDelay }, options), options.params), options.nativeOptions));
23534
23552
  if (updateWmsParamsFromOpt_1) {
23535
23553
  var updateWmsParams_1 = this.layer.updateWmsParams;
23536
23554
  this.layer.updateWmsParams = function (map) {
@@ -23665,26 +23683,18 @@ var NgwLeaflet = (function () {
23665
23683
  return _super !== null && _super.apply(this, arguments) || this;
23666
23684
  }
23667
23685
  WmsAdapter.prototype.addLayer = function (options) {
23668
- if (options) {
23669
- var url = options.url, opt = __rest(options, ["url"]);
23670
- if (url) {
23671
- var layerOptions = {
23672
- pane: this.pane,
23673
- attribution: opt.attribution,
23674
- minZoom: opt.minZoom,
23675
- maxZoom: opt.maxZoom,
23676
- layers: options.layers,
23677
- format: options.format,
23678
- };
23679
- var layer = void 0;
23680
- if (opt.headers) {
23681
- layer = new WmsLayer(url, __assign(__assign({}, layerOptions), { headers: opt.headers }));
23682
- }
23683
- else {
23684
- layer = new leafletSrc.exports.TileLayer.WMS(url, layerOptions);
23685
- }
23686
- return layer;
23686
+ Object.assign(this.options, options);
23687
+ var url = options.url, opt = __rest(options, ["url"]);
23688
+ if (url) {
23689
+ var layerOptions = __assign({ pane: this.pane, attribution: opt.attribution, minZoom: opt.minZoom, maxZoom: opt.maxZoom, layers: options.layers, format: options.format }, options.nativeOptions);
23690
+ var layer = void 0;
23691
+ if (opt.headers) {
23692
+ layer = new WmsLayer(url, __assign(__assign({}, layerOptions), { headers: opt.headers }));
23693
+ }
23694
+ else {
23695
+ layer = new leafletSrc.exports.TileLayer.WMS(url, layerOptions);
23687
23696
  }
23697
+ return layer;
23688
23698
  }
23689
23699
  };
23690
23700
  return WmsAdapter;
@@ -23696,7 +23706,7 @@ var NgwLeaflet = (function () {
23696
23706
  return _super !== null && _super.apply(this, arguments) || this;
23697
23707
  }
23698
23708
  OsmAdapter.prototype.addLayer = function (options) {
23699
- var url = options.url || 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
23709
+ var url = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
23700
23710
  return _super.prototype.addLayer.call(this, __assign(__assign({ name: 'OpenStreetMap', attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' }, options), { url: url }));
23701
23711
  };
23702
23712
  return OsmAdapter;