@syncfusion/ej2-maps 31.1.17 → 31.2.12

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.
Files changed (67) hide show
  1. package/README.md +11 -2
  2. package/dist/ej2-maps.min.js +3 -3
  3. package/dist/ej2-maps.umd.min.js +3 -3
  4. package/dist/ej2-maps.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-maps.es2015.js +84 -53
  6. package/dist/es6/ej2-maps.es2015.js.map +1 -1
  7. package/dist/es6/ej2-maps.es5.js +87 -56
  8. package/dist/es6/ej2-maps.es5.js.map +1 -1
  9. package/dist/global/ej2-maps.min.js +3 -3
  10. package/dist/global/ej2-maps.min.js.map +1 -1
  11. package/dist/global/index.d.ts +2 -2
  12. package/package.json +18 -53
  13. package/src/maps/layers/layer-panel.js +86 -55
  14. package/dist/ts/index.d.ts +0 -4
  15. package/dist/ts/index.ts +0 -4
  16. package/dist/ts/maps/index.d.ts +0 -28
  17. package/dist/ts/maps/index.ts +0 -28
  18. package/dist/ts/maps/layers/bing-map.d.ts +0 -21
  19. package/dist/ts/maps/layers/bing-map.ts +0 -51
  20. package/dist/ts/maps/layers/bubble.d.ts +0 -77
  21. package/dist/ts/maps/layers/bubble.ts +0 -304
  22. package/dist/ts/maps/layers/color-mapping.d.ts +0 -36
  23. package/dist/ts/maps/layers/color-mapping.ts +0 -230
  24. package/dist/ts/maps/layers/data-label.d.ts +0 -45
  25. package/dist/ts/maps/layers/data-label.ts +0 -457
  26. package/dist/ts/maps/layers/layer-panel.d.ts +0 -144
  27. package/dist/ts/maps/layers/layer-panel.ts +0 -1455
  28. package/dist/ts/maps/layers/legend.d.ts +0 -173
  29. package/dist/ts/maps/layers/legend.ts +0 -2465
  30. package/dist/ts/maps/layers/marker.d.ts +0 -105
  31. package/dist/ts/maps/layers/marker.ts +0 -632
  32. package/dist/ts/maps/layers/navigation-selected-line.d.ts +0 -33
  33. package/dist/ts/maps/layers/navigation-selected-line.ts +0 -171
  34. package/dist/ts/maps/layers/polygon.d.ts +0 -30
  35. package/dist/ts/maps/layers/polygon.ts +0 -68
  36. package/dist/ts/maps/maps-model.d.ts +0 -409
  37. package/dist/ts/maps/maps.d.ts +0 -1247
  38. package/dist/ts/maps/maps.ts +0 -3416
  39. package/dist/ts/maps/model/base-model.d.ts +0 -2107
  40. package/dist/ts/maps/model/base.d.ts +0 -1840
  41. package/dist/ts/maps/model/base.ts +0 -2257
  42. package/dist/ts/maps/model/constants.d.ts +0 -225
  43. package/dist/ts/maps/model/constants.ts +0 -226
  44. package/dist/ts/maps/model/export-image.d.ts +0 -39
  45. package/dist/ts/maps/model/export-image.ts +0 -194
  46. package/dist/ts/maps/model/export-pdf.d.ts +0 -40
  47. package/dist/ts/maps/model/export-pdf.ts +0 -183
  48. package/dist/ts/maps/model/interface.d.ts +0 -892
  49. package/dist/ts/maps/model/interface.ts +0 -929
  50. package/dist/ts/maps/model/print.d.ts +0 -45
  51. package/dist/ts/maps/model/print.ts +0 -125
  52. package/dist/ts/maps/model/theme.d.ts +0 -98
  53. package/dist/ts/maps/model/theme.ts +0 -919
  54. package/dist/ts/maps/user-interaction/annotation.d.ts +0 -27
  55. package/dist/ts/maps/user-interaction/annotation.ts +0 -133
  56. package/dist/ts/maps/user-interaction/highlight.d.ts +0 -63
  57. package/dist/ts/maps/user-interaction/highlight.ts +0 -272
  58. package/dist/ts/maps/user-interaction/selection.d.ts +0 -85
  59. package/dist/ts/maps/user-interaction/selection.ts +0 -342
  60. package/dist/ts/maps/user-interaction/tooltip.d.ts +0 -78
  61. package/dist/ts/maps/user-interaction/tooltip.ts +0 -500
  62. package/dist/ts/maps/user-interaction/zoom.d.ts +0 -334
  63. package/dist/ts/maps/user-interaction/zoom.ts +0 -2523
  64. package/dist/ts/maps/utils/enum.d.ts +0 -328
  65. package/dist/ts/maps/utils/enum.ts +0 -343
  66. package/dist/ts/maps/utils/helper.d.ts +0 -1318
  67. package/dist/ts/maps/utils/helper.ts +0 -3811
