@syncfusion/ej2-maps 31.2.2 → 32.1.19

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