@@ -6618,35 +6618,35 @@ var LayerPanel = /** @__PURE__ @class */ (function () {
6618
6618
  }
6619
6619
  this.rectBounds = null;
6620
6620
  var shapeSettings = this.currentLayer.shapeSettings;
6621
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6622
- Array.prototype.forEach.call(renderData, function (geometryData) {
6623
- if (!isNullOrUndefined(geometryData['geometry']) || !isNullOrUndefined(geometryData['coordinates'])) {
6624
- var type = !isNullOrUndefined(geometryData['geometry']) ? geometryData['geometry']['type'] : geometryData['type'];
6625
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6626
- var coords = !isNullOrUndefined(geometryData['geometry']) ? geometryData['geometry']['coordinates'] :
6627
- geometryData['coordinates'];
6628
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6629
- var data = geometryData['geometry'];
6630
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6621
+ for (var r = 0; r < renderData.length; r++) {
6622
+ var geometryData = renderData[r];
6623
+ var geom = geometryData['geometry'];
6624
+ var hasGeom = !isNullOrUndefined(geom);
6625
+ var hasCoords = !isNullOrUndefined(geometryData['coordinates']);
6626
+ if (hasGeom || hasCoords) {
6627
+ var type = hasGeom ? geom['type'] : geometryData['type'];
6628
+ var coords = hasGeom ? geom['coordinates'] : geometryData['coordinates'];
6629
+ var data = geom;
6631
6630
  var properties = geometryData['properties'];
6632
- _this.generatePoints(type, coords, data, properties);
6631
+ this.generatePoints(type, coords, data, properties);
6633
6632
  }
6634
- });
6633
+ }
6635
6634
  this.currentLayer.rectBounds = this.rectBounds;
6636
6635
  if (isNullOrUndefined(this.mapObject.baseMapRectBounds) && this.currentLayer.isBaseLayer) {
6637
6636
  this.mapObject.baseMapRectBounds = this.rectBounds;
6638
6637
  }
6639
6638
  var colors = (!isNullOrUndefined(shapeSettings.palette) && shapeSettings.palette.length > 1) ?
6640
6639
  shapeSettings.palette : getShapeColor(this.mapObject.theme);
6640
+ var areaRect = this.mapObject.mapAreaRect;
6641
6641
  var labelTemplateEle = createElement('div', {
6642
6642
  id: this.mapObject.element.id + '_LayerIndex_' + layerIndex + '_Label_Template_Group',
6643
6643
  className: this.mapObject.element.id + '_template'
6644
6644
  });
6645
6645
  labelTemplateEle.style.cssText = 'pointer-events: none; overflow: hidden; position: absolute;' +
6646
- 'top:' + this.mapObject.mapAreaRect.y + 'px;' +
6647
- 'left:' + this.mapObject.mapAreaRect.x + 'px;' +
6648
- 'height:' + this.mapObject.mapAreaRect.height + 'px;' +
6649
- 'width:' + this.mapObject.mapAreaRect.width + 'px;';
6646
+ 'top:' + areaRect.y + 'px;' +
6647
+ 'left:' + areaRect.x + 'px;' +
6648
+ 'height:' + areaRect.height + 'px;' +
6649
+ 'width:' + areaRect.width + 'px;';
6650
6650
  if (this.currentLayer.layerData.length !== 0) {
6651
6651
  var _loop_1 = function (i) {
6652
6652
  var k = void 0;
@@ -6691,11 +6691,12 @@ var LayerPanel = /** @__PURE__ @class */ (function () {
6691
6691
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6692
6692
  this_1.currentLayer.dataSource, currentShapeData['property'], this_1.currentLayer.shapeDataPath, this_1.currentLayer.shapePropertyPath, this_1.currentLayer);
6693
6693
  if (k !== null) {
6694
- if (this_1.currentLayer.dataSource[k][shapeSettings.borderColorValuePath]) {
6695
- borderValue.color = this_1.currentLayer.dataSource[k][shapeSettings.borderColorValuePath];
6694
+ var currentDataSource = this_1.currentLayer.dataSource[k];
6695
+ if (currentDataSource[shapeSettings.borderColorValuePath]) {
6696
+ borderValue.color = currentDataSource[shapeSettings.borderColorValuePath];
6696
6697
  }
6697
- if (this_1.currentLayer.dataSource[k][shapeSettings.borderWidthValuePath]) {
6698
- borderValue.width = this_1.currentLayer.dataSource[k][shapeSettings.borderWidthValuePath];
6698
+ if (currentDataSource[shapeSettings.borderWidthValuePath]) {
6699
+ borderValue.width = currentDataSource[shapeSettings.borderWidthValuePath];
6699
6700
  }
6700
6701
  }
6701
6702
  }
@@ -6758,17 +6759,26 @@ var LayerPanel = /** @__PURE__ @class */ (function () {
6758
6759
  switch (drawingType) {
6759
6760
  case 'Polygon':
6760
6761
  if (!currentShapeData['_isMultiPolygon']) {
6761
- path += 'M' + (currentShapeData[0]['point']['x']) + ' ' + (currentShapeData[0]['point']['y']);
6762
6762
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6763
- currentShapeData.map(function (shapeData) {
6764
- path += ' L ' + (shapeData['point']['x']) + ' ' + (shapeData['point']['y']);
6765
- });
6763
+ var shapeData = currentShapeData;
6764
+ if (shapeData.length > 0) {
6765
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6766
+ var firstPoint = shapeData[0]['point'];
6767
+ var pathSegments = ['M', String(firstPoint['x']), String(firstPoint['y'])];
6768
+ for (var index = 0; index < shapeData.length; index++) {
6769
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6770
+ var point = shapeData[index]['point'];
6771
+ pathSegments.push('L', String(point['x']), String(point['y']));
6772
+ }
6773
+ pathSegments.push('z');
6774
+ path = pathSegments.join(' ');
6775
+ }
6766
6776
  }
6767
6777
  else {
6768
6778
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6769
6779
  path = _this.generateMultiPolygonPath(currentShapeData);
6780
+ path += ' z ';
6770
6781
  }
6771
- path += ' z ';
6772
6782
  if (path.length > 3) {
6773
6783
  pathOptions = new PathOption(shapeID, eventArgs.fill, eventArgs.border.width, eventArgs.border.color, opacity, eventArgs.border.opacity, shapeSettings.dashArray, path);
6774
6784
  pathEle = _this.mapObject.renderer.drawPath(pathOptions);
@@ -6996,19 +7006,22 @@ var LayerPanel = /** @__PURE__ @class */ (function () {
6996
7006
  */
6997
7007
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6998
7008
  LayerPanel.prototype.generateMultiPolygonPath = function (currentShapeData) {
6999
- var path = '';
7000
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7001
- var shape;
7002
- for (var j = 0; j < currentShapeData.length; j++) {
7003
- path += 'M' + (currentShapeData[j][0]['point']['x']) + ' ' + (currentShapeData[j][0]['point']['y']);
7004
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7005
- shape = currentShapeData[j];
7006
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7007
- shape.map(function (shapeData) {
7008
- path += ' L ' + (shapeData['point']['x']) + ' ' + (shapeData['point']['y']);
7009
- });
7009
+ var parts = [];
7010
+ for (var _i = 0, currentShapeData_1 = currentShapeData; _i < currentShapeData_1.length; _i++) {
7011
+ var shape = currentShapeData_1[_i];
7012
+ if (!shape || shape.length === 0) {
7013
+ continue;
7014
+ }
7015
+ var startX = shape[0].point.x;
7016
+ var startY = shape[0].point.y;
7017
+ parts.push("M" + startX + " " + startY);
7018
+ for (var i = 1; i < shape.length; i++) {
7019
+ var x = shape[i].point.x;
7020
+ var y = shape[i].point.y;
7021
+ parts.push(" L " + x + " " + y);
7022
+ }
7010
7023
  }
7011
- return path;
7024
+ return parts.join(' ');
7012
7025
  };
7013
7026
  /**
7014
7027
  * To render bubble.
@@ -7334,33 +7347,51 @@ var LayerPanel = /** @__PURE__ @class */ (function () {
7334
7347
  };
7335
7348
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7336
7349
  LayerPanel.prototype.calculatePolygonBox = function (coordinates) {
7337
- var _this = this;
7350
+ // Use a simple for-loop, cache frequent lookups, and update rectBounds once
7338
7351
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7339
7352
  var newData = [];
7340
7353
  var bounds = this.mapObject.baseMapBounds;
7341
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7342
- coordinates.map(function (currentPoint) {
7354
+ var lonMin = bounds.longitude.min;
7355
+ var lonMax = bounds.longitude.max;
7356
+ var latMin = bounds.latitude.min;
7357
+ var latMax = bounds.latitude.max;
7358
+ var minX;
7359
+ var minY;
7360
+ var maxX;
7361
+ var maxY;
7362
+ for (var i = 0; i < coordinates.length; i++) {
7363
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7364
+ var currentPoint = coordinates[i];
7343
7365
  var latitude = currentPoint[1];
7344
7366
  var longitude = currentPoint[0];
7345
- if ((longitude >= bounds.longitude.min && longitude <= bounds.longitude.max)
7346
- && (latitude >= bounds.latitude.min && latitude <= bounds.latitude.max)) {
7347
- var point = convertGeoToPoint(latitude, longitude, _this.currentFactor, _this.currentLayer, _this.mapObject);
7348
- if (isNullOrUndefined(_this.rectBounds)) {
7349
- _this.rectBounds = { min: { x: point.x, y: point.y }, max: { x: point.x, y: point.y } };
7367
+ if (longitude >= lonMin && longitude <= lonMax && latitude >= latMin && latitude <= latMax) {
7368
+ var point = convertGeoToPoint(latitude, longitude, this.currentFactor, this.currentLayer, this.mapObject);
7369
+ if (minX === undefined) {
7370
+ minX = maxX = point.x;
7371
+ minY = maxY = point.y;
7350
7372
  }
7351
7373
  else {
7352
- _this.rectBounds['min']['x'] = Math.min(_this.rectBounds['min']['x'], point.x);
7353
- _this.rectBounds['min']['y'] = Math.min(_this.rectBounds['min']['y'], point.y);
7354
- _this.rectBounds['max']['x'] = Math.max(_this.rectBounds['max']['x'], point.x);
7355
- _this.rectBounds['max']['y'] = Math.max(_this.rectBounds['max']['y'], point.y);
7356
- }
7357
- newData.push({
7358
- point: point,
7359
- lat: latitude,
7360
- lng: longitude
7361
- });
7374
+ // Update local bounds only
7375
+ minX = Math.min(minX, point.x);
7376
+ minY = Math.min(minY, point.y);
7377
+ maxX = Math.max(maxX, point.x);
7378
+ maxY = Math.max(maxY, point.y);
7379
+ }
7380
+ newData.push({ point: point, lat: latitude, lng: longitude });
7362
7381
  }
7363
- });
7382
+ }
7383
+ // Apply the accumulated bounds once to reduce repeated property access
7384
+ if (newData.length) {
7385
+ if (isNullOrUndefined(this.rectBounds)) {
7386
+ this.rectBounds = { min: { x: minX, y: minY }, max: { x: maxX, y: maxY } };
7387
+ }
7388
+ else {
7389
+ this.rectBounds.min.x = Math.min(this.rectBounds.min.x, minX);
7390
+ this.rectBounds.min.y = Math.min(this.rectBounds.min.y, minY);
7391
+ this.rectBounds.max.x = Math.max(this.rectBounds.max.x, maxX);
7392
+ this.rectBounds.max.y = Math.max(this.rectBounds.max.y, maxY);
7393
+ }
7394
+ }
7364
7395
  return newData;
7365
7396
  };
7366
7397
  // eslint-disable-next-line @typescript-eslint/no-explicit-any