@syncfusion/ej2-maps 20.3.56 → 20.4.40

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 (48) hide show
  1. package/.eslintrc.json +16 -1
  2. package/CHANGELOG.md +11 -1
  3. package/README.md +65 -51
  4. package/dist/ej2-maps.min.js +2 -2
  5. package/dist/ej2-maps.umd.min.js +2 -2
  6. package/dist/ej2-maps.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-maps.es2015.js +961 -730
  8. package/dist/es6/ej2-maps.es2015.js.map +1 -1
  9. package/dist/es6/ej2-maps.es5.js +947 -720
  10. package/dist/es6/ej2-maps.es5.js.map +1 -1
  11. package/dist/global/ej2-maps.min.js +2 -2
  12. package/dist/global/ej2-maps.min.js.map +1 -1
  13. package/dist/global/index.d.ts +1 -1
  14. package/package.json +34 -21
  15. package/src/maps/layers/bing-map.d.ts +1 -0
  16. package/src/maps/layers/bing-map.js +1 -0
  17. package/src/maps/layers/bubble.d.ts +4 -0
  18. package/src/maps/layers/bubble.js +7 -3
  19. package/src/maps/layers/color-mapping.d.ts +5 -0
  20. package/src/maps/layers/color-mapping.js +5 -3
  21. package/src/maps/layers/data-label.d.ts +0 -1
  22. package/src/maps/layers/data-label.js +5 -12
  23. package/src/maps/layers/layer-panel.d.ts +7 -7
  24. package/src/maps/layers/layer-panel.js +98 -53
  25. package/src/maps/layers/legend.js +63 -26
  26. package/src/maps/layers/marker.d.ts +13 -0
  27. package/src/maps/layers/marker.js +124 -107
  28. package/src/maps/layers/navigation-selected-line.d.ts +5 -0
  29. package/src/maps/layers/navigation-selected-line.js +111 -104
  30. package/src/maps/maps-model.d.ts +1 -1
  31. package/src/maps/maps.d.ts +17 -0
  32. package/src/maps/maps.js +448 -364
  33. package/src/maps/model/base.js +1 -1
  34. package/src/maps/model/export-image.d.ts +4 -3
  35. package/src/maps/model/export-image.js +7 -6
  36. package/src/maps/model/export-pdf.d.ts +6 -6
  37. package/src/maps/model/export-pdf.js +8 -7
  38. package/src/maps/model/interface.d.ts +2 -2
  39. package/src/maps/model/print.d.ts +4 -2
  40. package/src/maps/model/print.js +6 -3
  41. package/src/maps/user-interaction/annotation.js +0 -2
  42. package/src/maps/user-interaction/highlight.js +4 -3
  43. package/src/maps/user-interaction/selection.js +4 -2
  44. package/src/maps/user-interaction/tooltip.js +5 -5
  45. package/src/maps/user-interaction/zoom.d.ts +5 -0
  46. package/src/maps/user-interaction/zoom.js +9 -8
  47. package/src/maps/utils/helper.d.ts +2 -0
  48. package/src/maps/utils/helper.js +37 -30
@@ -3,8 +3,6 @@ import { SvgRenderer, Tooltip } from '@syncfusion/ej2-svg-base';
3
3
  import { DataManager, Query } from '@syncfusion/ej2-data';
4
4
  import { PdfBitmap, PdfDocument, PdfPageOrientation } from '@syncfusion/ej2-pdf-export';
5
5
 
6
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
7
- /* eslint-disable @typescript-eslint/no-unused-vars */
8
6
  /* eslint-disable max-len */
9
7
  /**
10
8
  * Helper functions for maps control
@@ -624,13 +622,14 @@ function convertElement(element, markerId, data, index, mapObj) {
624
622
  }
625
623
  let templateHtml = childElement.innerHTML;
626
624
  const properties = Object.keys(data);
625
+ const regExp = RegExp;
627
626
  for (let i = 0; i < properties.length; i++) {
628
627
  if (typeof data[properties[i]] === 'object') {
629
628
  templateHtml = convertStringToValue(templateHtml, '', data, mapObj);
630
629
  // eslint-disable-next-line @typescript-eslint/ban-types
631
630
  }
632
631
  else if (properties[i].toLowerCase() !== 'latitude' && properties[i].toLowerCase() !== 'longitude') {
633
- templateHtml = templateHtml.replace(new RegExp('{{:' + properties[i] + '}}', 'g'), data[properties[i].toString()]);
632
+ templateHtml = templateHtml.replace(new regExp('{{:' + properties[i] + '}}', 'g'), data[properties[i].toString()]);
634
633
  }
635
634
  }
636
635
  childElement.innerHTML = templateHtml;
@@ -667,6 +666,7 @@ function formatValue(value, maps) {
667
666
  function convertStringToValue(stringTemplate, format, data, maps) {
668
667
  let templateHtml = (stringTemplate === '') ? format : stringTemplate;
669
668
  const templateValue = (stringTemplate === '') ? templateHtml.split('${') : templateHtml.split('{{:');
669
+ const regExp = RegExp;
670
670
  for (let i = 0; i < templateValue.length; i++) {
671
671
  if ((templateValue[i].indexOf('}}') > -1 && templateValue[i].indexOf('.') > -1) ||
672
672
  (templateValue[i].indexOf('}') > -1 && templateValue[i].search('.') > -1)) {
@@ -676,7 +676,7 @@ function convertStringToValue(stringTemplate, format, data, maps) {
676
676
  const templateSplitValue = (getValueFromObject(data, split[j])).toString();
677
677
  templateHtml = (stringTemplate === '') ?
678
678
  templateHtml.split('${' + split[j] + '}').join(formatValue(templateSplitValue, maps)) :
679
- templateHtml.replace(new RegExp('{{:' + split[j] + '}}', 'g'), templateSplitValue);
679
+ templateHtml.replace(new regExp('{{:' + split[j] + '}}', 'g'), templateSplitValue);
680
680
  }
681
681
  }
682
682
  }
@@ -698,11 +698,12 @@ function convertElementFromLabel(element, labelId, data, index, mapObj) {
698
698
  let templateHtml = labelEle.outerHTML;
699
699
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
700
700
  const properties = Object.keys(data);
701
+ const regExp = RegExp;
701
702
  for (let i = 0; i < properties.length; i++) {
702
703
  // eslint-disable-next-line @typescript-eslint/ban-types
703
- templateHtml = templateHtml.replace(new RegExp('{{:' + properties[i] + '}}', 'g'), data[properties[i].toString()]);
704
+ templateHtml = templateHtml.replace(new regExp('{{:' + properties[i] + '}}', 'g'), data[properties[i].toString()]);
704
705
  }
705
- let templateEle = createElement('div', {
706
+ const templateEle = createElement('div', {
706
707
  id: labelId,
707
708
  innerHTML: templateHtml
708
709
  });
@@ -809,7 +810,7 @@ function markerShapeChoose(eventArgs, data) {
809
810
  const shape = ((eventArgs.shapeValuePath.indexOf('.') > -1) ?
810
811
  (getValueFromObject(data, eventArgs.shapeValuePath).toString()) :
811
812
  data[eventArgs.shapeValuePath]);
812
- eventArgs.shape = (shape.toString() !== "") ? shape : eventArgs.shape;
813
+ eventArgs.shape = (shape.toString() !== '') ? shape : eventArgs.shape;
813
814
  if (data[eventArgs.shapeValuePath] === 'Image') {
814
815
  eventArgs.imageUrl = (!isNullOrUndefined(eventArgs.imageUrlValuePath)) ?
815
816
  ((eventArgs.imageUrlValuePath.indexOf('.') > -1) ? getValueFromObject(data, eventArgs.imageUrlValuePath).toString() : (!isNullOrUndefined(data[eventArgs.imageUrlValuePath]) ?
@@ -818,7 +819,7 @@ function markerShapeChoose(eventArgs, data) {
818
819
  }
819
820
  else {
820
821
  const shapes = (!isNullOrUndefined(eventArgs.shapeValuePath)) ? ((eventArgs.shapeValuePath.indexOf('.') > -1) ? getValueFromObject(data, eventArgs.shapeValuePath).toString() : eventArgs.shape) : eventArgs.shape;
821
- eventArgs.shape = (shapes.toString() !== "") ? shapes : eventArgs.shape;
822
+ eventArgs.shape = (shapes.toString() !== '') ? shapes : eventArgs.shape;
822
823
  const shapeImage = (!isNullOrUndefined(eventArgs.imageUrlValuePath)) ?
823
824
  ((eventArgs.imageUrlValuePath.indexOf('.') > -1) ? getValueFromObject(data, eventArgs.imageUrlValuePath).toString() : (!isNullOrUndefined(data[eventArgs.imageUrlValuePath]) ?
824
825
  data[eventArgs.imageUrlValuePath] : eventArgs.imageUrl)) : eventArgs.imageUrl;
@@ -897,8 +898,6 @@ function clusterTemplate(currentLayer, markerTemplate, maps, layerIndex, markerC
897
898
  container['top'] : (container['bottom'] - container['top'])));
898
899
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
899
900
  const translate = (maps.isTileMap) ? new Object() : getTranslate(maps, currentLayer, false);
900
- const transPoint = (maps.isTileMap) ? { x: 0, y: 0 } : (maps.translatePoint.x !== 0) ?
901
- maps.translatePoint : translate['location'];
902
901
  const dataIndex = parseInt(markerTemplate.childNodes[o]['id'].split('_dataIndex_')[1].split('_')[0], 10);
903
902
  const markerIndex = parseInt(markerTemplate.childNodes[o]['id'].split('_MarkerIndex_')[1].split('_')[0], 10);
904
903
  const markerSetting = currentLayer.markerSettings[markerIndex];
@@ -1040,7 +1039,7 @@ function clusterTemplate(currentLayer, markerTemplate, maps, layerIndex, markerC
1040
1039
  markerCluster.remove();
1041
1040
  }
1042
1041
  if (zoomCheck) {
1043
- let layerGroupElement = document.getElementById(maps.element.id + '_Layer_Collections');
1042
+ const layerGroupElement = document.getElementById(maps.element.id + '_Layer_Collections');
1044
1043
  if (!isNullOrUndefined(layerGroupElement)) {
1045
1044
  layerGroupElement.appendChild(layerElement);
1046
1045
  }
@@ -1547,6 +1546,7 @@ function drawStar(maps, options, size, location, element) {
1547
1546
  * @param {PathOption} options - Specifies the path options
1548
1547
  * @param {Size} size - Specifies the size
1549
1548
  * @param {MapLocation} location - Specifies the map location
1549
+ * @param {string} type - Specifies the type.
1550
1550
  * @param {Element} element - Specifies the element
1551
1551
  * @returns {Element} - Returns the element
1552
1552
  * @private
@@ -2034,7 +2034,8 @@ function getTranslate(mapObject, layer, animate) {
2034
2034
  mapObject.zoomTranslatePoint.y = y;
2035
2035
  }
2036
2036
  else {
2037
- if (!isNullOrUndefined(mapObject.previousProjection) && (mapObject.mapScaleValue === 1 || mapObject.mapScaleValue <= 1.05) && !mapObject.zoomModule.isDragZoom) {
2037
+ if (!isNullOrUndefined(mapObject.previousProjection) && (mapObject.mapScaleValue === 1
2038
+ || mapObject.mapScaleValue <= 1.05) && !mapObject.zoomModule.isDragZoom) {
2038
2039
  scaleFactor = parseFloat(Math.min(size.width / mapWidth, size.height / mapHeight).toFixed(2));
2039
2040
  scaleFactor = scaleFactor > 1.05 ? 1 : scaleFactor;
2040
2041
  mapWidth *= scaleFactor;
@@ -2052,8 +2053,10 @@ function getTranslate(mapObject, layer, animate) {
2052
2053
  }
2053
2054
  }
2054
2055
  if (!isNullOrUndefined(mapObject.translatePoint)) {
2055
- x = (mapObject.enablePersistence && mapObject.translatePoint.x !== 0 && !mapObject.zoomNotApplied) ? mapObject.translatePoint.x : x;
2056
- y = (mapObject.enablePersistence && mapObject.translatePoint.y !== 0 && !mapObject.zoomNotApplied) ? mapObject.translatePoint.y : y;
2056
+ x = (mapObject.enablePersistence && mapObject.translatePoint.x !== 0 && !mapObject.zoomNotApplied) ?
2057
+ mapObject.translatePoint.x : x;
2058
+ y = (mapObject.enablePersistence && mapObject.translatePoint.y !== 0 && !mapObject.zoomNotApplied) ?
2059
+ mapObject.translatePoint.y : y;
2057
2060
  }
2058
2061
  }
2059
2062
  scaleFactor = (mapObject.enablePersistence) ? ((mapObject.mapScaleValue >= 1) ? mapObject.mapScaleValue : 1) : scaleFactor;
@@ -2104,9 +2107,11 @@ function getZoomTranslate(mapObject, layer, animate) {
2104
2107
  mapObject.mapScaleValue = mapObject.zoomSettings.zoomFactor !== 1 &&
2105
2108
  mapObject.zoomSettings.zoomFactor ===
2106
2109
  mapObject.mapScaleValue ? mapObject.zoomSettings.zoomFactor :
2107
- mapObject.zoomSettings.zoomFactor !== mapObject.mapScaleValue && !mapObject.centerPositionChanged ? mapObject.mapScaleValue : mapObject.zoomSettings.zoomFactor;
2110
+ mapObject.zoomSettings.zoomFactor !== mapObject.mapScaleValue && !mapObject.centerPositionChanged ?
2111
+ mapObject.mapScaleValue : mapObject.zoomSettings.zoomFactor;
2108
2112
  if (mapObject.zoomSettings.shouldZoomInitially && !mapObject.isZoomByPosition) {
2109
- mapObject.mapScaleValue = zoomFactorValue = scaleFactor = ((mapObject.enablePersistence || mapObject.zoomSettings.shouldZoomInitially) && mapObject.scale === 1)
2113
+ mapObject.mapScaleValue = zoomFactorValue = scaleFactor = ((mapObject.enablePersistence
2114
+ || mapObject.zoomSettings.shouldZoomInitially) && mapObject.scale === 1)
2110
2115
  ? mapObject.scale : (isNullOrUndefined(mapObject.markerZoomFactor)) ? mapObject.mapScaleValue : mapObject.markerZoomFactor;
2111
2116
  zoomFactorValue = mapObject.mapScaleValue;
2112
2117
  if (!isNullOrUndefined(mapObject.markerCenterLatitude) && !isNullOrUndefined(mapObject.markerCenterLongitude)) {
@@ -2133,7 +2138,8 @@ function getZoomTranslate(mapObject, layer, animate) {
2133
2138
  const leftPosition = ((mapWidth + Math.abs(mapObject.mapAreaRect.width - mapWidth)) / 2) / factor;
2134
2139
  const point = checkZoomMethod ? calculateCenterFromPixel(mapObject, layer) :
2135
2140
  convertGeoToPoint(latitude, longitude, mapObject.mapLayerPanel.calculateFactor(layer), layer, mapObject);
2136
- if ((!isNullOrUndefined(mapObject.zoomTranslatePoint) || !isNullOrUndefined(mapObject.previousProjection)) && !mapObject.zoomNotApplied) {
2141
+ if ((!isNullOrUndefined(mapObject.zoomTranslatePoint) || !isNullOrUndefined(mapObject.previousProjection)) &&
2142
+ !mapObject.zoomNotApplied) {
2137
2143
  if (mapObject.previousProjection !== mapObject.projectionType) {
2138
2144
  x = -point.x + leftPosition;
2139
2145
  y = -point.y + topPosition;
@@ -2153,8 +2159,10 @@ function getZoomTranslate(mapObject, layer, animate) {
2153
2159
  y = -point.y + topPosition + mapObject.mapAreaRect.y / zoomFactor;
2154
2160
  }
2155
2161
  if (!isNullOrUndefined(mapObject.translatePoint)) {
2156
- y = (mapObject.enablePersistence && mapObject.translatePoint.y !== 0 && !mapObject.zoomNotApplied) ? mapObject.translatePoint.y : y;
2157
- x = (mapObject.enablePersistence && mapObject.translatePoint.x !== 0 && !mapObject.zoomNotApplied) ? mapObject.translatePoint.x : x;
2162
+ y = (mapObject.enablePersistence && mapObject.translatePoint.y !== 0 && !mapObject.zoomNotApplied) ?
2163
+ mapObject.translatePoint.y : y;
2164
+ x = (mapObject.enablePersistence && mapObject.translatePoint.x !== 0 && !mapObject.zoomNotApplied) ?
2165
+ mapObject.translatePoint.x : x;
2158
2166
  }
2159
2167
  scaleFactor = zoomFactorValue !== 0 ? zoomFactorValue : 1;
2160
2168
  }
@@ -2192,8 +2200,10 @@ function getZoomTranslate(mapObject, layer, animate) {
2192
2200
  }
2193
2201
  }
2194
2202
  if (!isNullOrUndefined(mapObject.translatePoint)) {
2195
- x = (mapObject.enablePersistence && mapObject.translatePoint.x !== 0 && !mapObject.zoomNotApplied) ? mapObject.translatePoint.x : leftPosition;
2196
- y = (mapObject.enablePersistence && mapObject.translatePoint.y !== 0 && !mapObject.zoomNotApplied) ? mapObject.translatePoint.y : topPosition;
2203
+ x = (mapObject.enablePersistence && mapObject.translatePoint.x !== 0 && !mapObject.zoomNotApplied) ?
2204
+ mapObject.translatePoint.x : leftPosition;
2205
+ y = (mapObject.enablePersistence && mapObject.translatePoint.y !== 0 && !mapObject.zoomNotApplied) ?
2206
+ mapObject.translatePoint.y : topPosition;
2197
2207
  }
2198
2208
  }
2199
2209
  scaleFactor = (mapObject.enablePersistence) ? (mapObject.mapScaleValue === 0 ? 1 : mapObject.mapScaleValue) : scaleFactor;
@@ -2258,6 +2268,7 @@ function Internalize(maps, value) {
2258
2268
  * Function to compile the template function for maps.
2259
2269
  *
2260
2270
  * @param {string} template - Specifies the template
2271
+ * @param {Maps} maps - Specifies the Maps instance.
2261
2272
  * @returns {Function} - Returns the function
2262
2273
  * @private
2263
2274
  */
@@ -2265,10 +2276,10 @@ function Internalize(maps, value) {
2265
2276
  function getTemplateFunction(template, maps) {
2266
2277
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2267
2278
  let templateFn = null;
2268
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2269
2279
  try {
2270
2280
  if (document.querySelectorAll(template).length) {
2271
2281
  templateFn = compile(document.querySelector(template).innerHTML.trim());
2282
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2272
2283
  }
2273
2284
  else if (maps.isVue || maps.isVue3) {
2274
2285
  templateFn = compile(template);
@@ -2473,7 +2484,8 @@ shapeData, data) {
2473
2484
  maps: map
2474
2485
  };
2475
2486
  map.trigger('itemSelection', eventArgs, (observedArgs) => {
2476
- eventArgs.border.opacity = isNullOrUndefined(selectionSettings.border.opacity) ? selectionSettings.opacity : selectionSettings.border.opacity;
2487
+ eventArgs.border.opacity = isNullOrUndefined(selectionSettings.border.opacity) ? selectionSettings.opacity :
2488
+ selectionSettings.border.opacity;
2477
2489
  map.shapeSelectionItem.push(eventArgs.shapeData);
2478
2490
  if (!getElement('ShapeselectionMap')) {
2479
2491
  document.body.appendChild(createStyle('ShapeselectionMap', 'ShapeselectionMapStyle', eventArgs));
@@ -2572,7 +2584,7 @@ function showTooltip(text, size, x, y, areaWidth, areaHeight, id, element, isTou
2572
2584
  let demo = str[0].length;
2573
2585
  for (let i = 1; i < str.length; i++) {
2574
2586
  if (demo < str[i].length) {
2575
- demo = str[i].length;
2587
+ demo = (str[i]).length;
2576
2588
  }
2577
2589
  }
2578
2590
  if (!tooltip) {
@@ -2642,7 +2654,7 @@ function wordWrap(tooltip, text, x, y, size1, width, areaWidth, element) {
2642
2654
  // if (touches) {
2643
2655
  // touchList = [];
2644
2656
  // for (let i: number = 0, length: number = touches.length; i < length; i++) {
2645
- // touchList.push({ pageX: touches[i].clientX, pageY: touches[i].clientY, pointerId: null });
2657
+ // touchList.push({ pageX: touches[i as number].clientX, pageY: touches[i as number].clientY, pointerId: null });
2646
2658
  // }
2647
2659
  // } else {
2648
2660
  // touchList = touchList ? touchList : [];
@@ -2650,8 +2662,8 @@ function wordWrap(tooltip, text, x, y, size1, width, areaWidth, element) {
2650
2662
  // touchList.push({ pageX: e.clientX, pageY: e.clientY, pointerId: e.pointerId });
2651
2663
  // } else {
2652
2664
  // for (let i: number = 0, length: number = touchList.length; i < length; i++) {
2653
- // if (touchList[i].pointerId === e.pointerId) {
2654
- // touchList[i] = { pageX: e.clientX, pageY: e.clientY, pointerId: e.pointerId };
2665
+ // if (touchList[i as number].pointerId === e.pointerId) {
2666
+ // touchList[i as number] = { pageX: e.clientX, pageY: e.clientY, pointerId: e.pointerId };
2655
2667
  // } else {
2656
2668
  // touchList.push({ pageX: e.clientX, pageY: e.clientY, pointerId: e.pointerId });
2657
2669
  // }
@@ -3081,7 +3093,7 @@ function animate(element, delay, duration, process, end) {
3081
3093
  window.cancelAnimationFrame(clearAnimation);
3082
3094
  end.call(this, { element: element });
3083
3095
  if (element.id.indexOf('Marker') > -1) {
3084
- let markerElement = getElementByID(element.id.split('_Layer')[0] + '_Markers_Group');
3096
+ const markerElement = getElementByID(element.id.split('_Layer')[0] + '_Markers_Group');
3085
3097
  markerElement.style.cssText = markerStyle;
3086
3098
  }
3087
3099
  }
@@ -3781,7 +3793,7 @@ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators,
3781
3793
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3782
3794
  return c > 3 && r && Object.defineProperty(target, key, r), r;
3783
3795
  };
3784
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
3796
+ /* eslint-disable max-len */
3785
3797
  /**
3786
3798
  * Maps base document
3787
3799
  */
@@ -4729,7 +4741,8 @@ class Marker {
4729
4741
  nullCount += (!isNaN(lat) && !isNaN(lng)) ? 0 : 1;
4730
4742
  markerTemplateCount += (eventArgs.cancel) ? 1 : 0;
4731
4743
  markerCount += (eventArgs.cancel) ? 1 : 0;
4732
- maps.markerNullCount = (isNullOrUndefined(lng) || isNullOrUndefined(lat)) ? maps.markerNullCount + 1 : maps.markerNullCount;
4744
+ maps.markerNullCount = (isNullOrUndefined(lng) || isNullOrUndefined(lat)) ?
4745
+ maps.markerNullCount + 1 : maps.markerNullCount;
4733
4746
  const markerDataLength = markerData.length - maps.markerNullCount;
4734
4747
  if (this.markerSVGObject.childElementCount === (markerDataLength - markerTemplateCount - nullCount) && (type !== 'Template')) {
4735
4748
  layerElement.appendChild(this.markerSVGObject);
@@ -4787,126 +4800,134 @@ class Marker {
4787
4800
  }
4788
4801
  /**
4789
4802
  * To calculate center position and factor value dynamically
4803
+ *
4804
+ * @param {LayerSettings[]} layersCollection - Specifies the layer settings instance.
4805
+ * @returns {void}
4790
4806
  */
4791
4807
  calculateZoomCenterPositionAndFactor(layersCollection) {
4792
- if (this.maps.zoomSettings.shouldZoomInitially && this.maps.markerModule) {
4793
- let minLong;
4794
- let maxLat;
4795
- let minLat;
4796
- let maxLong;
4797
- let zoomLevel;
4798
- let centerLat;
4799
- let centerLong;
4800
- const maxZoomFact = this.maps.zoomSettings.maxZoom;
4801
- const mapWidth = this.maps.mapAreaRect.width;
4802
- const mapHeight = this.maps.mapAreaRect.height;
4803
- this.maps.markerZoomedState = this.maps.markerZoomedState ? this.maps.markerZoomedState : isNullOrUndefined(this.maps.markerZoomFactor) ?
4804
- !this.maps.markerZoomedState : this.maps.markerZoomFactor > 1 ? this.maps.markerZoomedState : !this.maps.markerZoomedState;
4805
- this.maps.defaultState = this.maps.markerZoomedState ? !this.maps.markerZoomedState : this.maps.defaultState;
4806
- Array.prototype.forEach.call(layersCollection, (currentLayer, layerIndex) => {
4807
- const isMarker = currentLayer.markerSettings.length !== 0;
4808
- if (isMarker) {
4809
- Array.prototype.forEach.call(currentLayer.markerSettings, (markerSetting, markerIndex) => {
4810
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4811
- const markerData = markerSetting.dataSource;
4812
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4813
- Array.prototype.forEach.call(markerData, (data, dataIndex) => {
4814
- const latitude = !isNullOrUndefined(data['latitude']) ? parseFloat(data['latitude']) :
4815
- !isNullOrUndefined(data['Latitude']) ? parseFloat(data['Latitude']) : null;
4816
- const longitude = !isNullOrUndefined(data['longitude']) ? parseFloat(data['longitude']) :
4817
- !isNullOrUndefined(data['Longitude']) ? parseFloat(data['Longitude']) : null;
4818
- minLong = isNullOrUndefined(minLong) && dataIndex === 0 ?
4819
- longitude : minLong;
4820
- maxLat = isNullOrUndefined(maxLat) && dataIndex === 0 ?
4821
- latitude : maxLat;
4822
- minLat = isNullOrUndefined(minLat) && dataIndex === 0 ?
4823
- latitude : minLat;
4824
- maxLong = isNullOrUndefined(maxLong) && dataIndex === 0 ?
4825
- longitude : maxLong;
4826
- if (minLong > longitude) {
4827
- minLong = longitude;
4828
- }
4829
- if (minLat > latitude) {
4830
- minLat = latitude;
4831
- }
4832
- if (maxLong < longitude) {
4833
- maxLong = longitude;
4834
- }
4835
- if (maxLat < latitude) {
4836
- maxLat = latitude;
4837
- }
4808
+ if (!isNullOrUndefined(this.maps)) {
4809
+ if (this.maps.zoomSettings.shouldZoomInitially && this.maps.markerModule) {
4810
+ let minLong;
4811
+ let maxLat;
4812
+ let minLat;
4813
+ let maxLong;
4814
+ let zoomLevel;
4815
+ let centerLat;
4816
+ let centerLong;
4817
+ const maxZoomFact = this.maps.zoomSettings.maxZoom;
4818
+ const mapWidth = this.maps.mapAreaRect.width;
4819
+ const mapHeight = this.maps.mapAreaRect.height;
4820
+ this.maps.markerZoomedState = this.maps.markerZoomedState ? this.maps.markerZoomedState :
4821
+ isNullOrUndefined(this.maps.markerZoomFactor) ? !this.maps.markerZoomedState :
4822
+ this.maps.markerZoomFactor > 1 ? this.maps.markerZoomedState : !this.maps.markerZoomedState;
4823
+ this.maps.defaultState = this.maps.markerZoomedState ? !this.maps.markerZoomedState : this.maps.defaultState;
4824
+ Array.prototype.forEach.call(layersCollection, (currentLayer) => {
4825
+ const isMarker = currentLayer.markerSettings.length !== 0;
4826
+ if (isMarker) {
4827
+ Array.prototype.forEach.call(currentLayer.markerSettings, (markerSetting) => {
4828
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4829
+ const markerData = markerSetting.dataSource;
4830
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4831
+ Array.prototype.forEach.call(markerData, (data, dataIndex) => {
4832
+ const latitude = !isNullOrUndefined(data['latitude']) ? parseFloat(data['latitude']) :
4833
+ !isNullOrUndefined(data['Latitude']) ? parseFloat(data['Latitude']) : null;
4834
+ const longitude = !isNullOrUndefined(data['longitude']) ? parseFloat(data['longitude']) :
4835
+ !isNullOrUndefined(data['Longitude']) ? parseFloat(data['Longitude']) : null;
4836
+ minLong = isNullOrUndefined(minLong) && dataIndex === 0 ?
4837
+ longitude : minLong;
4838
+ maxLat = isNullOrUndefined(maxLat) && dataIndex === 0 ?
4839
+ latitude : maxLat;
4840
+ minLat = isNullOrUndefined(minLat) && dataIndex === 0 ?
4841
+ latitude : minLat;
4842
+ maxLong = isNullOrUndefined(maxLong) && dataIndex === 0 ?
4843
+ longitude : maxLong;
4844
+ if (minLong > longitude) {
4845
+ minLong = longitude;
4846
+ }
4847
+ if (minLat > latitude) {
4848
+ minLat = latitude;
4849
+ }
4850
+ if (maxLong < longitude) {
4851
+ maxLong = longitude;
4852
+ }
4853
+ if (maxLat < latitude) {
4854
+ maxLat = latitude;
4855
+ }
4856
+ });
4838
4857
  });
4839
- });
4840
- }
4841
- });
4842
- if (!isNullOrUndefined(minLat) && !isNullOrUndefined(minLong) &&
4843
- !isNullOrUndefined(maxLong) && !isNullOrUndefined(maxLat)) {
4844
- // To find the center position
4845
- centerLat = (minLat + maxLat) / 2;
4846
- centerLong = (minLong + maxLong) / 2;
4847
- this.maps.markerCenterLatitude = centerLat;
4848
- this.maps.markerCenterLongitude = centerLong;
4849
- if (isNullOrUndefined(this.maps.markerZoomCenterPoint) || this.maps.markerZoomedState) {
4850
- this.maps.markerZoomCenterPoint = {
4851
- latitude: centerLat,
4852
- longitude: centerLong
4853
- };
4854
- }
4855
- let markerFactor;
4856
- if (this.maps.isTileMap || this.maps.baseMapRectBounds['min']['x'] === 0) {
4857
- zoomLevel = calculateZoomLevel(minLat, maxLat, minLong, maxLong, mapWidth, mapHeight, this.maps);
4858
- if (this.maps.isTileMap) {
4859
- markerFactor = isNullOrUndefined(this.maps.markerZoomFactor) ?
4860
- zoomLevel : isNullOrUndefined(this.maps.mapScaleValue) ?
4861
- zoomLevel : this.maps.mapScaleValue > 1 && this.maps.markerZoomFactor !== 1 ?
4862
- this.maps.mapScaleValue : zoomLevel;
4858
+ }
4859
+ });
4860
+ if (!isNullOrUndefined(minLat) && !isNullOrUndefined(minLong) &&
4861
+ !isNullOrUndefined(maxLong) && !isNullOrUndefined(maxLat)) {
4862
+ // To find the center position
4863
+ centerLat = (minLat + maxLat) / 2;
4864
+ centerLong = (minLong + maxLong) / 2;
4865
+ this.maps.markerCenterLatitude = centerLat;
4866
+ this.maps.markerCenterLongitude = centerLong;
4867
+ if (isNullOrUndefined(this.maps.markerZoomCenterPoint) || this.maps.markerZoomedState) {
4868
+ this.maps.markerZoomCenterPoint = {
4869
+ latitude: centerLat,
4870
+ longitude: centerLong
4871
+ };
4872
+ }
4873
+ let markerFactor;
4874
+ if (this.maps.isTileMap || this.maps.baseMapRectBounds['min']['x'] === 0) {
4875
+ zoomLevel = calculateZoomLevel(minLat, maxLat, minLong, maxLong, mapWidth, mapHeight, this.maps);
4876
+ if (this.maps.isTileMap) {
4877
+ markerFactor = isNullOrUndefined(this.maps.markerZoomFactor) ?
4878
+ zoomLevel : isNullOrUndefined(this.maps.mapScaleValue) ?
4879
+ zoomLevel : this.maps.mapScaleValue > 1 && this.maps.markerZoomFactor !== 1 ?
4880
+ this.maps.mapScaleValue : zoomLevel;
4881
+ }
4882
+ else {
4883
+ markerFactor = isNullOrUndefined(this.maps.mapScaleValue) ? zoomLevel :
4884
+ (Math.floor(this.maps.scale) !== 1 &&
4885
+ this.maps.mapScaleValue !== zoomLevel)
4886
+ &&
4887
+ (isNullOrUndefined(this.maps.shouldZoomCurrentFactor))
4888
+ ? this.maps.mapScaleValue : zoomLevel;
4889
+ if (((markerFactor === this.maps.mapScaleValue &&
4890
+ (this.maps.markerZoomFactor === 1 || this.maps.mapScaleValue === 1))
4891
+ && (!this.maps.enablePersistence))) {
4892
+ markerFactor = zoomLevel;
4893
+ }
4894
+ }
4863
4895
  }
4864
4896
  else {
4897
+ zoomLevel = this.calculateIndividualLayerMarkerZoomLevel(mapWidth, mapHeight, maxZoomFact);
4865
4898
  markerFactor = isNullOrUndefined(this.maps.mapScaleValue) ? zoomLevel :
4866
- (Math.floor(this.maps.scale) !== 1 &&
4867
- this.maps.mapScaleValue !== zoomLevel)
4868
- &&
4869
- (isNullOrUndefined(this.maps.shouldZoomCurrentFactor))
4899
+ (this.maps.mapScaleValue !== zoomLevel)
4870
4900
  ? this.maps.mapScaleValue : zoomLevel;
4871
- if (((markerFactor === this.maps.mapScaleValue &&
4872
- (this.maps.markerZoomFactor === 1 || this.maps.mapScaleValue === 1))
4873
- && (!this.maps.enablePersistence))) {
4874
- markerFactor = zoomLevel;
4875
- }
4876
4901
  }
4902
+ this.maps.markerZoomFactor = markerFactor;
4877
4903
  }
4878
- else {
4879
- zoomLevel = this.calculateIndividualLayerMarkerZoomLevel(mapWidth, mapHeight, maxZoomFact);
4880
- markerFactor = isNullOrUndefined(this.maps.mapScaleValue) ? zoomLevel :
4881
- (this.maps.mapScaleValue !== zoomLevel)
4882
- ? this.maps.mapScaleValue : zoomLevel;
4883
- }
4884
- this.maps.markerZoomFactor = markerFactor;
4885
4904
  }
4886
- }
4887
- else {
4888
- this.maps.markerZoomedState = false;
4889
- if (this.maps.markerZoomFactor > 1) {
4890
- this.maps.markerCenterLatitude = null;
4891
- this.maps.markerCenterLongitude = null;
4892
- this.maps.markerZoomFactor = 1;
4893
- if (!this.maps.enablePersistence) {
4894
- this.maps.mapScaleValue = 1;
4905
+ else {
4906
+ this.maps.markerZoomedState = false;
4907
+ if (this.maps.markerZoomFactor > 1) {
4908
+ this.maps.markerCenterLatitude = null;
4909
+ this.maps.markerCenterLongitude = null;
4910
+ this.maps.markerZoomFactor = 1;
4911
+ if (!this.maps.enablePersistence) {
4912
+ this.maps.mapScaleValue = 1;
4913
+ }
4895
4914
  }
4896
- }
4897
- if (this.maps.isTileMap && !this.maps.enablePersistence
4898
- && this.maps.mapScaleValue <= 1) {
4899
- this.maps.tileZoomLevel = this.maps.mapScaleValue === 0 ? (this.maps.isZoomByPosition ? this.maps.tileZoomLevel : 1)
4900
- : this.maps.mapScaleValue;
4901
- if (this.maps.mapScaleValue === 1 && this.maps.markerZoomFactor === 1) {
4902
- this.maps.tileTranslatePoint.x = 0;
4903
- this.maps.tileTranslatePoint.y = 0;
4915
+ if (this.maps.isTileMap && !this.maps.enablePersistence
4916
+ && this.maps.mapScaleValue <= 1) {
4917
+ this.maps.tileZoomLevel = this.maps.mapScaleValue === 0 ? (this.maps.isZoomByPosition ? this.maps.tileZoomLevel : 1)
4918
+ : this.maps.mapScaleValue;
4919
+ if (this.maps.mapScaleValue === 1 && this.maps.markerZoomFactor === 1) {
4920
+ this.maps.tileTranslatePoint.x = 0;
4921
+ this.maps.tileTranslatePoint.y = 0;
4922
+ }
4904
4923
  }
4905
4924
  }
4906
4925
  }
4907
4926
  }
4908
4927
  /**
4909
4928
  * To check and trigger marker click event
4929
+ * @param {PointerEvent} e - Specifies the pointer event argument.
4930
+ * @returns {void}
4910
4931
  */
4911
4932
  markerClick(e) {
4912
4933
  const target = e.target.id;
@@ -4928,6 +4949,8 @@ class Marker {
4928
4949
  }
4929
4950
  /**
4930
4951
  * To check and trigger Cluster click event
4952
+ * @param {PointerEvent} e - Specifies the pointer event argument.
4953
+ * @returns {void}
4931
4954
  */
4932
4955
  markerClusterClick(e) {
4933
4956
  const target = e.target.id;
@@ -5018,6 +5041,9 @@ class Marker {
5018
5041
  }
5019
5042
  /**
5020
5043
  * To check and trigger marker move event
5044
+ *
5045
+ * @param {PointerEvent} e - Specifies the pointer event argument.
5046
+ * @returns {void}
5021
5047
  */
5022
5048
  markerMove(e) {
5023
5049
  const targetId = e.target.id;
@@ -5036,6 +5062,9 @@ class Marker {
5036
5062
  }
5037
5063
  /**
5038
5064
  * To check and trigger cluster move event
5065
+ *
5066
+ * @param {PointerEvent} e - Specifies the pointer event argument.
5067
+ * @returns {void}
5039
5068
  */
5040
5069
  markerClusterMouseMove(e) {
5041
5070
  const targetId = e.target.id;
@@ -5308,6 +5337,7 @@ class BingMap {
5308
5337
  }
5309
5338
  }
5310
5339
  /**
5340
+ * @returns {void}
5311
5341
  * @private
5312
5342
  */
5313
5343
  destroy() {
@@ -5344,6 +5374,11 @@ class ColorMapping {
5344
5374
  }
5345
5375
  /**
5346
5376
  * To color by value and color mapping
5377
+ *
5378
+ * @param {ColorMappingSettingsModel[]} colorMapping - Specifies the color mapping instance.
5379
+ * @param {number} colorValue - Specifies the color value
5380
+ * @param {string} equalValue - Specifies the equal value.
5381
+ * @returns {any} - Returns the color mapping values.
5347
5382
  */
5348
5383
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5349
5384
  getColorByValue(colorMapping, colorValue, equalValue) {
@@ -5534,10 +5569,7 @@ class ColorMapping {
5534
5569
  }
5535
5570
  }
5536
5571
 
5537
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
5538
- /* eslint-disable jsdoc/require-param */
5539
5572
  /* eslint-disable no-case-declarations */
5540
- /* eslint-disable @typescript-eslint/no-unused-vars */
5541
5573
  /**
5542
5574
  * To calculate and render the shape layer
5543
5575
  */
@@ -5725,7 +5757,10 @@ class LayerPanel {
5725
5757
  panel.mapObject.previousZoomFactor = panel.mapObject.zoomSettings.zoomFactor;
5726
5758
  }
5727
5759
  if (panel.mapObject.navigationLineModule) {
5728
- panel.layerObject.appendChild(panel.mapObject.navigationLineModule.renderNavigation(panel.currentLayer, panel.mapObject.tileZoomLevel, layerIndex));
5760
+ const navigationLineElement = panel.mapObject.navigationLineModule.renderNavigation(panel.currentLayer, panel.mapObject.tileZoomLevel, layerIndex);
5761
+ if (!isNullOrUndefined(navigationLineElement)) {
5762
+ panel.layerObject.appendChild(navigationLineElement);
5763
+ }
5729
5764
  }
5730
5765
  if (panel.mapObject.markerModule) {
5731
5766
  panel.mapObject.markerModule.markerRender(this.mapObject, panel.layerObject, layerIndex, panel.mapObject.tileZoomLevel, null);
@@ -5792,7 +5827,6 @@ class LayerPanel {
5792
5827
  const imageUrl = resource['imageUrl'];
5793
5828
  const subDomains = resource['imageUrlSubdomains'];
5794
5829
  const maxZoom = resource['zoomMax'];
5795
- const markerGroupElement = document.getElementById(proxy.mapObject.element.id + '_Markers_Group');
5796
5830
  if (imageUrl !== null && imageUrl !== undefined && imageUrl !== bing.imageUrl) {
5797
5831
  bing.imageUrl = imageUrl;
5798
5832
  }
@@ -5953,8 +5987,6 @@ class LayerPanel {
5953
5987
  fill = Object.prototype.toString.call(getShapeColor$$1) === '[object Object]' && !isNullOrUndefined(getShapeColor$$1['fill'])
5954
5988
  ? getShapeColor$$1['fill'] : fill;
5955
5989
  if (this.currentLayer.shapeSettings.borderColorValuePath || this.currentLayer.shapeSettings.borderWidthValuePath) {
5956
- const borderColorValue = this.currentLayer.shapeSettings.borderColorValuePath;
5957
- const borderWidthValue = this.currentLayer.shapeSettings.borderWidthValuePath;
5958
5990
  k = checkShapeDataFields(
5959
5991
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5960
5992
  this.currentLayer.dataSource, currentShapeData['property'], this.currentLayer.shapeDataPath, this.currentLayer.shapePropertyPath, this.currentLayer);
@@ -6081,7 +6113,9 @@ class LayerPanel {
6081
6113
  case 'Point':
6082
6114
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6083
6115
  const pointData = currentShapeData['point'];
6084
- const circleRadius = (this.mapObject.layers[layerIndex].type !== 'SubLayer') ? shapeSettings.circleRadius : shapeSettings.circleRadius / (this.mapObject.isTileMap ? this.mapObject.scale : this.currentFactor);
6116
+ const circleRadius = (this.mapObject.layers[layerIndex].type !== 'SubLayer') ?
6117
+ shapeSettings.circleRadius : shapeSettings.circleRadius / (this.mapObject.isTileMap ?
6118
+ this.mapObject.scale : this.currentFactor);
6085
6119
  circleOptions = new CircleOption(shapeID, eventArgs.fill, eventArgs.border, opacity, pointData['x'], pointData['y'], circleRadius, shapeSettings.dashArray);
6086
6120
  pathEle = this.mapObject.renderer.drawCircle(circleOptions);
6087
6121
  break;
@@ -6091,7 +6125,7 @@ class LayerPanel {
6091
6125
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6092
6126
  const pointData = multiPointData['point'];
6093
6127
  const circleRadius = (this.mapObject.layers[layerIndex].type !== 'SubLayer') ? shapeSettings.circleRadius : shapeSettings.circleRadius / (this.mapObject.isTileMap ? this.mapObject.scale : this.currentFactor);
6094
- circleOptions = new CircleOption((shapeID + "_multiLine_" + index), eventArgs.fill, eventArgs.border, opacity, pointData['x'], pointData['y'], circleRadius, shapeSettings.dashArray);
6128
+ circleOptions = new CircleOption((shapeID + '_multiLine_' + index), eventArgs.fill, eventArgs.border, opacity, pointData['x'], pointData['y'], circleRadius, shapeSettings.dashArray);
6095
6129
  pathEle = this.mapObject.renderer.drawCircle(circleOptions);
6096
6130
  this.pathAttributeCalculate(groupElement, pathEle, drawingType, currentShapeData, i);
6097
6131
  });
@@ -6120,15 +6154,16 @@ class LayerPanel {
6120
6154
  /**
6121
6155
  * layer features as bubble, marker, datalabel, navigation line.
6122
6156
  *
6123
- * @param {groupElement} Element - Specifies the element to append the group
6124
- * @param {pathEle} Element - Specifies the svg element
6125
- * @param {drawingType} string - Specifies the data type
6126
- * @param {currentShapeData} any - Specifies the layer of shapedata.
6127
- * @param {index} number - Specifies the tab index.
6157
+ * @param {Element} groupElement - Specifies the element to append the group.
6158
+ * @param {Element} pathEle - Specifies the svg element.
6159
+ * @param {string} drawingType - Specifies the data type.
6160
+ * @param {any} currentShapeData - Specifies the layer of shapedata.
6161
+ * @param {number} index - Specifies the tab index.
6128
6162
  * @returns {void}
6129
6163
  */
6164
+ pathAttributeCalculate(groupElement, pathEle, drawingType,
6130
6165
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6131
- pathAttributeCalculate(groupElement, pathEle, drawingType, currentShapeData, index) {
6166
+ currentShapeData, index) {
6132
6167
  const property = (Object.prototype.toString.call(this.currentLayer.shapePropertyPath) === '[object Array]' ?
6133
6168
  this.currentLayer.shapePropertyPath : [this.currentLayer.shapePropertyPath]);
6134
6169
  let properties;
@@ -6155,7 +6190,7 @@ class LayerPanel {
6155
6190
  pathEle.setAttribute('stroke', styleProperty.border.color);
6156
6191
  pathEle.setAttribute('fill-opacity', (styleProperty.opacity).toString());
6157
6192
  pathEle.setAttribute('stroke-opacity', (isNullOrUndefined(styleProperty.border.opacity) ? styleProperty.opacity : styleProperty.border.opacity).toString());
6158
- pathEle.setAttribute('stroke-width', (styleProperty.border.width).toString());
6193
+ pathEle.setAttribute('stroke-width', (isNullOrUndefined(styleProperty.border.width) ? 0 : styleProperty.border.width).toString());
6159
6194
  }
6160
6195
  }
6161
6196
  }
@@ -6216,8 +6251,8 @@ class LayerPanel {
6216
6251
  this.layerObject.appendChild(element);
6217
6252
  });
6218
6253
  if (this.mapObject.markerModule) {
6219
- this.mapObject.markerModule.markerRender(this.mapObject, this.layerObject, layerIndex, (this.mapObject.isTileMap ? Math.floor(this.currentFactor)
6220
- : this.currentFactor), null);
6254
+ this.mapObject.markerModule.markerRender(this.mapObject, this.layerObject, layerIndex, (this.mapObject.isTileMap ? Math.floor(this.currentFactor) :
6255
+ this.currentFactor), null);
6221
6256
  }
6222
6257
  this.translateLayerElements(this.layerObject, layerIndex);
6223
6258
  this.layerGroup.appendChild(this.layerObject);
@@ -6227,11 +6262,11 @@ class LayerPanel {
6227
6262
  *
6228
6263
  * @param {LayerSettings} layer - Specifies the layer
6229
6264
  * @param {number} layerIndex - Specifies the layer index
6230
- * @param {object[]} shape - Specifies the shape
6265
+ * @param {any[]} shape - Specifies the shape
6231
6266
  * @param {Element} group - Specifies the group
6232
6267
  * @param {number} shapeIndex - Specifies the shape index
6233
6268
  * @param {HTMLElement} labelTemplateEle - Specifies the label template element
6234
- * @param {object[]} intersect - Specifies the intersect
6269
+ * @param {any[]} intersect - Specifies the intersect
6235
6270
  * @returns {void}
6236
6271
  */
6237
6272
  renderLabel(layer, layerIndex,
@@ -6329,10 +6364,12 @@ class LayerPanel {
6329
6364
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6330
6365
  const multiPolygonDatas = [];
6331
6366
  for (let i = 0; i < coordinates.length; i++) {
6332
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6333
- newData = this.calculatePolygonBox(coordinates[i][0], data, properties);
6334
- if (newData.length > 0) {
6335
- multiPolygonDatas.push(newData);
6367
+ for (let j = 0; j < coordinates[i].length; j++) {
6368
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6369
+ newData = this.calculatePolygonBox(coordinates[i][j], data, properties);
6370
+ if (newData.length > 0) {
6371
+ multiPolygonDatas.push(newData);
6372
+ }
6336
6373
  }
6337
6374
  }
6338
6375
  multiPolygonDatas['property'] = properties;
@@ -6341,15 +6378,15 @@ class LayerPanel {
6341
6378
  this.currentLayer.layerData.push(multiPolygonDatas);
6342
6379
  break;
6343
6380
  case 'linestring':
6344
- const extraSpace = !isNullOrUndefined(this.currentLayer.shapeSettings.border.width) ?
6381
+ const lineExtraSpace = !isNullOrUndefined(this.currentLayer.shapeSettings.border.width) ?
6345
6382
  (typeof (this.currentLayer.shapeSettings.border.width) === 'string' ?
6346
6383
  parseInt(this.currentLayer.shapeSettings.border.width, 10) : this.currentLayer.shapeSettings.border.width) : 1;
6347
6384
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6348
- coordinates.map((points, index) => {
6385
+ coordinates.map((points) => {
6349
6386
  latitude = points[1];
6350
6387
  longitude = points[0];
6351
6388
  const point = convertGeoToPoint(latitude, longitude, this.currentFactor, this.currentLayer, this.mapObject);
6352
- this.calculateBox(point, extraSpace);
6389
+ this.calculateBox(point, lineExtraSpace);
6353
6390
  newData.push({
6354
6391
  point: point, lat: latitude, lng: longitude
6355
6392
  });
@@ -6362,10 +6399,12 @@ class LayerPanel {
6362
6399
  const extraSpaces = !isNullOrUndefined(this.currentLayer.shapeSettings.border.width) ?
6363
6400
  (typeof (this.currentLayer.shapeSettings.border.width) === 'string' ?
6364
6401
  parseInt(this.currentLayer.shapeSettings.border.width, 10) : this.currentLayer.shapeSettings.border.width) : 1;
6402
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6365
6403
  const multiLineData = [];
6366
6404
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6367
6405
  coordinates.map((multiPoints) => {
6368
6406
  newData = [];
6407
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6369
6408
  multiPoints.map((points) => {
6370
6409
  latitude = points[1];
6371
6410
  longitude = points[0];
@@ -6394,7 +6433,7 @@ class LayerPanel {
6394
6433
  point: point, type: type, lat: latitude, lng: longitude, property: properties
6395
6434
  });
6396
6435
  break;
6397
- case 'multipoint': {
6436
+ case 'multipoint':
6398
6437
  const extraSpace = (!isNullOrUndefined(this.currentLayer.shapeSettings.border.width) ?
6399
6438
  (typeof (this.currentLayer.shapeSettings.border.width) === 'string' ?
6400
6439
  parseInt(this.currentLayer.shapeSettings.border.width, 10) : this.currentLayer.shapeSettings.border.width) : 1) +
@@ -6414,7 +6453,6 @@ class LayerPanel {
6414
6453
  newData['type'] = type;
6415
6454
  this.currentLayer.layerData.push(newData);
6416
6455
  break;
6417
- }
6418
6456
  case 'path':
6419
6457
  this.currentLayer.layerData.push({
6420
6458
  point: data['d'], type: type, property: properties
@@ -6424,7 +6462,8 @@ class LayerPanel {
6424
6462
  }
6425
6463
  calculateBox(point, extraSpace) {
6426
6464
  if (isNullOrUndefined(this.rectBounds)) {
6427
- this.rectBounds = { min: { x: point.x - extraSpace, y: point.y - extraSpace }, max: { x: point.x + extraSpace, y: point.y + extraSpace } };
6465
+ this.rectBounds = { min: { x: point.x - extraSpace, y: point.y - extraSpace }, max: { x: point.x + extraSpace,
6466
+ y: point.y + extraSpace } };
6428
6467
  }
6429
6468
  else {
6430
6469
  this.rectBounds['min']['x'] = Math.min(this.rectBounds['min']['x'], point.x - extraSpace);
@@ -6547,6 +6586,7 @@ class LayerPanel {
6547
6586
  case 'multilinestring':
6548
6587
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6549
6588
  coordinates.map((multiPoint, index) => {
6589
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6550
6590
  multiPoint.map((point, index) => {
6551
6591
  this.calculateRectBox(point, 'multilinestring', index === 0 ? true : false);
6552
6592
  });
@@ -6562,6 +6602,7 @@ class LayerPanel {
6562
6602
  this.calculateRectBox(coordinates, 'point');
6563
6603
  break;
6564
6604
  case 'multipoint':
6605
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6565
6606
  coordinates.map((point, index) => {
6566
6607
  this.calculateRectBox(point, 'multipoint', index === 0 ? true : false);
6567
6608
  });
@@ -6576,7 +6617,7 @@ class LayerPanel {
6576
6617
  const newData = [];
6577
6618
  const bounds = this.mapObject.baseMapBounds;
6578
6619
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6579
- coordinates.map((currentPoint, index) => {
6620
+ coordinates.map((currentPoint) => {
6580
6621
  const latitude = currentPoint[1];
6581
6622
  const longitude = currentPoint[0];
6582
6623
  if ((longitude >= bounds.longitude.min && longitude <= bounds.longitude.max)
@@ -6669,8 +6710,8 @@ class LayerPanel {
6669
6710
  tileI = (tileI % ycount) + ycount;
6670
6711
  }
6671
6712
  const tile = new Tile(tileI % ycount, j);
6672
- tile.left = x;
6673
- tile.top = y;
6713
+ tile.left = Math.round(x);
6714
+ tile.top = Math.round(y);
6674
6715
  if (baseLayer.layerType === 'Bing' || (bing && !isNullOrUndefined(baseLayer.urlTemplate) && baseLayer.urlTemplate !== '')) {
6675
6716
  const key = baseLayer.key;
6676
6717
  tile.src = bing.getBingMap(tile, key, baseLayer.bingMapType, userLang, bing.imageUrl, bing.subDomains);
@@ -6761,18 +6802,45 @@ class LayerPanel {
6761
6802
  animateElement = element ? element.children[0] : null;
6762
6803
  }
6763
6804
  }
6764
- let id = 0;
6765
- for (const tile of this.tiles) {
6766
- const imgElement = createElement('img');
6767
- imgElement.setAttribute('height', '256px');
6768
- imgElement.setAttribute('width', '256px');
6769
- imgElement.setAttribute('src', tile.src);
6770
- imgElement.setAttribute('alt', this.mapObject.getLocalizedLabel('ImageNotFound'));
6805
+ for (let id = 0; id < this.tiles.length; id++) {
6806
+ const tile = this.tiles[id];
6807
+ let imgElement = null;
6771
6808
  const mapId = this.mapObject.element.id;
6772
- imgElement.onload = () => {
6773
- if (document.getElementById(mapId + '_tile_' + id) && type === 'Pan') {
6774
- removeElement(mapId + '_tile_' + id);
6809
+ if (type === 'Pan') {
6810
+ let child = document.getElementById(mapId + '_tile_' + id);
6811
+ let isNewTile = false;
6812
+ if (isNullOrUndefined(child)) {
6813
+ isNewTile = true;
6814
+ child = createElement('div', { id: mapId + '_tile_' + id });
6815
+ imgElement = createElement('img');
6816
+ }
6817
+ else {
6818
+ child.style.removeProperty('display');
6819
+ imgElement = child.children[0];
6820
+ }
6821
+ if (!isNewTile && imgElement && imgElement.src !== tile.src) {
6822
+ imgElement.src = tile.src;
6823
+ }
6824
+ child.style.position = 'absolute';
6825
+ child.style.left = tile.left + 'px';
6826
+ child.style.top = tile.top + 'px';
6827
+ child.style.height = tile.height + 'px';
6828
+ child.style.width = tile.width + 'px';
6829
+ if (isNewTile) {
6830
+ imgElement.setAttribute('height', '256px');
6831
+ imgElement.setAttribute('width', '256px');
6832
+ imgElement.setAttribute('src', tile.src);
6833
+ imgElement.setAttribute('alt', this.mapObject.getLocalizedLabel('ImageNotFound'));
6834
+ child.appendChild(imgElement);
6835
+ animateElement.appendChild(child);
6775
6836
  }
6837
+ }
6838
+ else {
6839
+ imgElement = createElement('img');
6840
+ imgElement.setAttribute('height', '256px');
6841
+ imgElement.setAttribute('width', '256px');
6842
+ imgElement.setAttribute('src', tile.src);
6843
+ imgElement.setAttribute('alt', this.mapObject.getLocalizedLabel('ImageNotFound'));
6776
6844
  const child = createElement('div', { id: mapId + '_tile_' + id });
6777
6845
  child.style.position = 'absolute';
6778
6846
  child.style.left = tile.left + 'px';
@@ -6783,11 +6851,27 @@ class LayerPanel {
6783
6851
  if (animateElement) {
6784
6852
  animateElement.appendChild(child);
6785
6853
  }
6786
- id++;
6787
- if (id === this.tiles.length && document.getElementById(this.mapObject.element.id + '_animated_tiles_old')) {
6788
- removeElement(this.mapObject.element.id + '_animated_tiles_old');
6854
+ }
6855
+ if (id === (this.tiles.length - 1) && document.getElementById(this.mapObject.element.id + '_animated_tiles_old')) {
6856
+ removeElement(this.mapObject.element.id + '_animated_tiles_old');
6857
+ }
6858
+ }
6859
+ if (!isNullOrUndefined(this.mapObject.currentTiles)) {
6860
+ for (let l = this.tiles.length; l < animateElement.childElementCount; l++) {
6861
+ let isExistingElement = false;
6862
+ for (let a = 0; a < this.mapObject.currentTiles.childElementCount; a++) {
6863
+ if (!isExistingElement &&
6864
+ this.mapObject.currentTiles.children[a].id === animateElement.children[l].id) {
6865
+ isExistingElement = true;
6866
+ }
6789
6867
  }
6790
- };
6868
+ if (isExistingElement) {
6869
+ animateElement.children[l].style.display = 'none';
6870
+ }
6871
+ else {
6872
+ animateElement.removeChild(animateElement.children[l]);
6873
+ }
6874
+ }
6791
6875
  }
6792
6876
  }, timeOut);
6793
6877
  }
@@ -6956,8 +7040,6 @@ class LayerPanel {
6956
7040
  }
6957
7041
  }
6958
7042
 
6959
- /* eslint-disable @typescript-eslint/no-unused-vars */
6960
- /* eslint-disable jsdoc/require-param */
6961
7043
  /**
6962
7044
  * Represents the annotation elements for map.
6963
7045
  */
@@ -7081,11 +7163,6 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
7081
7163
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7082
7164
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7083
7165
  };
7084
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
7085
- /* eslint-disable @typescript-eslint/no-unused-vars */
7086
- /* eslint-disable radix */
7087
- /* eslint-disable max-len */
7088
- /* eslint-disable valid-jsdoc */
7089
7166
  /**
7090
7167
  * Maps Component file
7091
7168
  */
@@ -7262,18 +7339,20 @@ let Maps = class Maps extends Component {
7262
7339
  this.setCulture();
7263
7340
  }
7264
7341
  renderElements() {
7265
- this.trigger(load, { maps: this });
7266
- this.createSVG();
7267
- this.findBaseAndSubLayers();
7268
- this.createSecondaryElement();
7269
- this.addTabIndex();
7270
- this.themeStyle = getThemeStyle(this.theme);
7271
- this.renderBorder();
7272
- this.renderTitle(this.titleSettings, 'title', null, null);
7273
- this.renderArea();
7274
- this.processRequestJsonData();
7275
- this.renderComplete();
7276
- this.isAddLayer = !this.isTileMap ? false : this.isAddLayer;
7342
+ if (!this.isDestroyed) {
7343
+ this.trigger(load, { maps: this });
7344
+ this.createSVG();
7345
+ this.findBaseAndSubLayers();
7346
+ this.createSecondaryElement();
7347
+ this.addTabIndex();
7348
+ this.themeStyle = getThemeStyle(this.theme);
7349
+ this.renderBorder();
7350
+ this.renderTitle(this.titleSettings, 'title', null, null);
7351
+ this.renderArea();
7352
+ this.processRequestJsonData();
7353
+ this.renderComplete();
7354
+ this.isAddLayer = !this.isTileMap ? false : this.isAddLayer;
7355
+ }
7277
7356
  }
7278
7357
  /**
7279
7358
  * To Initialize the control rendering.
@@ -7322,7 +7401,8 @@ let Maps = class Maps extends Component {
7322
7401
  if (layer.markerSettings[i].dataSource instanceof DataManager) {
7323
7402
  this.serverProcess['request']++;
7324
7403
  dataModule = layer.markerSettings[i].dataSource;
7325
- queryModule = layer.markerSettings[i].query instanceof Query ? layer.markerSettings[i].query : new Query();
7404
+ queryModule = layer.markerSettings[i].query instanceof Query ?
7405
+ layer.markerSettings[i].query : new Query();
7326
7406
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7327
7407
  const dataManager = dataModule.executeQuery(queryModule);
7328
7408
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -7338,7 +7418,8 @@ let Maps = class Maps extends Component {
7338
7418
  if (layer.bubbleSettings[i].dataSource instanceof DataManager) {
7339
7419
  this.serverProcess['request']++;
7340
7420
  dataModule = layer.bubbleSettings[i].dataSource;
7341
- queryModule = layer.bubbleSettings[i].query instanceof Query ? layer.bubbleSettings[i].query : new Query();
7421
+ queryModule = layer.bubbleSettings[i].query instanceof Query ?
7422
+ layer.bubbleSettings[i].query : new Query();
7342
7423
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7343
7424
  const dataManager = dataModule.executeQuery(queryModule);
7344
7425
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -7423,7 +7504,7 @@ let Maps = class Maps extends Component {
7423
7504
  const position = this.getExtraPosition();
7424
7505
  for (let i = 0; i < this.layers.length; i++) {
7425
7506
  if (position.x !== 0 || position.y !== 0) {
7426
- let markerTemplate$$1 = document.getElementById(this.element.id + '_LayerIndex_' + i + '_Markers_Template_Group');
7507
+ const markerTemplate$$1 = document.getElementById(this.element.id + '_LayerIndex_' + i + '_Markers_Template_Group');
7427
7508
  if (!isNullOrUndefined(markerTemplate$$1)) {
7428
7509
  markerTemplate$$1.style.top = this.mapAreaRect.y + position.y + 'px';
7429
7510
  markerTemplate$$1.style.left = this.mapAreaRect.x + position.x + 'px';
@@ -7444,6 +7525,7 @@ let Maps = class Maps extends Component {
7444
7525
  }
7445
7526
  if (!this.isResize) {
7446
7527
  for (let k = 0; k < this.layers[i].markerSettings.length; k++) {
7528
+ // eslint-disable-next-line max-len
7447
7529
  if (this.layers[i].markerSettings[k].selectionSettings && this.layers[i].markerSettings[k].selectionSettings.enable
7448
7530
  && this.layers[i].markerSettings[k].initialMarkerSelection.length > 0) {
7449
7531
  const markerSelectionValues = this.layers[i].markerSettings[k].initialMarkerSelection;
@@ -7629,8 +7711,8 @@ let Maps = class Maps extends Component {
7629
7711
  this.zoomModule.layerCollectionEle = getElementByID(this.element.id + '_Layer_Collections');
7630
7712
  }
7631
7713
  if (this.isTileMap && getElementByID(this.element.id + '_Tile_SVG') && getElementByID(this.element.id + '_tile_parent')) {
7632
- let tileElement = getElementByID(this.element.id + '_tile_parent');
7633
- let tileSvgElement = getElementByID(this.element.id + '_Tile_SVG');
7714
+ const tileElement = getElementByID(this.element.id + '_tile_parent');
7715
+ const tileSvgElement = getElementByID(this.element.id + '_Tile_SVG');
7634
7716
  const tileSvgParentElement = getElementByID(this.element.id + '_Tile_SVG_Parent');
7635
7717
  const tileRect = tileElement.getBoundingClientRect();
7636
7718
  const tileSvgRect = tileSvgElement.getBoundingClientRect();
@@ -7639,8 +7721,10 @@ let Maps = class Maps extends Component {
7639
7721
  tileSvgParentElement.style.left = left + 'px';
7640
7722
  tileSvgParentElement.style.top = top + 'px';
7641
7723
  if (!isNullOrUndefined(this.legendModule) && this.legendModule.totalPages.length > 0) {
7642
- tileElement.style.width = tileSvgElement.style.width = this.legendModule.legendTotalRect.width.toString();
7643
- tileElement.style.height = tileSvgElement.style.height = this.legendModule.legendTotalRect.height.toString();
7724
+ tileElement.style.width = tileSvgElement.style.width =
7725
+ this.legendModule.legendTotalRect.width.toString();
7726
+ tileElement.style.height = tileSvgElement.style.height =
7727
+ this.legendModule.legendTotalRect.height.toString();
7644
7728
  tileSvgParentElement.style.width = this.legendModule.legendTotalRect.width + 'px';
7645
7729
  tileSvgParentElement.style.height = this.legendModule.legendTotalRect.height + 'px';
7646
7730
  }
@@ -7661,7 +7745,7 @@ let Maps = class Maps extends Component {
7661
7745
  if (!isNullOrUndefined(elements) && elements.childElementCount > 0) {
7662
7746
  for (let i = 0; i < elements.childNodes.length; i++) {
7663
7747
  const childElement = elements.childNodes[i];
7664
- if (childElement.tagName === 'g' && childElement.id.indexOf('_Legend_Group') == -1) {
7748
+ if (childElement.tagName === 'g' && childElement.id.indexOf('_Legend_Group') === -1) {
7665
7749
  const layerIndex = parseFloat(childElement.id.split('_LayerIndex_')[1].split('_')[0]);
7666
7750
  for (let j = 0; j < childElement.childNodes.length; j++) {
7667
7751
  const childNode = childElement.childNodes[j];
@@ -7791,7 +7875,7 @@ let Maps = class Maps extends Component {
7791
7875
  break;
7792
7876
  }
7793
7877
  }
7794
- subLayers.map((subLayer, subLayerIndex) => {
7878
+ subLayers.map((subLayer) => {
7795
7879
  if (subLayer.visible) {
7796
7880
  this.layersCollection.push(subLayer);
7797
7881
  }
@@ -7951,6 +8035,9 @@ let Maps = class Maps extends Component {
7951
8035
  }
7952
8036
  keyUpHandler(event) {
7953
8037
  const id = event.target['id'];
8038
+ if (this.isTileMap) {
8039
+ this.removeTileMap();
8040
+ }
7954
8041
  if (event.code === 'Tab' && id.indexOf('_LayerIndex_') > -1 && id.indexOf('shapeIndex') > -1) {
7955
8042
  this.keyboardHighlightSelection(id, event.type);
7956
8043
  }
@@ -7984,6 +8071,13 @@ let Maps = class Maps extends Component {
7984
8071
  }
7985
8072
  keyDownHandler(event) {
7986
8073
  const zoom = this.zoomModule;
8074
+ if ((event.code === 'ArrowUp' || event.code === 'ArrowDown' || event.code === 'ArrowLeft'
8075
+ || event.code === 'ArrowRight') && zoom) {
8076
+ const animatedTiles = document.getElementById(this.element.id + '_animated_tiles');
8077
+ if (this.isTileMap && !isNullOrUndefined(animatedTiles)) {
8078
+ this.currentTiles = animatedTiles.cloneNode(true);
8079
+ }
8080
+ }
7987
8081
  if ((event.key === '+' || event.code === 'Equal') && zoom) {
7988
8082
  zoom.performZoomingByToolBar('zoomin');
7989
8083
  }
@@ -8058,6 +8152,7 @@ let Maps = class Maps extends Component {
8058
8152
  * This method is used to perform the operations when a click operation is performed on maps.
8059
8153
  *
8060
8154
  * @param {PointerEvent} e - Specifies the pointer event on maps.
8155
+ * @returns {void}
8061
8156
  */
8062
8157
  mapsOnClick(e) {
8063
8158
  const targetEle = e.target;
@@ -8122,8 +8217,9 @@ let Maps = class Maps extends Component {
8122
8217
  getClickLocation(targetId, pageX, pageY, targetElement, x, y) {
8123
8218
  let layerIndex = 0;
8124
8219
  let latLongValue;
8125
- if (targetId.indexOf('_LayerIndex_') !== -1 && !this.isTileMap && (parseInt(this.mouseDownEvent['x']) === parseInt(this.mouseClickEvent['x']))
8126
- && (parseInt(this.mouseDownEvent['y']) === parseInt(this.mouseClickEvent['y']))) {
8220
+ if (targetId.indexOf('_LayerIndex_') !== -1 && !this.isTileMap &&
8221
+ (parseInt(this.mouseDownEvent['x'], 10) === parseInt(this.mouseClickEvent['x'], 10)) &&
8222
+ (parseInt(this.mouseDownEvent['y'], 10) === parseInt(this.mouseClickEvent['y'], 10))) {
8127
8223
  layerIndex = parseFloat(targetId.split('_LayerIndex_')[1].split('_')[0]);
8128
8224
  if (this.layers[layerIndex].geometryType === 'Normal') {
8129
8225
  if (targetId.indexOf('_shapeIndex_') > -1) {
@@ -8160,12 +8256,21 @@ let Maps = class Maps extends Component {
8160
8256
  latLongValue = this.getGeoLocation(layerIndex, x, y);
8161
8257
  }
8162
8258
  }
8163
- else if (this.isTileMap && (parseInt(this.mouseDownEvent['x']) === parseInt(this.mouseClickEvent['x']))
8164
- && (parseInt(this.mouseDownEvent['y']) === parseInt(this.mouseClickEvent['y']))) {
8259
+ else if (this.isTileMap && (parseInt(this.mouseDownEvent['x'], 10) === parseInt(this.mouseClickEvent['x'], 10)) &&
8260
+ (parseInt(this.mouseDownEvent['y'], 10) === parseInt(this.mouseClickEvent['y'], 10))) {
8165
8261
  latLongValue = this.getTileGeoLocation(x, y);
8166
8262
  }
8167
8263
  return latLongValue;
8168
8264
  }
8265
+ removeTileMap() {
8266
+ const animateElement = document.getElementById(this.element.id + '_animated_tiles');
8267
+ if (!isNullOrUndefined(this.currentTiles) && animateElement.childElementCount < this.currentTiles.childElementCount) {
8268
+ for (let l = animateElement.childElementCount - 1; l >= this.currentTiles.childElementCount; l--) {
8269
+ animateElement.removeChild(animateElement.children[l]);
8270
+ }
8271
+ }
8272
+ this.currentTiles = null;
8273
+ }
8169
8274
  /**
8170
8275
  * This method is used to perform operations when mouse click on maps.
8171
8276
  *
@@ -8197,6 +8302,9 @@ let Maps = class Maps extends Component {
8197
8302
  pageY = e.pageY;
8198
8303
  target = e.target;
8199
8304
  }
8305
+ if (this.isTileMap) {
8306
+ this.removeTileMap();
8307
+ }
8200
8308
  if (this.isTouch) {
8201
8309
  if (targetEle.id.indexOf('_ToolBar') === -1) {
8202
8310
  const latLongValue = this.getClickLocation(targetId, pageX, pageY, targetEle, pageX, pageY);
@@ -8229,6 +8337,10 @@ let Maps = class Maps extends Component {
8229
8337
  }
8230
8338
  const rect = this.element.getBoundingClientRect();
8231
8339
  const element = e.target;
8340
+ const animatedTiles = document.getElementById(this.element.id + '_animated_tiles');
8341
+ if (this.isTileMap && !isNullOrUndefined(animatedTiles)) {
8342
+ this.currentTiles = animatedTiles.cloneNode(true);
8343
+ }
8232
8344
  if (element.id.indexOf('_ToolBar') === -1) {
8233
8345
  const markerModule = this.markerModule;
8234
8346
  if (element.id.indexOf('shapeIndex') > -1 || element.id.indexOf('Tile') > -1) {
@@ -8261,6 +8373,7 @@ let Maps = class Maps extends Component {
8261
8373
  * This method is used to perform operations when performing the double click operation on maps.
8262
8374
  *
8263
8375
  * @param {PointerEvent} e - Specifies the pointer event.
8376
+ * @returns {void}
8264
8377
  */
8265
8378
  mapsOnDoubleClick(e) {
8266
8379
  this.notify('dblclick', e);
@@ -8284,8 +8397,10 @@ let Maps = class Maps extends Component {
8284
8397
  latitude = latLongValue['latitude'];
8285
8398
  longitude = latLongValue['longitude'];
8286
8399
  }
8287
- const doubleClickArgs = { cancel: false, name: doubleClick, x: e.clientX, y: e.clientY,
8288
- target: targetId, latitude: latitude, longitude: longitude, isShapeSelected: null };
8400
+ const doubleClickArgs = {
8401
+ cancel: false, name: doubleClick, x: e.clientX, y: e.clientY,
8402
+ target: targetId, latitude: latitude, longitude: longitude, isShapeSelected: null
8403
+ };
8289
8404
  this.trigger('doubleClick', doubleClickArgs);
8290
8405
  }
8291
8406
  }
@@ -8376,28 +8491,30 @@ let Maps = class Maps extends Component {
8376
8491
  * @param e - Specifies the arguments of window resize event.
8377
8492
  */
8378
8493
  mapsOnResize(e) {
8379
- this.isResize = this.isReset = true;
8380
- const args = {
8381
- cancel: false,
8382
- name: resize,
8383
- previousSize: this.availableSize,
8384
- currentSize: calculateSize(this),
8385
- maps: this
8386
- };
8387
- this.trigger(resize, args);
8388
- if (!args.cancel) {
8389
- if (this.resizeTo) {
8390
- clearTimeout(this.resizeTo);
8391
- }
8392
- if (!isNullOrUndefined(this.element) && this.element.classList.contains('e-maps')) {
8393
- this.resizeTo = setTimeout(() => {
8394
- this.unWireEVents();
8395
- this.createSVG();
8396
- this.refreshing = true;
8397
- this.wireEVents();
8398
- this.render();
8399
- this.refreshing = false;
8400
- }, 500);
8494
+ if (!this.isDestroyed) {
8495
+ this.isResize = this.isReset = true;
8496
+ const args = {
8497
+ cancel: false,
8498
+ name: resize,
8499
+ previousSize: this.availableSize,
8500
+ currentSize: calculateSize(this),
8501
+ maps: this
8502
+ };
8503
+ this.trigger(resize, args);
8504
+ if (!args.cancel) {
8505
+ if (this.resizeTo) {
8506
+ clearTimeout(this.resizeTo);
8507
+ }
8508
+ if (!isNullOrUndefined(this.element) && this.element.classList.contains('e-maps')) {
8509
+ this.resizeTo = setTimeout(() => {
8510
+ this.unWireEVents();
8511
+ this.createSVG();
8512
+ this.refreshing = true;
8513
+ this.wireEVents();
8514
+ this.render();
8515
+ this.refreshing = false;
8516
+ }, 500);
8517
+ }
8401
8518
  }
8402
8519
  }
8403
8520
  return false;
@@ -8412,69 +8529,79 @@ let Maps = class Maps extends Component {
8412
8529
  * @returns {void}
8413
8530
  */
8414
8531
  zoomByPosition(centerPosition, zoomFactor) {
8415
- this.zoomNotApplied = false;
8416
- let isRefresh = this.zoomSettings.zoomFactor == zoomFactor;
8417
- if (!this.isTileMap && this.zoomModule) {
8418
- if (!isNullOrUndefined(centerPosition)) {
8419
- this.zoomSettings.zoomFactor = zoomFactor;
8420
- isRefresh = this.centerPosition.latitude === centerPosition.latitude && this.centerPosition.longitude === centerPosition.longitude ? true : isRefresh;
8532
+ if (!this.isDestroyed) {
8533
+ this.zoomNotApplied = false;
8534
+ let isRefresh = this.zoomSettings.zoomFactor === zoomFactor;
8535
+ if (!this.isTileMap && this.zoomModule) {
8536
+ if (!isNullOrUndefined(centerPosition)) {
8537
+ this.zoomSettings.zoomFactor = zoomFactor;
8538
+ isRefresh = this.centerPosition.latitude === centerPosition.latitude &&
8539
+ this.centerPosition.longitude === centerPosition.longitude ? true : isRefresh;
8540
+ this.centerPosition = centerPosition;
8541
+ this.isZoomByPosition = true;
8542
+ this.mapScaleValue = null;
8543
+ }
8544
+ else {
8545
+ this.zoomSettings.zoomFactor = zoomFactor;
8546
+ this.isZoomByPosition = true;
8547
+ this.mapScaleValue = null;
8548
+ }
8549
+ }
8550
+ else if (this.zoomModule) {
8551
+ this.tileZoomLevel = this.zoomSettings.zoomFactor = zoomFactor;
8552
+ isRefresh = this.centerPosition.latitude === centerPosition.latitude &&
8553
+ this.centerPosition.longitude === centerPosition.longitude ? true : isRefresh;
8421
8554
  this.centerPosition = centerPosition;
8422
8555
  this.isZoomByPosition = true;
8423
- this.mapScaleValue = null;
8424
8556
  }
8425
- else {
8426
- this.zoomSettings.zoomFactor = zoomFactor;
8427
- this.isZoomByPosition = true;
8428
- this.mapScaleValue = null;
8557
+ if (isRefresh) {
8558
+ this.refresh();
8429
8559
  }
8430
8560
  }
8431
- else if (this.zoomModule) {
8432
- this.tileZoomLevel = this.zoomSettings.zoomFactor = zoomFactor;
8433
- isRefresh = this.centerPosition.latitude === centerPosition.latitude && this.centerPosition.longitude === centerPosition.longitude ? true : isRefresh;
8434
- this.centerPosition = centerPosition;
8435
- this.isZoomByPosition = true;
8436
- }
8437
- if (isRefresh) {
8438
- this.refresh();
8439
- }
8440
8561
  }
8441
8562
  /**
8442
8563
  * This method is used to perform panning by specifying the direction.
8443
8564
  *
8444
8565
  * @param {PanDirection} direction - Specifies the direction in which the panning is performed.
8445
8566
  * @param {PointerEvent | TouchEvent} mouseLocation - Specifies the location of the mouse pointer in maps.
8567
+ * @returns {void}
8446
8568
  */
8447
8569
  panByDirection(direction, mouseLocation) {
8448
- let xDiff = 0;
8449
- let yDiff = 0;
8450
- switch (direction) {
8451
- case 'Left':
8452
- xDiff = -(this.mapAreaRect.width / 7);
8453
- break;
8454
- case 'Right':
8455
- xDiff = (this.mapAreaRect.width / 7);
8456
- break;
8457
- case 'Top':
8458
- yDiff = -(this.mapAreaRect.height / 7);
8459
- break;
8460
- case 'Bottom':
8461
- yDiff = (this.mapAreaRect.height / 7);
8462
- break;
8463
- }
8464
- if (this.zoomModule) {
8465
- this.zoomModule.panning(direction, xDiff, yDiff, mouseLocation);
8570
+ if (!this.isDestroyed) {
8571
+ let xDiff = 0;
8572
+ let yDiff = 0;
8573
+ switch (direction) {
8574
+ case 'Left':
8575
+ xDiff = -(this.mapAreaRect.width / 7);
8576
+ break;
8577
+ case 'Right':
8578
+ xDiff = (this.mapAreaRect.width / 7);
8579
+ break;
8580
+ case 'Top':
8581
+ yDiff = -(this.mapAreaRect.height / 7);
8582
+ break;
8583
+ case 'Bottom':
8584
+ yDiff = (this.mapAreaRect.height / 7);
8585
+ break;
8586
+ }
8587
+ if (this.zoomModule) {
8588
+ this.zoomModule.panning(direction, xDiff, yDiff, mouseLocation);
8589
+ }
8466
8590
  }
8467
8591
  }
8468
8592
  /**
8469
8593
  * This method is used to add the layers dynamically to the maps.
8470
8594
  *
8471
8595
  * @param {Object} layer - Specifies the layer for the maps.
8596
+ * @returns {void}
8472
8597
  */
8473
8598
  addLayer(layer) {
8474
- let mapsLayer = this.layers;
8475
- mapsLayer.push(layer);
8476
- this.isAddLayer = true;
8477
- this.layers = mapsLayer;
8599
+ if (!this.isDestroyed) {
8600
+ const mapsLayer = this.layers;
8601
+ mapsLayer.push(layer);
8602
+ this.isAddLayer = true;
8603
+ this.layers = mapsLayer;
8604
+ }
8478
8605
  }
8479
8606
  /**
8480
8607
  * This method is used to remove a layer from map.
@@ -8483,9 +8610,11 @@ let Maps = class Maps extends Component {
8483
8610
  * @returns {void}
8484
8611
  */
8485
8612
  removeLayer(index) {
8486
- let mapsLayer = this.layers;
8487
- mapsLayer.splice(index, 1);
8488
- this.layers = mapsLayer;
8613
+ if (!this.isDestroyed) {
8614
+ const mapsLayer = this.layers;
8615
+ mapsLayer.splice(index, 1);
8616
+ this.layers = mapsLayer;
8617
+ }
8489
8618
  }
8490
8619
  /**
8491
8620
  * This method is used to add markers dynamically in the maps.
@@ -8497,14 +8626,16 @@ let Maps = class Maps extends Component {
8497
8626
  * @returns {void}
8498
8627
  */
8499
8628
  addMarker(layerIndex, markerCollection) {
8500
- const layerEle = document.getElementById(this.element.id + '_LayerIndex_' + layerIndex);
8501
- if (markerCollection.length > 0 && layerEle) {
8502
- for (const newMarker of markerCollection) {
8503
- this.layersCollection[layerIndex].markerSettings.push(new MarkerSettings(this, 'markerSettings', newMarker));
8629
+ if (!this.isDestroyed) {
8630
+ const layerEle = document.getElementById(this.element.id + '_LayerIndex_' + layerIndex);
8631
+ if (markerCollection.length > 0 && layerEle) {
8632
+ for (const newMarker of markerCollection) {
8633
+ this.layersCollection[layerIndex].markerSettings.push(new MarkerSettings(this, 'markerSettings', newMarker));
8634
+ }
8635
+ const markerModule = new Marker(this);
8636
+ markerModule.markerRender(this, layerEle, layerIndex, this.mapLayerPanel['currentFactor'], 'AddMarker');
8637
+ this.arrangeTemplate();
8504
8638
  }
8505
- const markerModule = new Marker(this);
8506
- markerModule.markerRender(this, layerEle, layerIndex, this.mapLayerPanel['currentFactor'], 'AddMarker');
8507
- this.arrangeTemplate();
8508
8639
  }
8509
8640
  }
8510
8641
  /**
@@ -8517,93 +8648,96 @@ let Maps = class Maps extends Component {
8517
8648
  * @returns {void}
8518
8649
  */
8519
8650
  shapeSelection(layerIndex, propertyName, name, enable) {
8520
- let targetEle;
8521
- let subLayerIndex;
8522
- const popertyNameArray = Array.isArray(propertyName) ? propertyName : Array(propertyName);
8523
- if (isNullOrUndefined(enable)) {
8524
- enable = true;
8525
- }
8526
- const selectionsettings = this.layers[layerIndex].selectionSettings;
8527
- if (!selectionsettings.enableMultiSelect && this.legendSelection && enable) {
8528
- this.removeShapeSelection();
8529
- }
8530
- if (this.layers[layerIndex].type === 'SubLayer') {
8531
- for (let i = 0; i < this.layersCollection.length; i++) {
8532
- if ((this.layersCollection[i].shapeData === this.layers[layerIndex].shapeData)) {
8533
- subLayerIndex = i;
8534
- break;
8651
+ if (!this.isDestroyed) {
8652
+ let targetEle;
8653
+ let subLayerIndex;
8654
+ const popertyNameArray = Array.isArray(propertyName) ? propertyName : Array(propertyName);
8655
+ if (isNullOrUndefined(enable)) {
8656
+ enable = true;
8657
+ }
8658
+ const selectionsettings = this.layers[layerIndex].selectionSettings;
8659
+ if (!selectionsettings.enableMultiSelect && this.legendSelection && enable) {
8660
+ this.removeShapeSelection();
8661
+ }
8662
+ if (this.layers[layerIndex].type === 'SubLayer') {
8663
+ for (let i = 0; i < this.layersCollection.length; i++) {
8664
+ if ((this.layersCollection[i].shapeData === this.layers[layerIndex].shapeData)) {
8665
+ subLayerIndex = i;
8666
+ break;
8667
+ }
8535
8668
  }
8536
8669
  }
8537
- }
8538
- if (selectionsettings.enable) {
8539
- let targetId;
8540
- let dataIndex;
8541
- let shapeIndex;
8542
- let indexValue;
8543
- let shapeDataValue;
8544
- let data;
8545
- const shapeData = this.layers[layerIndex].shapeData['features'];
8546
- for (let i = 0; i < shapeData.length; i++) {
8547
- for (let j = 0; j < popertyNameArray.length; j++) {
8548
- const propertyName = !isNullOrUndefined(shapeData[i]['properties'][popertyNameArray[j]])
8549
- && isNaN(shapeData[i]['properties'][popertyNameArray[j]]) ?
8550
- shapeData[i]['properties'][popertyNameArray[j]].toLowerCase() : shapeData[i]['properties'][popertyNameArray[j]];
8551
- const shapeName = !isNullOrUndefined(name) && typeof name === 'string' ? name.toLowerCase() : name;
8552
- let k;
8553
- if (propertyName === shapeName) {
8554
- if (!isNullOrUndefined(this.layers[layerIndex].shapeSettings.colorValuePath)) {
8555
- k = checkShapeDataFields(this.layers[layerIndex].dataSource, shapeData[i]['properties'], this.layers[layerIndex].shapeDataPath, this.layers[layerIndex].shapePropertyPath, this.layers[layerIndex]);
8556
- }
8557
- const baseLayer = this.layers[layerIndex];
8558
- if (this.baseLayerIndex >= 0 && baseLayer.isBaseLayer) {
8559
- indexValue = 0;
8560
- }
8561
- else if (this.layers[layerIndex].type === 'SubLayer') {
8562
- indexValue = subLayerIndex;
8563
- }
8564
- targetId = this.element.id + '_' + 'LayerIndex_' + indexValue + '_shapeIndex_' + i + '_dataIndex_' + k;
8565
- targetEle = getElement(targetId);
8566
- if (isNullOrUndefined(k) && isNullOrUndefined(targetEle)) {
8567
- targetId = this.element.id + '_' + 'LayerIndex_' + layerIndex + '_shapeIndex_' + i + '_dataIndex_null';
8670
+ if (selectionsettings.enable) {
8671
+ let targetId;
8672
+ let dataIndex;
8673
+ let shapeIndex;
8674
+ let indexValue;
8675
+ let shapeDataValue;
8676
+ let data;
8677
+ const shapeData = this.layers[layerIndex].shapeData['features'];
8678
+ for (let i = 0; i < shapeData.length; i++) {
8679
+ for (let j = 0; j < popertyNameArray.length; j++) {
8680
+ const propertyName = !isNullOrUndefined(shapeData[i]['properties'][popertyNameArray[j]])
8681
+ && isNaN(shapeData[i]['properties'][popertyNameArray[j]]) ?
8682
+ shapeData[i]['properties'][popertyNameArray[j]].toLowerCase() : shapeData[i]['properties'][popertyNameArray[j]];
8683
+ const shapeName = !isNullOrUndefined(name) && typeof name === 'string' ? name.toLowerCase() : name;
8684
+ let k;
8685
+ if (propertyName === shapeName) {
8686
+ if (!isNullOrUndefined(this.layers[layerIndex].shapeSettings.colorValuePath)) {
8687
+ k = checkShapeDataFields(this.layers[layerIndex].dataSource, shapeData[i]['properties'], this.layers[layerIndex].shapeDataPath, this.layers[layerIndex].shapePropertyPath, this.layers[layerIndex]);
8688
+ }
8689
+ const baseLayer = this.layers[layerIndex];
8690
+ if (this.baseLayerIndex >= 0 && baseLayer.isBaseLayer) {
8691
+ indexValue = 0;
8692
+ }
8693
+ else if (this.layers[layerIndex].type === 'SubLayer') {
8694
+ indexValue = subLayerIndex;
8695
+ }
8696
+ targetId = this.element.id + '_' + 'LayerIndex_' + indexValue + '_shapeIndex_' + i + '_dataIndex_' + k;
8568
8697
  targetEle = getElement(targetId);
8569
- }
8570
- shapeIndex = parseInt(targetEle.id.split('_shapeIndex_')[1].split('_')[0], 10);
8571
- shapeDataValue = this.layers[layerIndex].shapeData['features']['length'] > shapeIndex ?
8572
- this.layers[layerIndex].shapeData['features'][shapeIndex]['properties'] : null;
8573
- dataIndex = parseInt(targetEle.id.split('_dataIndex_')[1].split('_')[0], 10);
8574
- data = isNullOrUndefined(dataIndex) ? null : this.layers[layerIndex].dataSource[dataIndex];
8575
- if (enable) {
8576
- triggerItemSelectionEvent(selectionsettings, this, targetEle, shapeDataValue, data);
8577
- this.shapeSelectionClass = getElement('ShapeselectionMap');
8578
- if (this.legendSettings.visible && targetEle.id.indexOf('_MarkerIndex_') === -1) {
8579
- this.legendModule.shapeHighLightAndSelection(targetEle, data, selectionsettings, 'selection', layerIndex);
8698
+ if (isNullOrUndefined(k) && isNullOrUndefined(targetEle)) {
8699
+ targetId = this.element.id + '_' + 'LayerIndex_' + layerIndex + '_shapeIndex_' + i + '_dataIndex_null';
8700
+ targetEle = getElement(targetId);
8580
8701
  }
8581
- const shapeToggled = this.legendSettings.visible ? this.legendModule.shapeToggled : true;
8582
- if (shapeToggled) {
8583
- targetEle.setAttribute('class', 'ShapeselectionMapStyle');
8584
- if (this.selectedElementId.indexOf(targetEle.getAttribute('id')) === -1) {
8585
- this.selectedElementId.push(targetEle.getAttribute('id'));
8702
+ shapeIndex = parseInt(targetEle.id.split('_shapeIndex_')[1].split('_')[0], 10);
8703
+ shapeDataValue = this.layers[layerIndex].shapeData['features']['length'] > shapeIndex ?
8704
+ this.layers[layerIndex].shapeData['features'][shapeIndex]['properties'] : null;
8705
+ dataIndex = parseInt(targetEle.id.split('_dataIndex_')[1].split('_')[0], 10);
8706
+ data = isNullOrUndefined(dataIndex) ? null : this.layers[layerIndex].dataSource[dataIndex];
8707
+ if (enable) {
8708
+ triggerItemSelectionEvent(selectionsettings, this, targetEle, shapeDataValue, data);
8709
+ this.shapeSelectionClass = getElement('ShapeselectionMap');
8710
+ if (this.legendSettings.visible && targetEle.id.indexOf('_MarkerIndex_') === -1) {
8711
+ this.legendModule.shapeHighLightAndSelection(targetEle, data, selectionsettings, 'selection', layerIndex);
8586
8712
  }
8587
- if (!selectionsettings.enableMultiSelect) {
8588
- return;
8713
+ const shapeToggled = this.legendSettings.visible ? this.legendModule.shapeToggled : true;
8714
+ if (shapeToggled) {
8715
+ targetEle.setAttribute('class', 'ShapeselectionMapStyle');
8716
+ if (this.selectedElementId.indexOf(targetEle.getAttribute('id')) === -1) {
8717
+ this.selectedElementId.push(targetEle.getAttribute('id'));
8718
+ }
8719
+ if (!selectionsettings.enableMultiSelect) {
8720
+ return;
8721
+ }
8589
8722
  }
8590
8723
  }
8591
- }
8592
- else {
8593
- this.legendSelection = (!selectionsettings.enableMultiSelect && !this.legendSelection) ?
8594
- true : this.legendSelection;
8595
- if (this.legendSettings.visible && targetEle.id.indexOf('_MarkerIndex_') === -1 &&
8596
- targetEle.getAttribute('class') === 'ShapeselectionMapStyle') {
8597
- this.legendModule.shapeHighLightAndSelection(targetEle, data, selectionsettings, 'selection', layerIndex);
8598
- }
8599
- const shapeToggled = this.legendSettings.visible ? this.legendModule.shapeToggled : true;
8600
- if (shapeToggled) {
8601
- removeClass(targetEle);
8602
- const selectedElementIdIndex = this.selectedElementId.indexOf(targetEle.getAttribute('id'));
8603
- if (selectedElementIdIndex !== -1) {
8604
- this.selectedElementId.splice(selectedElementIdIndex, 1);
8605
- if (!selectionsettings.enableMultiSelect && this.legendSelection && this.selectedElementId.length > 0) {
8606
- this.removeShapeSelection();
8724
+ else {
8725
+ this.legendSelection = (!selectionsettings.enableMultiSelect && !this.legendSelection) ?
8726
+ true : this.legendSelection;
8727
+ if (this.legendSettings.visible && targetEle.id.indexOf('_MarkerIndex_') === -1 &&
8728
+ targetEle.getAttribute('class') === 'ShapeselectionMapStyle') {
8729
+ this.legendModule.shapeHighLightAndSelection(targetEle, data, selectionsettings, 'selection', layerIndex);
8730
+ }
8731
+ const shapeToggled = this.legendSettings.visible ? this.legendModule.shapeToggled : true;
8732
+ if (shapeToggled) {
8733
+ removeClass(targetEle);
8734
+ const selectedElementIdIndex = this.selectedElementId.indexOf(targetEle.getAttribute('id'));
8735
+ if (selectedElementIdIndex !== -1) {
8736
+ this.selectedElementId.splice(selectedElementIdIndex, 1);
8737
+ if (!selectionsettings.enableMultiSelect && this.legendSelection
8738
+ && this.selectedElementId.length > 0) {
8739
+ this.removeShapeSelection();
8740
+ }
8607
8741
  }
8608
8742
  }
8609
8743
  }
@@ -8623,53 +8757,55 @@ let Maps = class Maps extends Component {
8623
8757
  * @returns {void}
8624
8758
  */
8625
8759
  zoomToCoordinates(minLatitude, minLongitude, maxLatitude, maxLongitude) {
8626
- let centerLatitude;
8627
- let centerLongtitude;
8628
- let isTwoCoordinates = false;
8629
- this.centerPosition = {
8630
- latitude: null,
8631
- longitude: null
8632
- };
8633
- this.isZoomByPosition = false;
8634
- if (isNullOrUndefined(maxLatitude) && isNullOrUndefined(maxLongitude)
8635
- || isNullOrUndefined(minLatitude) && isNullOrUndefined(minLongitude)) {
8636
- minLatitude = isNullOrUndefined(minLatitude) ? 0 : minLatitude;
8637
- minLongitude = isNullOrUndefined(minLatitude) ? 0 : minLongitude;
8638
- maxLatitude = isNullOrUndefined(maxLatitude) ? minLatitude : maxLatitude;
8639
- maxLongitude = isNullOrUndefined(maxLongitude) ? minLongitude : maxLongitude;
8640
- isTwoCoordinates = true;
8641
- }
8642
- if (minLatitude > maxLatitude) {
8643
- [minLatitude, maxLatitude] = [maxLatitude, minLatitude];
8644
- }
8645
- if (minLongitude > maxLongitude) {
8646
- [minLongitude, maxLongitude] = [maxLongitude, minLongitude];
8647
- }
8648
- if (!isTwoCoordinates) {
8649
- centerLatitude = (minLatitude + maxLatitude) / 2;
8650
- centerLongtitude = (minLongitude + maxLongitude) / 2;
8760
+ if (!this.isDestroyed) {
8761
+ let centerLatitude;
8762
+ let centerLongtitude;
8763
+ let isTwoCoordinates = false;
8764
+ this.centerPosition = {
8765
+ latitude: null,
8766
+ longitude: null
8767
+ };
8768
+ this.isZoomByPosition = false;
8769
+ if (isNullOrUndefined(maxLatitude) && isNullOrUndefined(maxLongitude)
8770
+ || isNullOrUndefined(minLatitude) && isNullOrUndefined(minLongitude)) {
8771
+ minLatitude = isNullOrUndefined(minLatitude) ? 0 : minLatitude;
8772
+ minLongitude = isNullOrUndefined(minLatitude) ? 0 : minLongitude;
8773
+ maxLatitude = isNullOrUndefined(maxLatitude) ? minLatitude : maxLatitude;
8774
+ maxLongitude = isNullOrUndefined(maxLongitude) ? minLongitude : maxLongitude;
8775
+ isTwoCoordinates = true;
8776
+ }
8777
+ if (minLatitude > maxLatitude) {
8778
+ [minLatitude, maxLatitude] = [maxLatitude, minLatitude];
8779
+ }
8780
+ if (minLongitude > maxLongitude) {
8781
+ [minLongitude, maxLongitude] = [maxLongitude, minLongitude];
8782
+ }
8783
+ if (!isTwoCoordinates) {
8784
+ centerLatitude = (minLatitude + maxLatitude) / 2;
8785
+ centerLongtitude = (minLongitude + maxLongitude) / 2;
8786
+ }
8787
+ else {
8788
+ centerLatitude = (minLatitude + maxLatitude);
8789
+ centerLongtitude = (minLongitude + maxLongitude);
8790
+ }
8791
+ this.centerLatOfGivenLocation = centerLatitude;
8792
+ this.centerLongOfGivenLocation = centerLongtitude;
8793
+ this.minLatOfGivenLocation = minLatitude;
8794
+ this.minLongOfGivenLocation = minLongitude;
8795
+ this.maxLatOfGivenLocation = maxLatitude;
8796
+ this.maxLongOfGivenLocation = maxLongitude;
8797
+ this.zoomNotApplied = true;
8798
+ this.scaleOfGivenLocation = calculateZoomLevel(minLatitude, maxLatitude, minLongitude, maxLongitude, this.mapAreaRect.width, this.mapAreaRect.height, this);
8799
+ const zoomArgs = {
8800
+ cancel: false, name: 'zoom', type: zoomIn, maps: this,
8801
+ tileTranslatePoint: {}, translatePoint: {},
8802
+ tileZoomLevel: this.isTileMap ? { previous: this.tileZoomLevel, current: this.scaleOfGivenLocation } : {},
8803
+ scale: !this.isTileMap ? { previous: this.scale, current: this.scaleOfGivenLocation } :
8804
+ { previous: this.tileZoomLevel, current: this.scaleOfGivenLocation }
8805
+ };
8806
+ this.trigger('zoom', zoomArgs);
8807
+ this.refresh();
8651
8808
  }
8652
- else {
8653
- centerLatitude = (minLatitude + maxLatitude);
8654
- centerLongtitude = (minLongitude + maxLongitude);
8655
- }
8656
- this.centerLatOfGivenLocation = centerLatitude;
8657
- this.centerLongOfGivenLocation = centerLongtitude;
8658
- this.minLatOfGivenLocation = minLatitude;
8659
- this.minLongOfGivenLocation = minLongitude;
8660
- this.maxLatOfGivenLocation = maxLatitude;
8661
- this.maxLongOfGivenLocation = maxLongitude;
8662
- this.zoomNotApplied = true;
8663
- this.scaleOfGivenLocation = calculateZoomLevel(minLatitude, maxLatitude, minLongitude, maxLongitude, this.mapAreaRect.width, this.mapAreaRect.height, this);
8664
- const zoomArgs = {
8665
- cancel: false, name: 'zoom', type: zoomIn, maps: this,
8666
- tileTranslatePoint: {}, translatePoint: {},
8667
- tileZoomLevel: this.isTileMap ? { previous: this.tileZoomLevel, current: this.scaleOfGivenLocation } : {},
8668
- scale: !this.isTileMap ? { previous: this.scale, current: this.scaleOfGivenLocation } :
8669
- { previous: this.tileZoomLevel, current: this.scaleOfGivenLocation }
8670
- };
8671
- this.trigger('zoom', zoomArgs);
8672
- this.refresh();
8673
8809
  }
8674
8810
  /**
8675
8811
  * This method is used to remove multiple selected shapes in the maps.
@@ -8720,6 +8856,8 @@ let Maps = class Maps extends Component {
8720
8856
  }
8721
8857
  /**
8722
8858
  * This method disposes the maps component.
8859
+ *
8860
+ * @returns {void}
8723
8861
  */
8724
8862
  destroy() {
8725
8863
  this.unWireEVents();
@@ -8776,91 +8914,94 @@ let Maps = class Maps extends Component {
8776
8914
  * @private
8777
8915
  */
8778
8916
  onPropertyChanged(newProp, oldProp) {
8779
- let render = false;
8780
- let isMarker = false;
8781
- let isLayer = false;
8782
- let isStaticMapType = false;
8783
- let layerEle;
8784
- if (newProp['layers']) {
8785
- const newLayerLength = Object.keys(newProp['layers']).length;
8786
- layerEle = document.getElementById(this.element.id + '_LayerIndex_' + (newLayerLength - 1));
8787
- }
8788
- for (const prop of Object.keys(newProp)) {
8789
- switch (prop) {
8790
- case 'background':
8791
- this.renderBorder();
8792
- break;
8793
- case 'height':
8794
- case 'width':
8795
- case 'layers':
8796
- case 'projectionType':
8797
- case 'centerPosition':
8798
- case 'legendSettings':
8799
- case 'baseLayerIndex':
8800
- if (prop === 'layers') {
8801
- isLayer = true;
8802
- const layerPropLength = Object.keys(newProp.layers).length;
8803
- for (let x = 0; x < layerPropLength; x++) {
8804
- if (!isNullOrUndefined(newProp.layers[x])) {
8805
- const collection = Object.keys(newProp.layers[x]);
8806
- for (const collectionProp of collection) {
8807
- if ((collectionProp === 'layerType' && newProp.layers[x].layerType !== 'Geometry') || (isNullOrUndefined(this.layers[x].shapeData)
8808
- && !isNullOrUndefined(this.layers[x].urlTemplate) && this.layers[x].urlTemplate !== '')) {
8809
- this.isReset = true;
8810
- }
8811
- else if (collectionProp === 'markerSettings') {
8812
- isMarker = true;
8813
- }
8814
- else if (collectionProp === 'staticMapType') {
8815
- isStaticMapType = true;
8917
+ if (!this.isDestroyed) {
8918
+ let render = false;
8919
+ let isMarker = false;
8920
+ let isLayer = false;
8921
+ let isStaticMapType = false;
8922
+ let layerEle;
8923
+ if (newProp['layers']) {
8924
+ const newLayerLength = Object.keys(newProp['layers']).length;
8925
+ layerEle = document.getElementById(this.element.id + '_LayerIndex_' + (newLayerLength - 1));
8926
+ }
8927
+ for (const prop of Object.keys(newProp)) {
8928
+ switch (prop) {
8929
+ case 'background':
8930
+ this.renderBorder();
8931
+ break;
8932
+ case 'height':
8933
+ case 'width':
8934
+ case 'layers':
8935
+ case 'projectionType':
8936
+ case 'centerPosition':
8937
+ case 'legendSettings':
8938
+ case 'baseLayerIndex':
8939
+ if (prop === 'layers') {
8940
+ isLayer = true;
8941
+ const layerPropLength = Object.keys(newProp.layers).length;
8942
+ for (let x = 0; x < layerPropLength; x++) {
8943
+ if (!isNullOrUndefined(newProp.layers[x])) {
8944
+ const collection = Object.keys(newProp.layers[x]);
8945
+ for (const collectionProp of collection) {
8946
+ if ((collectionProp === 'layerType' && newProp.layers[x].layerType !== 'Geometry') ||
8947
+ (isNullOrUndefined(this.layers[x].shapeData)
8948
+ && !isNullOrUndefined(this.layers[x].urlTemplate) && this.layers[x].urlTemplate !== '')) {
8949
+ this.isReset = true;
8950
+ }
8951
+ else if (collectionProp === 'markerSettings') {
8952
+ isMarker = true;
8953
+ }
8954
+ else if (collectionProp === 'staticMapType') {
8955
+ isStaticMapType = true;
8956
+ }
8816
8957
  }
8817
8958
  }
8818
8959
  }
8819
8960
  }
8820
- }
8821
- render = true;
8822
- break;
8823
- case 'zoomSettings':
8824
- if (!isNullOrUndefined(oldProp.zoomSettings)) {
8825
- if (newProp.zoomSettings.zoomFactor !== oldProp.zoomSettings.zoomFactor && !isLayer) {
8826
- render = false;
8827
- }
8828
- else if (newProp.zoomSettings.shouldZoomInitially !== oldProp.zoomSettings.shouldZoomInitially) {
8829
- this.zoomSettings.zoomFactor = 1;
8830
- render = true;
8831
- }
8832
- else if (newProp.zoomSettings.enable !== oldProp.zoomSettings.enable) {
8833
- this.zoomSettings.zoomFactor = 1;
8834
- render = true;
8835
- }
8836
- else {
8837
- render = true;
8961
+ render = true;
8962
+ break;
8963
+ case 'zoomSettings':
8964
+ if (!isNullOrUndefined(oldProp.zoomSettings)) {
8965
+ if (newProp.zoomSettings.zoomFactor !== oldProp.zoomSettings.zoomFactor && !isLayer) {
8966
+ render = false;
8967
+ }
8968
+ else if (newProp.zoomSettings.shouldZoomInitially !== oldProp.zoomSettings.shouldZoomInitially) {
8969
+ this.zoomSettings.zoomFactor = 1;
8970
+ render = true;
8971
+ }
8972
+ else if (newProp.zoomSettings.enable !== oldProp.zoomSettings.enable) {
8973
+ this.zoomSettings.zoomFactor = 1;
8974
+ render = true;
8975
+ }
8976
+ else {
8977
+ render = true;
8978
+ }
8838
8979
  }
8839
- }
8840
- break;
8841
- case 'locale':
8842
- case 'currencyCode':
8843
- super.refresh();
8844
- break;
8980
+ break;
8981
+ case 'locale':
8982
+ case 'currencyCode':
8983
+ super.refresh();
8984
+ break;
8985
+ }
8845
8986
  }
8846
- }
8847
- if (render) {
8848
- if (newProp.layers && isMarker) {
8849
- removeElement(this.element.id + '_Markers_Group');
8850
- if (this.isTileMap) {
8851
- this.mapLayerPanel.renderTileLayer(this.mapLayerPanel, this.layers['currentFactor'], (this.layers.length - 1));
8987
+ if (render) {
8988
+ if (newProp.layers && isMarker) {
8989
+ removeElement(this.element.id + '_Markers_Group');
8990
+ if (this.isTileMap) {
8991
+ this.mapLayerPanel.renderTileLayer(this.mapLayerPanel, this.layers['currentFactor'], (this.layers.length - 1));
8992
+ }
8993
+ else {
8994
+ this.render();
8995
+ }
8996
+ }
8997
+ else if (newProp.layers && isStaticMapType) {
8998
+ this.mapLayerPanel.renderGoogleMap(this.layers[this.layers.length - 1].key, this.staticMapZoom);
8852
8999
  }
8853
9000
  else {
8854
- this.render();
9001
+ this.createSVG();
9002
+ this.renderElements();
8855
9003
  }
8856
9004
  }
8857
- else if (newProp.layers && isStaticMapType) {
8858
- this.mapLayerPanel.renderGoogleMap(this.layers[this.layers.length - 1].key, this.staticMapZoom);
8859
- }
8860
- else {
8861
- this.createSVG();
8862
- this.renderElements();
8863
- }
8864
9005
  }
8865
9006
  }
8866
9007
  /**
@@ -8873,7 +9014,7 @@ let Maps = class Maps extends Component {
8873
9014
  const modules = [];
8874
9015
  const isVisible = this.findVisibleLayers(this.layers);
8875
9016
  let annotationEnable = false;
8876
- this.annotations.map((annotation, index) => {
9017
+ this.annotations.map((annotation) => {
8877
9018
  annotationEnable = annotation.content != null;
8878
9019
  });
8879
9020
  if (this.isBubbleVisible()) {
@@ -8958,10 +9099,12 @@ let Maps = class Maps extends Component {
8958
9099
  }
8959
9100
  /**
8960
9101
  * To find marker visibility
9102
+ *
9103
+ * @returns {boolean} - Returns whether the markers are visible or not.
8961
9104
  */
8962
9105
  isMarkersVisible() {
8963
9106
  let isVisible = false;
8964
- Array.prototype.forEach.call(this.layers, (layer, layerIndex) => {
9107
+ Array.prototype.forEach.call(this.layers, (layer) => {
8965
9108
  for (let i = 0; i < layer.markerSettings.length; i++) {
8966
9109
  if (layer.markerSettings[i].visible) {
8967
9110
  isVisible = true;
@@ -8973,6 +9116,8 @@ let Maps = class Maps extends Component {
8973
9116
  }
8974
9117
  /**
8975
9118
  * To find DataLabel visibility
9119
+ *
9120
+ * @returns {boolean} - Returns whether the data labels are visible or not.
8976
9121
  */
8977
9122
  isDataLabelVisible() {
8978
9123
  let isVisible = false;
@@ -8986,10 +9131,12 @@ let Maps = class Maps extends Component {
8986
9131
  }
8987
9132
  /**
8988
9133
  * To find navigation line visibility
9134
+ *
9135
+ * @returns {boolean} - Returns whether the navigation lines are visible or not.
8989
9136
  */
8990
9137
  isNavigationVisible() {
8991
9138
  let isVisible = false;
8992
- Array.prototype.forEach.call(this.layers, (layer, layerIndex) => {
9139
+ Array.prototype.forEach.call(this.layers, (layer) => {
8993
9140
  for (let i = 0; i < layer.navigationLineSettings.length; i++) {
8994
9141
  if (layer.navigationLineSettings[i].visible) {
8995
9142
  isVisible = true;
@@ -9001,6 +9148,8 @@ let Maps = class Maps extends Component {
9001
9148
  }
9002
9149
  /**
9003
9150
  * To find space between the secondary element and svg element.
9151
+ *
9152
+ * @returns {Point} - Returns the left and top value of the secondary element of Maps.
9004
9153
  * @private
9005
9154
  */
9006
9155
  getExtraPosition() {
@@ -9056,7 +9205,7 @@ let Maps = class Maps extends Component {
9056
9205
  * @returns {void}
9057
9206
  */
9058
9207
  print(id) {
9059
- if ((this.allowPrint) && (this.printModule)) {
9208
+ if ((this.allowPrint) && (this.printModule) && !this.isDestroyed) {
9060
9209
  this.printModule.print(this, id);
9061
9210
  }
9062
9211
  }
@@ -9070,18 +9219,20 @@ let Maps = class Maps extends Component {
9070
9219
  * @returns {Promise<string>} - Returns the string value.
9071
9220
  */
9072
9221
  export(type, fileName, orientation, allowDownload) {
9073
- if (isNullOrUndefined(allowDownload)) {
9074
- allowDownload = true;
9075
- }
9076
- if ((type !== 'PDF') && (this.allowImageExport) && (this.imageExportModule)) {
9077
- return new Promise((resolve, reject) => {
9078
- resolve(this.imageExportModule.export(this, type, fileName, allowDownload));
9079
- });
9080
- }
9081
- else if ((this.allowPdfExport) && (this.pdfExportModule)) {
9082
- return new Promise((resolve, reject) => {
9083
- resolve(this.pdfExportModule.export(this, type, fileName, allowDownload, orientation));
9084
- });
9222
+ if (!this.isDestroyed) {
9223
+ if (isNullOrUndefined(allowDownload)) {
9224
+ allowDownload = true;
9225
+ }
9226
+ if ((type !== 'PDF') && (this.allowImageExport) && (this.imageExportModule)) {
9227
+ return new Promise((resolve, reject) => {
9228
+ resolve(this.imageExportModule.export(this, type, fileName, allowDownload));
9229
+ });
9230
+ }
9231
+ else if ((this.allowPdfExport) && (this.pdfExportModule)) {
9232
+ return new Promise((resolve, reject) => {
9233
+ resolve(this.pdfExportModule.export(this, type, fileName, allowDownload, orientation));
9234
+ });
9235
+ }
9085
9236
  }
9086
9237
  return null;
9087
9238
  }
@@ -9092,19 +9243,22 @@ let Maps = class Maps extends Component {
9092
9243
  * @returns {Promise<string>} - Returns the processed Bing URL as Promise.
9093
9244
  */
9094
9245
  getBingUrlTemplate(url) {
9095
- const promise = new Promise((resolve, reject) => {
9096
- const ajax = new Ajax({
9097
- url: url
9246
+ let promise;
9247
+ if (!this.isDestroyed) {
9248
+ promise = new Promise((resolve, reject) => {
9249
+ const ajax = new Ajax({
9250
+ url: url
9251
+ });
9252
+ ajax.onSuccess = (json) => {
9253
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9254
+ const jsonObject = JSON.parse(json);
9255
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9256
+ const resource = jsonObject['resourceSets'][0]['resources'][0];
9257
+ resolve(resource['imageUrl']);
9258
+ };
9259
+ ajax.send();
9098
9260
  });
9099
- ajax.onSuccess = (json) => {
9100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9101
- const jsonObject = JSON.parse(json);
9102
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9103
- const resource = jsonObject['resourceSets'][0]['resources'][0];
9104
- resolve(resource['imageUrl']);
9105
- };
9106
- ajax.send();
9107
- });
9261
+ }
9108
9262
  return promise;
9109
9263
  }
9110
9264
  /**
@@ -9176,21 +9330,25 @@ let Maps = class Maps extends Component {
9176
9330
  * @returns {GeoPosition}- Returns the geo position
9177
9331
  */
9178
9332
  getGeoLocation(layerIndex, x, y) {
9179
- const container = document.getElementById(this.element.id);
9180
- const pageX = x - container.offsetLeft;
9181
- const pageY = y - container.offsetTop;
9182
- const currentLayer = this.layersCollection[layerIndex];
9183
- const translate = getTranslate(this, currentLayer, false);
9184
- const translatePoint = translate['location'];
9185
- const translatePointX = translatePoint.x * this.scale;
9186
- const translatePointY = translatePoint.y * this.scale;
9187
- const mapSize = (Math.min(this.mapAreaRect.height, this.mapAreaRect.width)
9188
- * this.mapLayerPanel['currentFactor']) * this.scale;
9189
- const xx = (this.clip(pageX - translatePointX, 0, mapSize - 1) / mapSize) - 0.5;
9190
- const yy = 0.5 - (this.clip(pageY - translatePointY, 0, mapSize - 1) / mapSize);
9191
- const lat = 90 - 360 * Math.atan(Math.exp(-yy * 2 * Math.PI)) / Math.PI;
9192
- const long = 360 * xx;
9193
- return { latitude: lat, longitude: long };
9333
+ let latitude = 0;
9334
+ let longitude = 0;
9335
+ if (!this.isDestroyed) {
9336
+ const container = document.getElementById(this.element.id);
9337
+ const pageX = x - container.offsetLeft;
9338
+ const pageY = y - container.offsetTop;
9339
+ const currentLayer = this.layersCollection[layerIndex];
9340
+ const translate = getTranslate(this, currentLayer, false);
9341
+ const translatePoint = translate['location'];
9342
+ const translatePointX = translatePoint.x * this.scale;
9343
+ const translatePointY = translatePoint.y * this.scale;
9344
+ const mapSize = (Math.min(this.mapAreaRect.height, this.mapAreaRect.width)
9345
+ * this.mapLayerPanel['currentFactor']) * this.scale;
9346
+ const xx = (this.clip(pageX - translatePointX, 0, mapSize - 1) / mapSize) - 0.5;
9347
+ const yy = 0.5 - (this.clip(pageY - translatePointY, 0, mapSize - 1) / mapSize);
9348
+ latitude = 90 - 360 * Math.atan(Math.exp(-yy * 2 * Math.PI)) / Math.PI;
9349
+ longitude = 360 * xx;
9350
+ }
9351
+ return { latitude: latitude, longitude: longitude };
9194
9352
  }
9195
9353
  clip(value, minVal, maxVal) {
9196
9354
  return Math.min(Math.max(value, minVal), maxVal);
@@ -9203,10 +9361,16 @@ let Maps = class Maps extends Component {
9203
9361
  * @returns {GeoPosition} - Returns the position
9204
9362
  */
9205
9363
  getTileGeoLocation(x, y) {
9206
- const container = document.getElementById(this.element.id);
9207
- const ele = document.getElementById(this.element.id + '_tile_parent');
9208
- const latLong = this.pointToLatLong(x + this.mapAreaRect.x - (ele.offsetLeft - container.offsetLeft), y + this.mapAreaRect.y - (ele.offsetTop - container.offsetTop));
9209
- return { latitude: latLong['latitude'], longitude: latLong['longitude'] };
9364
+ let latitude = 0;
9365
+ let longitude = 0;
9366
+ if (!this.isDestroyed) {
9367
+ const container = document.getElementById(this.element.id);
9368
+ const ele = document.getElementById(this.element.id + '_tile_parent');
9369
+ const latLong = this.pointToLatLong(x + this.mapAreaRect.x - (ele.offsetLeft - container.offsetLeft), y + this.mapAreaRect.y - (ele.offsetTop - container.offsetTop));
9370
+ latitude = latLong['latitude'];
9371
+ longitude = latLong['longitude'];
9372
+ }
9373
+ return { latitude: latitude, longitude: longitude };
9210
9374
  }
9211
9375
  /**
9212
9376
  * This method is used to convert the point to latitude and longitude in maps.
@@ -9216,14 +9380,18 @@ let Maps = class Maps extends Component {
9216
9380
  * @returns {Object} - Returns the object.
9217
9381
  */
9218
9382
  pointToLatLong(pageX, pageY) {
9219
- const padding = this.layers[this.layers.length - 1].layerType === 'GoogleStaticMap' ? 0 : 10;
9220
- pageY = (this.zoomSettings.enable) ? pageY + padding : pageY;
9221
- const mapSize = 256 * Math.pow(2, this.tileZoomLevel);
9222
- const x1 = (this.clip(pageX - (this.translatePoint.x * this.scale), 0, mapSize - 1) / mapSize) - 0.5;
9223
- const y1 = 0.5 - (this.clip(pageY - (this.translatePoint.y * this.scale), 0, mapSize - 1) / mapSize);
9224
- const lat = 90 - 360 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;
9225
- const long = 360 * x1;
9226
- return { latitude: lat, longitude: long };
9383
+ let latitude = 0;
9384
+ let longitude = 0;
9385
+ if (!this.isDestroyed) {
9386
+ const padding = this.layers[this.layers.length - 1].layerType === 'GoogleStaticMap' ? 0 : 10;
9387
+ pageY = (this.zoomSettings.enable) ? pageY + padding : pageY;
9388
+ const mapSize = 256 * Math.pow(2, this.tileZoomLevel);
9389
+ const x1 = (this.clip(pageX - (this.translatePoint.x * this.scale), 0, mapSize - 1) / mapSize) - 0.5;
9390
+ const y1 = 0.5 - (this.clip(pageY - (this.translatePoint.y * this.scale), 0, mapSize - 1) / mapSize);
9391
+ latitude = 90 - 360 * Math.atan(Math.exp(-y1 * 2 * Math.PI)) / Math.PI;
9392
+ longitude = 360 * x1;
9393
+ }
9394
+ return { latitude: latitude, longitude: longitude };
9227
9395
  }
9228
9396
  };
9229
9397
  __decorate([
@@ -9417,7 +9585,8 @@ class Bubble {
9417
9585
  const layerData = layer.layerData;
9418
9586
  const colorValuePath = bubbleSettings.colorValuePath;
9419
9587
  const equalValue = (!isNullOrUndefined(colorValuePath)) ? ((colorValuePath.indexOf('.') > -1) ?
9420
- (getValueFromObject(shapeData, bubbleSettings.colorValuePath)) : shapeData[colorValuePath]) : shapeData[colorValuePath];
9588
+ (getValueFromObject(shapeData, bubbleSettings.colorValuePath)) : shapeData[colorValuePath]) :
9589
+ shapeData[colorValuePath];
9421
9590
  const colorValue = (!isNullOrUndefined(colorValuePath)) ? ((colorValuePath.indexOf('.') > -1) ?
9422
9591
  Number(getValueFromObject(shapeData, bubbleSettings.colorValuePath)) : Number(shapeData[colorValuePath])) :
9423
9592
  Number(shapeData[colorValuePath]);
@@ -9571,16 +9740,17 @@ class Bubble {
9571
9740
  }
9572
9741
  else {
9573
9742
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9574
- shape.map((current, index) => {
9743
+ shape.map((current) => {
9575
9744
  points.push(new Point(current['point']['x'], current['point']['y']));
9576
9745
  });
9577
9746
  }
9578
9747
  return points;
9579
9748
  }
9580
- // eslint-disable-next-line valid-jsdoc
9581
9749
  /**
9582
9750
  * To check and trigger bubble click event
9583
9751
  *
9752
+ * @param {PointerEvent} e - Specifies the pointer event argument.
9753
+ * @returns {void}
9584
9754
  * @private
9585
9755
  */
9586
9756
  bubbleClick(e) {
@@ -9626,6 +9796,8 @@ class Bubble {
9626
9796
  /**
9627
9797
  * To check and trigger bubble move event
9628
9798
  *
9799
+ * @param {PointerEvent} e - Specifies the pointer event argument.
9800
+ * @retruns {void}
9629
9801
  * @private
9630
9802
  */
9631
9803
  bubbleMove(e) {
@@ -9714,6 +9886,7 @@ class DataLabel {
9714
9886
  layerData, group, labelTemplateElement, index, intersect) {
9715
9887
  const dataLabel = layer.dataLabelSettings;
9716
9888
  const style = layer.dataLabelSettings.textStyle;
9889
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9717
9890
  let templateFn;
9718
9891
  let options;
9719
9892
  const dataLabelSettings = layer.dataLabelSettings;
@@ -9724,7 +9897,6 @@ class DataLabel {
9724
9897
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9725
9898
  const shapeData = shape;
9726
9899
  let element;
9727
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9728
9900
  let text = '';
9729
9901
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9730
9902
  let datasrcObj;
@@ -9746,7 +9918,7 @@ class DataLabel {
9746
9918
  const properties = (Object.prototype.toString.call(layer.shapePropertyPath) === '[object Array]' ?
9747
9919
  layer.shapePropertyPath : [layer.shapePropertyPath]);
9748
9920
  let propertyPath;
9749
- let isPoint = false;
9921
+ const isPoint = false;
9750
9922
  const animate$$1 = layer.animationDuration !== 0 || isNullOrUndefined(this.maps.zoomModule);
9751
9923
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9752
9924
  const translate = (this.maps.isTileMap) ? new Object() : ((this.maps.zoomSettings.zoomFactor > 1 &&
@@ -9863,7 +10035,6 @@ class DataLabel {
9863
10035
  if (eventargs.cancel) {
9864
10036
  return;
9865
10037
  }
9866
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9867
10038
  let position = [];
9868
10039
  let width = zoomLabelsPosition && scaleZoomValue > 1 && !this.maps.zoomNotApplied
9869
10040
  && this.maps.zoomShapeCollection.length > index ? this.maps.zoomShapeCollection[index]['width'] :
@@ -10049,7 +10220,7 @@ class DataLabel {
10049
10220
  }
10050
10221
  else {
10051
10222
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10052
- shapes.map((current, index) => {
10223
+ shapes.map((current) => {
10053
10224
  points.push(new Point(current['point']['x'], current['point']['y']));
10054
10225
  });
10055
10226
  }
@@ -10064,7 +10235,6 @@ class DataLabel {
10064
10235
  return 'DataLabel';
10065
10236
  }
10066
10237
  /**
10067
- *
10068
10238
  * @returns {void}
10069
10239
  * @private
10070
10240
  */
@@ -10082,123 +10252,130 @@ class NavigationLine {
10082
10252
  constructor(maps) {
10083
10253
  this.maps = maps;
10084
10254
  }
10085
- // eslint-disable-next-line valid-jsdoc
10086
10255
  /**
10087
10256
  * To render navigation line for maps
10257
+ *
10258
+ * @param {LayerSettings} layer - Specifies the layer instance to which the navigation line is to be rendered.
10259
+ * @param {number} factor - Specifies the current zoom factor of the Maps.
10260
+ * @param {number} layerIndex -Specifies the index of current layer.
10261
+ * @returns {Element} - Returns the navigation line element.
10088
10262
  */
10089
10263
  renderNavigation(layer, factor, layerIndex) {
10090
- let navigationEle;
10091
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10092
- const navigation = layer.navigationLineSettings;
10093
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10094
- let longitude;
10095
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10096
- let point = [];
10097
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10098
- let latitude;
10099
- let visible;
10100
- let angle;
10101
- let width;
10102
- let color;
10103
- let dashArray;
10104
- let pathOption;
10105
- let direction;
10106
- let showArrow;
10107
- let arrowColor;
10108
- let arrowSize;
10109
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10110
- let arrowSettings;
10111
- let arrowPosition;
10112
- let startArrow;
10113
- let endArrow;
10114
- let offSet;
10115
- let offSetValue;
10116
- let navigationGroup;
10117
- let d;
10118
- const group = (this.maps.renderer.createGroup({
10119
- id: this.maps.element.id + '_LayerIndex_' + layerIndex + '_line_Group'
10120
- }));
10121
- for (let i = 0; i < navigation.length; i++) {
10122
- latitude = navigation[i]['properties']['latitude'];
10123
- longitude = navigation[i]['properties']['longitude'];
10124
- visible = navigation[i]['properties']['visible'];
10125
- angle = navigation[i]['angle'];
10126
- width = navigation[i]['width'] || 1;
10127
- color = navigation[i]['color'];
10128
- dashArray = navigation[i]['properties']['dashArray'];
10129
- arrowSettings = navigation[i]['properties']['arrowSettings'];
10130
- showArrow = (isNullOrUndefined(arrowSettings)) ? false : arrowSettings['properties']['showArrow'];
10131
- if (longitude['length'] === latitude['length'] && visible) {
10132
- for (let i = 0; i < longitude['length']; i++) {
10133
- const location = (this.maps.isTileMap) ? convertTileLatLongToPoint(new Point(longitude[i], latitude[i]), factor, this.maps.tileTranslatePoint, true) : convertGeoToPoint(latitude[i], longitude[i], factor, layer, this.maps);
10134
- point.push(location);
10135
- }
10136
- }
10137
- navigationGroup = (this.maps.renderer.createGroup({
10138
- id: this.maps.element.id + '_LayerIndex_' + layerIndex + '_NavigationGroup' + i + ''
10264
+ let group;
10265
+ if (!isNullOrUndefined(this.maps)) {
10266
+ let navigationEle;
10267
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10268
+ const navigation = layer.navigationLineSettings;
10269
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10270
+ let longitude;
10271
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10272
+ let point = [];
10273
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10274
+ let latitude;
10275
+ let visible;
10276
+ let angle;
10277
+ let width;
10278
+ let color;
10279
+ let dashArray;
10280
+ let pathOption;
10281
+ let direction;
10282
+ let showArrow;
10283
+ let arrowColor;
10284
+ let arrowSize;
10285
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10286
+ let arrowSettings;
10287
+ let arrowPosition;
10288
+ let startArrow;
10289
+ let endArrow;
10290
+ let offSet;
10291
+ let offSetValue;
10292
+ let navigationGroup;
10293
+ let d;
10294
+ group = (this.maps.renderer.createGroup({
10295
+ id: this.maps.element.id + '_LayerIndex_' + layerIndex + '_line_Group'
10139
10296
  }));
10140
- for (let j = 0; j < point['length'] - 1; j++) {
10141
- angle = (-1 > angle) ? -1 : angle;
10142
- angle = (1 < angle) ? 1 : angle;
10143
- const arcId = this.maps.element.id + '_LayerIndex_' + layerIndex + '_NavigationIndex_' + i + '_Line' + j + '';
10144
- const radius = this.convertRadius(point[j], point[j + 1]);
10145
- if (angle <= 1 && angle > 0) {
10146
- direction = 0;
10147
- if (point[j]['x'] > point[j + 1]['x']) {
10148
- direction = 1;
10149
- }
10150
- }
10151
- if (angle >= -1 && angle < 0) {
10152
- direction = 1;
10153
- if (point[j]['x'] > point[j + 1]['x']) {
10297
+ for (let i = 0; i < navigation.length; i++) {
10298
+ latitude = navigation[i]['properties']['latitude'];
10299
+ longitude = navigation[i]['properties']['longitude'];
10300
+ visible = navigation[i]['properties']['visible'];
10301
+ angle = navigation[i]['angle'];
10302
+ width = navigation[i]['width'] || 1;
10303
+ color = navigation[i]['color'];
10304
+ dashArray = navigation[i]['properties']['dashArray'];
10305
+ arrowSettings = navigation[i]['properties']['arrowSettings'];
10306
+ showArrow = (isNullOrUndefined(arrowSettings)) ? false : arrowSettings['properties']['showArrow'];
10307
+ if (longitude['length'] === latitude['length'] && visible) {
10308
+ for (let i = 0; i < longitude['length']; i++) {
10309
+ const location = (this.maps.isTileMap) ? convertTileLatLongToPoint(new Point(longitude[i], latitude[i]), factor, this.maps.tileTranslatePoint, true) : convertGeoToPoint(latitude[i], longitude[i], factor, layer, this.maps);
10310
+ point.push(location);
10311
+ }
10312
+ }
10313
+ navigationGroup = (this.maps.renderer.createGroup({
10314
+ id: this.maps.element.id + '_LayerIndex_' + layerIndex + '_NavigationGroup' + i + ''
10315
+ }));
10316
+ for (let j = 0; j < point['length'] - 1; j++) {
10317
+ angle = (-1 > angle) ? -1 : angle;
10318
+ angle = (1 < angle) ? 1 : angle;
10319
+ const arcId = this.maps.element.id + '_LayerIndex_' + layerIndex + '_NavigationIndex_' + i + '_Line' + j + '';
10320
+ const radius = this.convertRadius(point[j], point[j + 1]);
10321
+ if (angle <= 1 && angle > 0) {
10154
10322
  direction = 0;
10323
+ if (point[j]['x'] > point[j + 1]['x']) {
10324
+ direction = 1;
10325
+ }
10155
10326
  }
10156
- }
10157
- if (showArrow) {
10158
- arrowColor = arrowSettings['properties']['color'];
10159
- arrowSize = arrowSettings['properties']['size'];
10160
- offSetValue = (arrowSettings['properties']['offSet'] === undefined) ? 0 : arrowSettings['properties']['offSet'];
10161
- const divide = (Math.round(arrowSize / 2));
10162
- arrowPosition = arrowSettings['properties']['position'];
10163
- startArrow = (arrowPosition === 'Start') ? 'url(#triangle' + i + ')' : null;
10164
- endArrow = (arrowPosition === 'End') ? 'url(#triangle' + i + ')' : null;
10165
- if (offSet !== 0 && angle === 0) {
10166
- offSet = (arrowPosition === 'Start') ? offSetValue : -(offSetValue);
10167
- }
10168
- offSet = (isNullOrUndefined(offSet)) ? 0 : offSet;
10169
- const triId = this.maps.element.id + '_triangle';
10170
- const defElement = this.maps.renderer.createDefs();
10171
- defElement.innerHTML += '<marker id="' + 'triangle' + i + '"></marker>';
10172
- const markerEle = defElement.querySelector('#' + 'triangle' + i);
10173
- markerEle.setAttribute('markerWidth', (arrowSize.toString()));
10174
- markerEle.setAttribute('markerHeight', (arrowSize.toString()));
10175
- markerEle.setAttribute('refX', (divide - offSet).toString());
10176
- markerEle.setAttribute('refY', divide.toString());
10177
- markerEle.setAttribute('orient', 'auto');
10178
- const d2 = 'M 0,0 L 0,' + arrowSize + ' L ' + divide + ', ' + divide + ' Z';
10179
- pathOption = new PathOption(triId, arrowColor, width, color, 1, 1, dashArray, d2);
10327
+ if (angle >= -1 && angle < 0) {
10328
+ direction = 1;
10329
+ if (point[j]['x'] > point[j + 1]['x']) {
10330
+ direction = 0;
10331
+ }
10332
+ }
10333
+ if (showArrow) {
10334
+ arrowColor = arrowSettings['properties']['color'];
10335
+ arrowSize = arrowSettings['properties']['size'];
10336
+ offSetValue = (arrowSettings['properties']['offSet'] === undefined) ? 0 : arrowSettings['properties']['offSet'];
10337
+ const divide = (Math.round(arrowSize / 2));
10338
+ arrowPosition = arrowSettings['properties']['position'];
10339
+ startArrow = (arrowPosition === 'Start') ? 'url(#triangle' + i + ')' : null;
10340
+ endArrow = (arrowPosition === 'End') ? 'url(#triangle' + i + ')' : null;
10341
+ if (offSet !== 0 && angle === 0) {
10342
+ offSet = (arrowPosition === 'Start') ? offSetValue : -(offSetValue);
10343
+ }
10344
+ offSet = (isNullOrUndefined(offSet)) ? 0 : offSet;
10345
+ const triId = this.maps.element.id + '_triangle';
10346
+ const defElement = this.maps.renderer.createDefs();
10347
+ defElement.innerHTML += '<marker id="' + 'triangle' + i + '"></marker>';
10348
+ const markerEle = defElement.querySelector('#' + 'triangle' + i);
10349
+ markerEle.setAttribute('markerWidth', (arrowSize.toString()));
10350
+ markerEle.setAttribute('markerHeight', (arrowSize.toString()));
10351
+ markerEle.setAttribute('refX', (divide - offSet).toString());
10352
+ markerEle.setAttribute('refY', divide.toString());
10353
+ markerEle.setAttribute('orient', 'auto');
10354
+ const d2 = 'M 0,0 L 0,' + arrowSize + ' L ' + divide + ', ' + divide + ' Z';
10355
+ pathOption = new PathOption(triId, arrowColor, width, color, 1, 1, dashArray, d2);
10356
+ navigationEle = this.maps.renderer.drawPath(pathOption);
10357
+ markerEle.appendChild(navigationEle);
10358
+ defElement.appendChild(markerEle);
10359
+ navigationGroup.appendChild(defElement);
10360
+ }
10361
+ angle = Math.abs(angle);
10362
+ d = (angle === 0) ? 'M ' + point[j]['x'] + ',' + point[j]['y'] + 'L ' + point[j + 1]['x']
10363
+ + ',' + point[j + 1]['y'] + ' ' :
10364
+ 'M ' + point[j]['x'] + ',' + point[j]['y'] + ' A ' + (radius / 2 + (1 - angle) * radius / (angle * 10)) +
10365
+ ' ' + (radius / 2 + (1 - angle) * radius / (angle * 10)) + ' ' + 0 + ',' + 0 + ','
10366
+ + direction + ' , ' + point[j + 1]['x'] + ',' + point[j + 1]['y'] + ' ';
10367
+ pathOption = new PathOption(arcId, 'none', width, color, 1, 1, dashArray, d);
10180
10368
  navigationEle = this.maps.renderer.drawPath(pathOption);
10181
- markerEle.appendChild(navigationEle);
10182
- defElement.appendChild(markerEle);
10183
- navigationGroup.appendChild(defElement);
10184
- }
10185
- angle = Math.abs(angle);
10186
- d = (angle === 0) ? 'M ' + point[j]['x'] + ',' + point[j]['y'] + 'L ' + point[j + 1]['x']
10187
- + ',' + point[j + 1]['y'] + ' ' :
10188
- 'M ' + point[j]['x'] + ',' + point[j]['y'] + ' A ' + (radius / 2 + (1 - angle) * radius / (angle * 10)) +
10189
- ' ' + (radius / 2 + (1 - angle) * radius / (angle * 10)) + ' ' + 0 + ',' + 0 + ','
10190
- + direction + ' , ' + point[j + 1]['x'] + ',' + point[j + 1]['y'] + ' ';
10191
- pathOption = new PathOption(arcId, 'none', width, color, 1, 1, dashArray, d);
10192
- navigationEle = this.maps.renderer.drawPath(pathOption);
10193
- if (!isNullOrUndefined(arrowPosition)) {
10194
- const position = (arrowPosition === 'Start') ? navigationEle.setAttribute('marker-start', startArrow)
10195
- : navigationEle.setAttribute('marker-end', endArrow);
10196
- }
10197
- maintainSelection(this.maps.selectedNavigationElementId, this.maps.navigationSelectionClass, navigationEle, 'navigationlineselectionMapStyle');
10198
- navigationGroup.appendChild(navigationEle);
10199
- group.appendChild(navigationGroup);
10200
- }
10201
- point = [];
10369
+ if (!isNullOrUndefined(arrowPosition)) {
10370
+ const position = (arrowPosition === 'Start') ? navigationEle.setAttribute('marker-start', startArrow)
10371
+ : navigationEle.setAttribute('marker-end', endArrow);
10372
+ }
10373
+ maintainSelection(this.maps.selectedNavigationElementId, this.maps.navigationSelectionClass, navigationEle, 'navigationlineselectionMapStyle');
10374
+ navigationGroup.appendChild(navigationEle);
10375
+ group.appendChild(navigationGroup);
10376
+ }
10377
+ point = [];
10378
+ }
10202
10379
  }
10203
10380
  return group;
10204
10381
  }
@@ -10530,7 +10707,7 @@ class Legend {
10530
10707
  }
10531
10708
  }
10532
10709
  else {
10533
- let padding = 10;
10710
+ const padding = 10;
10534
10711
  shapeX = shapeLocation[j - 1].x;
10535
10712
  shapeY = prevPositionY + padding + (shapeHeight / 2);
10536
10713
  }
@@ -10691,7 +10868,7 @@ class Legend {
10691
10868
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10692
10869
  const collection = this.totalPages[page]['Collection'][i];
10693
10870
  const shapeBorder = collection['shapeBorder'];
10694
- let legendElement = render.createGroup({ id: map.element.id + '_Legend_Index_' + collection['idIndex'] });
10871
+ const legendElement = render.createGroup({ id: map.element.id + '_Legend_Index_' + collection['idIndex'] });
10695
10872
  let legendText = collection['DisplayText'];
10696
10873
  const pagingArrowPadding = 4;
10697
10874
  const shape = ((legend.type === 'Markers') ? ((isNullOrUndefined(collection['ImageSrc'])) ?
@@ -10705,15 +10882,16 @@ class Legend {
10705
10882
  const textId = map.element.id + '_Legend_Text_Index_' + collection['idIndex'];
10706
10883
  const shapeLocation = new Point(collection['Shape']['x'], (collection['Shape']['y'] - pagingArrowPadding));
10707
10884
  const textLocation = new Point(collection['Text']['x'], (collection['Text']['y'] - pagingArrowPadding));
10708
- const imageUrl = ((isNullOrUndefined(collection['ImageSrc'])) ? legend.shape : collection['ImageSrc']);
10709
10885
  const renderOptions = new PathOption(shapeId, collection['Fill'], strokeWidth, strokeColor, legend.opacity, isNullOrUndefined(shapeBorder.opacity) ? legend.opacity : shapeBorder.opacity, '');
10710
10886
  const legendTextStyle = {
10711
10887
  fontFamily: legend.textStyle.fontFamily, fontStyle: legend.textStyle.fontStyle,
10712
- fontWeight: legend.textStyle.fontWeight, size: legend.textStyle.size, color: legend.textStyle.color, opacity: legend.textStyle.opacity
10888
+ fontWeight: legend.textStyle.fontWeight, size: legend.textStyle.size, color: legend.textStyle.color,
10889
+ opacity: legend.textStyle.opacity
10713
10890
  };
10714
10891
  legendTextStyle.color = (legendTextStyle.color !== null) ? legendTextStyle.color :
10715
10892
  this.maps.themeStyle.legendTextColor;
10716
- legendTextStyle.fontFamily = !isNullOrUndefined(legendTextStyle.fontFamily) ? legendTextStyle.fontFamily : this.maps.themeStyle.fontFamily;
10893
+ legendTextStyle.fontFamily = !isNullOrUndefined(legendTextStyle.fontFamily) ? legendTextStyle.fontFamily :
10894
+ this.maps.themeStyle.fontFamily;
10717
10895
  legendTextStyle.size = map.themeStyle.legendFontSize || legendTextStyle.size;
10718
10896
  if (i === 0) {
10719
10897
  this.renderLegendBorder();
@@ -10723,7 +10901,7 @@ class Legend {
10723
10901
  const marker$$1 = map.layers[legendShapeData['layerIndex']].markerSettings[legendShapeData['markerIndex']];
10724
10902
  legendShape = !isNullOrUndefined(marker$$1.dataSource[legendShapeData['dataIndex']][marker$$1['shapeValuePath']]) && marker$$1.dataSource[legendShapeData['dataIndex']][marker$$1['shapeValuePath']] !== '' ? marker$$1.dataSource[legendShapeData['dataIndex']][marker$$1['shapeValuePath']] : marker$$1.shape;
10725
10903
  }
10726
- if (legendShape === "Balloon") {
10904
+ if (legendShape === 'Balloon') {
10727
10905
  legendElement.appendChild(drawBalloon(map, renderOptions, shapeSize, { x: shapeLocation.x, y: (shapeLocation.y + 5) }, 'Legend'));
10728
10906
  }
10729
10907
  else {
@@ -10789,7 +10967,7 @@ class Legend {
10789
10967
  'opacity': 1,
10790
10968
  'dominant-baseline': ''
10791
10969
  };
10792
- let pagingTextElement = render.createText(pageTextOptions, pagingText);
10970
+ const pagingTextElement = render.createText(pageTextOptions, pagingText);
10793
10971
  pagingTextElement.style.cssText = 'user-select: none;';
10794
10972
  pagingGroup.appendChild(pagingTextElement);
10795
10973
  this.legendGroup.appendChild(pagingGroup);
@@ -11201,8 +11379,6 @@ class Legend {
11201
11379
  }
11202
11380
  if (selectionEle && (selectionEle['IsSelected'] && (targetElement.getAttribute('class') === 'ShapeselectionMapStyle'
11203
11381
  || targetElement.getAttribute('class') === 'LineselectionMapStyle'))) {
11204
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11205
- const element = this.maps.legendSelectionCollection[selectionEle['SelectionIndex']];
11206
11382
  let multiSelection = 0;
11207
11383
  if (module.enableMultiSelect) {
11208
11384
  for (let i = 0; i < shapeElement['Elements'].length; i++) {
@@ -11461,7 +11637,8 @@ class Legend {
11461
11637
  const legendTitle = legend.title.text;
11462
11638
  const textStyle = {
11463
11639
  fontFamily: legend.titleStyle.fontFamily, fontStyle: legend.titleStyle.fontStyle,
11464
- fontWeight: legend.titleStyle.fontWeight, size: legend.titleStyle.size, color: legend.titleStyle.color, opacity: legend.titleStyle.opacity
11640
+ fontWeight: legend.titleStyle.fontWeight, size: legend.titleStyle.size, color: legend.titleStyle.color,
11641
+ opacity: legend.titleStyle.opacity
11465
11642
  };
11466
11643
  let textOptions;
11467
11644
  const spacing = 10;
@@ -11522,7 +11699,8 @@ class Legend {
11522
11699
  const locationX = !isNullOrUndefined(legend.location.x) ? legend.location.x : 0;
11523
11700
  const locationY = !isNullOrUndefined(legend.location.y) ? legend.location.y : 0;
11524
11701
  if (legend.position === 'Float') {
11525
- this.translate = map.isTileMap ? new Point(locationX, locationY + (spacing / 4)) : new Point(locationX + map.mapAreaRect.x, locationY + map.mapAreaRect.y);
11702
+ this.translate = map.isTileMap ? new Point(locationX, locationY + (spacing / 4)) :
11703
+ new Point(locationX + map.mapAreaRect.x, locationY + map.mapAreaRect.y);
11526
11704
  this.legendTotalRect = map.mapAreaRect;
11527
11705
  }
11528
11706
  else {
@@ -11604,7 +11782,8 @@ class Legend {
11604
11782
  this.getOverallLegendItemsCollection(text, legendFill, newData, showLegend);
11605
11783
  }
11606
11784
  else {
11607
- newData.push({ layerIndex: layerIndex, markerIndex: markerIndex, dataIndex: dataIndex, value: legendFill, name: text,
11785
+ newData.push({ layerIndex: layerIndex, markerIndex: markerIndex, dataIndex: dataIndex, value: legendFill,
11786
+ name: text,
11608
11787
  shape: (!isNullOrUndefined(marker$$1.shapeValuePath) && !isNullOrUndefined(data[marker$$1.shapeValuePath]) && data[marker$$1.shapeValuePath] !== '') ? data[marker$$1.shapeValuePath] : (this.maps.legendSettings.useMarkerShape ? marker$$1.shape : this.maps.legendSettings.shape) });
11609
11788
  this.getOverallLegendItemsCollection(text, legendFill, newData, showLegend);
11610
11789
  }
@@ -11783,6 +11962,7 @@ class Legend {
11783
11962
  if (outOfRangeValues.length === 0) {
11784
11963
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
11785
11964
  let range = false;
11965
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11786
11966
  Array.prototype.forEach.call(dataSource, (data, dataIndex) => {
11787
11967
  range = false;
11788
11968
  const rangeValue = data[colorValuePath];
@@ -12010,12 +12190,25 @@ class Legend {
12010
12190
  }
12011
12191
  if (targetEle !== null) {
12012
12192
  legendShapeId = querySelector(this.maps.element.id + '_Legend_Shape_Index_' + legendIndex, this.maps.element.id);
12013
- legendShapeId.setAttribute('fill', '#E5E5E5');
12014
- if (this.maps.legendSettings.shape === 'HorizontalLine' || this.maps.legendSettings.shape === 'VerticalLine' || this.maps.legendSettings.shape === 'Cross') {
12015
- legendShapeId.setAttribute('stroke', '#E5E5E5');
12016
- }
12017
12193
  legendTextId = querySelector(this.maps.element.id + '_Legend_Text_Index_' + legendIndex, this.maps.element.id);
12018
- legendTextId.setAttribute('fill', '#E5E5E5');
12194
+ if (!this.maps.legendSettings.toggleLegendSettings.applyShapeSettings) {
12195
+ legendShapeId.setAttribute('fill', legendToggleFill);
12196
+ legendShapeId.setAttribute('fill-opacity', (legendToggleOpacity).toString());
12197
+ legendShapeId.setAttribute('stroke', legendToggleBorderColor);
12198
+ legendShapeId.setAttribute('stroke-width', (legendToggleBorderWidth).toString());
12199
+ legendShapeId.setAttribute('stroke-opacity', (legendToggleBorderOpacity).toString());
12200
+ legendTextId.setAttribute('fill', legendToggleFill);
12201
+ }
12202
+ else {
12203
+ legendTextId.setAttribute('fill', this.maps.layers[k].shapeSettings.fill);
12204
+ legendShapeId.setAttribute('fill', this.maps.layers[k].shapeSettings.fill);
12205
+ legendShapeId.setAttribute('stroke', this.maps.layers[k].shapeSettings.border.color);
12206
+ legendShapeId.setAttribute('fill-opacity', (this.maps.layers[k].shapeSettings.opacity).toString());
12207
+ legendShapeId.setAttribute('stroke-width', (isNullOrUndefined(this.maps.layers[k].shapeSettings.border.width) ? 0 : this.maps.layers[k].shapeSettings.border.width).toString());
12208
+ legendShapeId.setAttribute('stroke-opacity', (isNullOrUndefined(this.maps.layers[k].shapeSettings.border.opacity) ?
12209
+ this.maps.layers[k].shapeSettings.opacity :
12210
+ this.maps.layers[k].shapeSettings.border.opacity).toString());
12211
+ }
12019
12212
  }
12020
12213
  }
12021
12214
  else {
@@ -12028,6 +12221,10 @@ class Legend {
12028
12221
  if (targetEle !== null) {
12029
12222
  legendShapeId = querySelector(this.maps.element.id + '_Legend_Shape_Index_' + legendIndex, this.maps.element.id);
12030
12223
  legendShapeId.setAttribute('fill', this.legendCollection[legendIndex]['fill']);
12224
+ legendShapeId.setAttribute('fill-opacity', this.legendCollection[legendIndex]['opacity']);
12225
+ legendShapeId.setAttribute('stroke', this.legendCollection[legendIndex]['shapeBorder']['color']);
12226
+ legendShapeId.setAttribute('stroke-width', this.legendCollection[legendIndex]['shapeBorder']['width']);
12227
+ legendShapeId.setAttribute('stroke-opacity', this.legendCollection[legendIndex]['shapeBorder']['opacity']);
12031
12228
  if (this.maps.legendSettings.shape === 'HorizontalLine' || this.maps.legendSettings.shape === 'VerticalLine' || this.maps.legendSettings.shape === 'Cross') {
12032
12229
  legendShapeId.setAttribute('stroke', this.legendCollection[legendIndex]['fill']);
12033
12230
  }
@@ -12154,9 +12351,25 @@ class Legend {
12154
12351
  }
12155
12352
  if (targetEle !== null) {
12156
12353
  legendTextId = querySelector(this.maps.element.id + '_Legend_Index_' + legendIndex + '_Text', this.maps.element.id);
12157
- legendTextId.setAttribute('fill', '#E5E5E5');
12158
12354
  legendShapeId = querySelector(this.maps.element.id + '_Legend_Index_' + legendIndex, this.maps.element.id);
12159
- legendShapeId.setAttribute('fill', '#E5E5E5');
12355
+ if (!this.maps.legendSettings.toggleLegendSettings.applyShapeSettings) {
12356
+ legendTextId.setAttribute('fill', legendToggleFill);
12357
+ legendShapeId.setAttribute('fill', legendToggleFill);
12358
+ legendShapeId.setAttribute('fill-opacity', (legendToggleOpacity).toString());
12359
+ legendShapeId.setAttribute('stroke', legendToggleBorderColor);
12360
+ legendShapeId.setAttribute('stroke-width', (legendToggleBorderWidth).toString());
12361
+ legendShapeId.setAttribute('stroke-opacity', (legendToggleBorderOpacity).toString());
12362
+ }
12363
+ else {
12364
+ legendTextId.setAttribute('fill', this.maps.layers[k].shapeSettings.fill);
12365
+ legendShapeId.setAttribute('fill', this.maps.layers[k].shapeSettings.fill);
12366
+ legendShapeId.setAttribute('stroke', this.maps.layers[k].shapeSettings.border.color);
12367
+ legendShapeId.setAttribute('stroke-width', (isNullOrUndefined(this.maps.layers[k].shapeSettings.border.width) ? 0 : this.maps.layers[k].shapeSettings.border.width).toString());
12368
+ legendShapeId.setAttribute('stroke-opacity', (isNullOrUndefined(this.maps.layers[k].shapeSettings.border.opacity) ?
12369
+ this.maps.layers[k].shapeSettings.opacity :
12370
+ this.maps.layers[k].shapeSettings.border.opacity).toString());
12371
+ legendShapeId.setAttribute('fill-opacity', (this.maps.layers[k].shapeSettings.opacity).toString());
12372
+ }
12160
12373
  }
12161
12374
  }
12162
12375
  else {
@@ -12169,6 +12382,10 @@ class Legend {
12169
12382
  if (targetEle !== null) {
12170
12383
  legendShapeId = querySelector(this.maps.element.id + '_Legend_Index_' + legendIndex, this.maps.element.id);
12171
12384
  legendShapeId.setAttribute('fill', this.legendCollection[legendIndex]['fill']);
12385
+ legendShapeId.setAttribute('fill-opacity', this.legendCollection[legendIndex]['opacity']);
12386
+ legendShapeId.setAttribute('stroke', this.legendCollection[legendIndex]['shapeBorder']['color']);
12387
+ legendShapeId.setAttribute('stroke-width', this.legendCollection[legendIndex]['shapeBorder']['width']);
12388
+ legendShapeId.setAttribute('stroke-opacity', this.legendCollection[legendIndex]['shapeBorder']['opacity']);
12172
12389
  legendTextId = querySelector(this.maps.element.id + '_Legend_Index_' + legendIndex + '_Text', this.maps.element.id);
12173
12390
  legendTextId.setAttribute('fill', '#757575');
12174
12391
  }
@@ -12230,10 +12447,12 @@ class Legend {
12230
12447
  this.maps.toggledShapeElementId.splice(toggledShapeIdIndex, 1);
12231
12448
  }
12232
12449
  mapLegendElement.setAttribute('fill-opacity', (this.maps.layers[k].shapeSettings.opacity).toString());
12233
- mapLegendElement.setAttribute('stroke-width', (isNullOrUndefined(this.maps.layers[k].shapeSettings.border.width) ? 0 : this.maps.layers[k].shapeSettings.border.width).toString());
12450
+ mapLegendElement.setAttribute('stroke-width', (isNullOrUndefined(this.maps.layers[k].shapeSettings.border.width) ? 0 :
12451
+ this.maps.layers[k].shapeSettings.border.width).toString());
12234
12452
  mapLegendElement.setAttribute('stroke', this.maps.layers[0].shapeSettings.border.color);
12235
12453
  mapLegendElement.setAttribute('stroke-opacity', (isNullOrUndefined(this.maps.layers[k].shapeSettings.border.opacity) ?
12236
- this.maps.layers[k].shapeSettings.opacity : this.maps.layers[k].shapeSettings.border.opacity).toString());
12454
+ this.maps.layers[k].shapeSettings.opacity :
12455
+ this.maps.layers[k].shapeSettings.border.opacity).toString());
12237
12456
  mapLegendElement.setAttribute('fill', this.legendCollection[legendIndex]['fill']);
12238
12457
  if (targetEle !== null) {
12239
12458
  legendTextId = querySelector(this.maps.element.id + '_Legend_Index_' + legendIndex + '_Text', this.maps.element.id);
@@ -12297,7 +12516,7 @@ class Legend {
12297
12516
  && isNaN(shapeData['properties'][shapePath]) ?
12298
12517
  shapeData['properties'][shapePath].toLowerCase() : shapeData['properties'][shapePath];
12299
12518
  if (shapeDataValueCase === dataPathValueCase) {
12300
- if (shapeData['geometry']['type'] != 'MultiPoint') {
12519
+ if (shapeData['geometry']['type'] !== 'MultiPoint') {
12301
12520
  legendData.push({
12302
12521
  layerIndex: layerIndex, shapeIndex: i, dataIndex: dataIndex,
12303
12522
  name: data[dataPath], value: value, pointIndex: -1
@@ -12541,7 +12760,9 @@ class Highlight {
12541
12760
  }
12542
12761
  const borderColor = (targetEle.parentElement.id.indexOf('LineString') === -1) ? this.highlightSettings.border.color : (this.highlightSettings.fill || this.highlightSettings.border.color);
12543
12762
  const borderWidth = (targetEle.parentElement.id.indexOf('LineString') === -1) ? (this.highlightSettings.border.width / (isMarkerSelect ? 1 : this.maps.scale)) : (this.highlightSettings.border.width / this.maps.scale);
12544
- const borderOpacity = isNullOrUndefined(this.highlightSettings.border.opacity) ? this.highlightSettings.opacity : this.highlightSettings.border.opacity;
12763
+ const borderOpacity = isNullOrUndefined(this.highlightSettings.border.opacity) ? this.highlightSettings.opacity :
12764
+ this.highlightSettings.border.opacity;
12765
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12545
12766
  const eventArgs = {
12546
12767
  opacity: this.highlightSettings.opacity,
12547
12768
  fill: (targetEle.parentElement.id.indexOf('LineString') === -1) ? (targetEle.id.indexOf('NavigationIndex') === -1 ? !isNullOrUndefined(this.highlightSettings.fill)
@@ -12561,6 +12782,7 @@ class Highlight {
12561
12782
  maps: this.maps
12562
12783
  };
12563
12784
  if (targetEle.id.indexOf('shapeIndex') > -1) {
12785
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
12564
12786
  this.maps.trigger(shapeHighlight, shapeEventArgs, () => { });
12565
12787
  }
12566
12788
  const itemEventArgs = {
@@ -12762,7 +12984,8 @@ class Selection {
12762
12984
  const isLineStringShape = targetElement.parentElement.id.indexOf('LineString') > -1;
12763
12985
  const selectionsettings = this.selectionsettings;
12764
12986
  const border = {
12765
- color: isLineStringShape ? (this.selectionsettings.fill || this.selectionsettings.border.color) : this.selectionsettings.border.color,
12987
+ color: isLineStringShape ? (this.selectionsettings.fill || this.selectionsettings.border.color) :
12988
+ this.selectionsettings.border.color,
12766
12989
  width: isLineStringShape ? (this.selectionsettings.border.width / this.maps.scale) :
12767
12990
  (this.selectionsettings.border.width / (this.selectionType === 'Marker' ? 1 : this.maps.scale)),
12768
12991
  opacity: this.selectionsettings.border.opacity
@@ -12779,7 +13002,8 @@ class Selection {
12779
13002
  maps: this.maps
12780
13003
  };
12781
13004
  this.maps.trigger('itemSelection', eventArgs, (observedArgs) => {
12782
- eventArgs.border.opacity = isNullOrUndefined(this.selectionsettings.border.opacity) ? this.selectionsettings.opacity : this.selectionsettings.border.opacity;
13005
+ eventArgs.border.opacity = isNullOrUndefined(this.selectionsettings.border.opacity) ?
13006
+ this.selectionsettings.opacity : this.selectionsettings.border.opacity;
12783
13007
  if (!eventArgs.cancel) {
12784
13008
  if (targetElement.getAttribute('class') === this.selectionType + 'selectionMapStyle'
12785
13009
  || targetElement.getAttribute('class') === 'LineselectionMapStyle') {
@@ -12931,7 +13155,6 @@ class Selection {
12931
13155
  }
12932
13156
  }
12933
13157
 
12934
- /* eslint-disable @typescript-eslint/no-unused-vars */
12935
13158
  /**
12936
13159
  * Map Tooltip
12937
13160
  */
@@ -12963,7 +13186,6 @@ class MapsTooltip {
12963
13186
  }
12964
13187
  let option;
12965
13188
  let currentData = '';
12966
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12967
13189
  const targetId = target.id;
12968
13190
  let tooltipEle;
12969
13191
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -13112,6 +13334,7 @@ class MapsTooltip {
13112
13334
  maps: this.maps,
13113
13335
  element: target, eventArgs: e, content: !isNullOrUndefined(currentData) ? currentData.toString() : ''
13114
13336
  };
13337
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13115
13338
  this.maps.trigger(tooltipRender, tooltipArgs, (args) => {
13116
13339
  if (!tooltipArgs.cancel && option.visible && !isNullOrUndefined(currentData) &&
13117
13340
  (targetId.indexOf('_cluster_') === -1 && targetId.indexOf('_dataLabel_') === -1)) {
@@ -13128,7 +13351,8 @@ class MapsTooltip {
13128
13351
  header: '',
13129
13352
  data: option['data'],
13130
13353
  template: option['template'],
13131
- content: tooltipArgs.content.toString() != currentData.toString() ? [tooltipArgs.content.toString()] : [currentData.toString()],
13354
+ content: tooltipArgs.content.toString() !== currentData.toString() ? [tooltipArgs.content.toString()] :
13355
+ [currentData.toString()],
13132
13356
  shapes: [],
13133
13357
  location: option['location'],
13134
13358
  palette: [markerFill],
@@ -13144,7 +13368,8 @@ class MapsTooltip {
13144
13368
  header: '',
13145
13369
  data: tooltipArgs.options['data'],
13146
13370
  template: tooltipArgs.options['template'],
13147
- content: tooltipArgs.content.toString() != currentData.toString() ? [tooltipArgs.content.toString()] : [currentData.toString()],
13371
+ content: tooltipArgs.content.toString() !== currentData.toString() ? [tooltipArgs.content.toString()] :
13372
+ [currentData.toString()],
13148
13373
  shapes: [],
13149
13374
  location: tooltipArgs.options['location'],
13150
13375
  palette: [markerFill],
@@ -13456,12 +13681,13 @@ class Zoom {
13456
13681
  }
13457
13682
  this.maps.zoomNotApplied = false;
13458
13683
  }
13684
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13459
13685
  calculateInitalZoomTranslatePoint(newZoomFactor, mapTotalWidth, mapTotalHeight, availSize, minBounds, map) {
13460
13686
  mapTotalWidth *= newZoomFactor;
13461
13687
  mapTotalHeight *= newZoomFactor;
13462
- let widthDiff = minBounds['x'] !== 0 && map.translateType === 'layers' ? map.availableSize.width - availSize.width : 0;
13463
- var translatePointX = availSize.x + ((-(minBounds['x'])) + ((availSize.width / 2) - (mapTotalWidth / 2))) - widthDiff;
13464
- var translatePointY = availSize.y + ((-(minBounds['y'])) + ((availSize.height / 2) - (mapTotalHeight / 2)));
13688
+ const widthDiff = minBounds['x'] !== 0 && map.translateType === 'layers' ? map.availableSize.width - availSize.width : 0;
13689
+ const translatePointX = availSize.x + ((-(minBounds['x'])) + ((availSize.width / 2) - (mapTotalWidth / 2))) - widthDiff;
13690
+ const translatePointY = availSize.y + ((-(minBounds['y'])) + ((availSize.height / 2) - (mapTotalHeight / 2)));
13465
13691
  return new Point(translatePointX, translatePointY);
13466
13692
  }
13467
13693
  triggerZoomEvent(prevTilePoint, prevLevel, type) {
@@ -13704,7 +13930,8 @@ class Zoom {
13704
13930
  this.index = layerElement.id.indexOf('_LayerIndex_') > -1 && parseFloat(layerElement.id.split('_LayerIndex_')[1].split('_')[0]);
13705
13931
  this.currentLayer = maps.layersCollection[this.index];
13706
13932
  const factor = maps.mapLayerPanel.calculateFactor(this.currentLayer);
13707
- for (let j = 0; j < layerElement.childElementCount; j++) {
13933
+ const elementCount = layerElement.childElementCount;
13934
+ for (let j = 0; j < elementCount; j++) {
13708
13935
  let currentEle = layerElement.childNodes[j];
13709
13936
  if (!(currentEle.id.indexOf('_Markers_Group') > -1) && (!(currentEle.id.indexOf('_bubble_Group') > -1))
13710
13937
  && (!(currentEle.id.indexOf('_dataLableIndex_Group') > -1))) {
@@ -13717,7 +13944,7 @@ class Zoom {
13717
13944
  layerElement.appendChild(maps.navigationLineModule.renderNavigation(this.currentLayer, maps.tileZoomLevel, this.index));
13718
13945
  }
13719
13946
  }
13720
- else if (currentEle.id.indexOf('Legend') == -1) {
13947
+ else if (currentEle.id.indexOf('Legend') === -1) {
13721
13948
  changeBorderWidth(currentEle, this.index, scale, maps);
13722
13949
  maps.zoomTranslatePoint = maps.translatePoint;
13723
13950
  this.animateTransform(currentEle, animate$$1, x, y, scale);
@@ -13795,7 +14022,6 @@ class Zoom {
13795
14022
  let childElement;
13796
14023
  for (let k = 0; k < currentEle.childElementCount; k++) {
13797
14024
  childElement = currentEle.childNodes[k];
13798
- const bubbleTransform = childElement.getAttribute('transform');
13799
14025
  layerIndex = parseFloat(childElement.id.split('_LayerIndex_')[1].split('_')[0]);
13800
14026
  const bubleIndex = parseFloat(childElement.id.split('_BubbleIndex_')[1].split('_')[0]);
13801
14027
  const dataIndex = parseFloat(childElement.id.split('_BubbleIndex_')[1].split('_')[2]);
@@ -13824,7 +14050,7 @@ class Zoom {
13824
14050
  this.intersect = [];
13825
14051
  maps.zoomLabelPositions = [];
13826
14052
  maps.zoomLabelPositions = maps.dataLabelModule.dataLabelCollections;
13827
- let labelAnimate = !maps.isTileMap && animate$$1;
14053
+ const labelAnimate = !maps.isTileMap && animate$$1;
13828
14054
  for (let k = 0; k < currentEle.childElementCount; k++) {
13829
14055
  if (currentEle.childNodes[k]['id'].indexOf('_LabelIndex_') > -1) {
13830
14056
  const labelIndex = parseFloat(currentEle.childNodes[k]['id'].split('_LabelIndex_')[1].split('_')[0]);
@@ -13924,7 +14150,6 @@ class Zoom {
13924
14150
  const markerID = this.maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_'
13925
14151
  + markerIndex + '_dataIndex_' + dataIndex;
13926
14152
  const location = (this.maps.isTileMap) ? convertTileLatLongToPoint(new MapLocation(long, lati), this.maps.tileZoomLevel, this.maps.tileTranslatePoint, true) : convertGeoToPoint(lati, long, factor, currentLayers, this.maps);
13927
- const animate$$1 = currentLayers.animationDuration !== 0 || isNullOrUndefined(this.maps.zoomModule);
13928
14153
  const transPoint = { x: x, y: y };
13929
14154
  if (eventArgs.template && (!isNaN(location.x) && !isNaN(location.y))) {
13930
14155
  markerTemplateCounts++;
@@ -13993,15 +14218,12 @@ class Zoom {
13993
14218
  dataLabelTranslate(element, factor, x, y, scale, type, animate$$1 = false) {
13994
14219
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13995
14220
  const labelCollection = this.maps.dataLabelModule.dataLabelCollections;
13996
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13997
- const zoomelement = element.getBoundingClientRect();
13998
14221
  let text;
13999
14222
  let trimmedLable;
14000
14223
  const style = this.maps.layers[this.index].dataLabelSettings.textStyle;
14001
14224
  let zoomtext;
14002
14225
  let zoomtextSize;
14003
14226
  let zoomtrimLabel;
14004
- const labelPath = this.maps.layers[this.index].dataLabelSettings.labelPath;
14005
14227
  const layerIndex = parseFloat(element.id.split('_LayerIndex_')[1].split('_')[0]);
14006
14228
  const shapeIndex = parseFloat(element.id.split('_shapeIndex_')[1].split('_')[0]);
14007
14229
  let labelIndex;
@@ -14029,7 +14251,6 @@ class Zoom {
14029
14251
  const layerEle = getElementByID(this.maps.element.id + '_Layer_Collections');
14030
14252
  labelX = ((Math.abs(this.maps.baseMapRectBounds['min']['x'] - labelX)) * scale);
14031
14253
  labelY = ((Math.abs(this.maps.baseMapRectBounds['min']['y'] - labelY)) * scale);
14032
- const templateOffset = element.getBoundingClientRect();
14033
14254
  const layerOffset = layerEle.getBoundingClientRect();
14034
14255
  const elementOffset = element.parentElement.getBoundingClientRect();
14035
14256
  locationX = ((labelX) + (layerOffset.left - elementOffset.left));
@@ -14226,6 +14447,11 @@ class Zoom {
14226
14447
  }
14227
14448
  }
14228
14449
  /**
14450
+ * @param {PanDirection} direction - Specifies the direction of the panning.
14451
+ * @param {number} xDifference - Specifies the distance moved in the horizontal direction.
14452
+ * @param {number} yDifference - Specifies the distance moved in the vertical direction.
14453
+ * @param {PointerEvent | TouchEvent | KeyboardEvent} mouseLocation - Specifies the pointer event argument.
14454
+ * @returns {void}
14229
14455
  * @private
14230
14456
  */
14231
14457
  panning(direction, xDifference, yDifference, mouseLocation) {
@@ -14689,7 +14915,7 @@ class Zoom {
14689
14915
  }
14690
14916
  break;
14691
14917
  }
14692
- let extraPosition = map.getExtraPosition();
14918
+ const extraPosition = map.getExtraPosition();
14693
14919
  element.style.left = x + extraPosition.x + 'px';
14694
14920
  element.style.top = y + extraPosition.y + 'px';
14695
14921
  const color = this.maps.zoomSettings.highlightColor || this.maps.themeStyle.zoomSelectionColor;
@@ -15020,7 +15246,6 @@ class Zoom {
15020
15246
  }
15021
15247
  }
15022
15248
 
15023
- /* eslint-disable @typescript-eslint/no-unused-vars */
15024
15249
  /**
15025
15250
  * This module enables the print functionality in maps.
15026
15251
  *
@@ -15030,18 +15255,20 @@ class Print {
15030
15255
  /**
15031
15256
  * Constructor for Maps
15032
15257
  *
15033
- * @param {Maps} control - Specifies the instance of the map
15258
+ * @param {Maps} control - Specifies the instance of the Maps
15034
15259
  */
15260
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
15035
15261
  constructor(control) { }
15036
15262
  /**
15037
15263
  * To print the Maps
15038
15264
  *
15039
- * @param {string[] | string | Element} elements - Specifies the element
15265
+ * @param {Maps} maps -Specifies the Maps instance.
15266
+ * @param {string[] | string | Element} elements - Specifies the element of the Maps
15040
15267
  * @returns {void}
15041
15268
  * @private
15042
15269
  */
15043
15270
  print(maps, elements) {
15044
- let printWindow = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');
15271
+ const printWindow = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');
15045
15272
  printWindow.moveTo(0, 0);
15046
15273
  printWindow.resizeTo(screen.availWidth, screen.availHeight);
15047
15274
  const argsData = {
@@ -15056,13 +15283,14 @@ class Print {
15056
15283
  /**
15057
15284
  * To get the html string of the Maps
15058
15285
  *
15286
+ * @param {Maps} maps -Specifies the Maps instance.
15059
15287
  * @param {string[] | string | Element} elements - Specifies the html element
15060
15288
  * @returns {Element} - Returns the div element
15061
15289
  * @private
15062
15290
  */
15063
15291
  getHTMLContent(maps, elements) {
15064
- let div = createElement('div');
15065
- let divElement = maps.element.cloneNode(true);
15292
+ const div = createElement('div');
15293
+ const divElement = maps.element.cloneNode(true);
15066
15294
  if (maps.isTileMap) {
15067
15295
  for (let i = 0; i < divElement.childElementCount; i++) {
15068
15296
  if (divElement.children[i].id === maps.element.id + '_tile_parent') {
@@ -15115,10 +15343,10 @@ class Print {
15115
15343
  * @returns {void}
15116
15344
  * @private
15117
15345
  */
15346
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
15118
15347
  destroy() { }
15119
15348
  }
15120
15349
 
15121
- /* eslint-disable @typescript-eslint/no-unused-vars */
15122
15350
  /**
15123
15351
  * This module enables the export to Image functionality in Maps control.
15124
15352
  *
@@ -15130,19 +15358,21 @@ class ImageExport {
15130
15358
  *
15131
15359
  * @param {Maps} control - Specifies the instance of the map
15132
15360
  */
15361
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
15133
15362
  constructor(control) {
15134
15363
  }
15135
15364
  /**
15136
15365
  * To export the file as image/svg format
15137
15366
  *
15138
- * @param {ExportType} type - Specifies the type of the image file
15139
- * @param {string} fileName - Specifies the file name of the image file
15367
+ * @param {Maps} maps - Specifies the Maps instance.
15368
+ * @param {ExportType} type - Specifies the type of the image file for exporting.
15369
+ * @param {string} fileName - Specifies the file name of the image file for exporting.
15140
15370
  * @param {boolean} allowDownload - Specifies whether to download image as a file or not.
15141
- * @returns {Promise<string>} - Returns the promise string.
15371
+ * @returns {Promise<string>} - Specifies the base64 string of the exported image which is returned when the allowDownload is set to false.
15142
15372
  * @private
15143
15373
  */
15144
15374
  export(maps, type, fileName, allowDownload) {
15145
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
15375
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars
15146
15376
  const promise = new Promise((resolve, reject) => {
15147
15377
  const imageCanvasElement = createElement('canvas', {
15148
15378
  id: 'ej2-canvas',
@@ -15152,11 +15382,10 @@ class ImageExport {
15152
15382
  }
15153
15383
  });
15154
15384
  const isDownload = !(Browser.userAgent.toString().indexOf('HeadlessChrome') > -1);
15155
- const toolbarEle = document.getElementById(maps.element.id + '_ToolBar');
15156
15385
  const svgParent = document.getElementById(maps.element.id + '_Tile_SVG_Parent');
15157
15386
  let svgDataElement;
15158
15387
  let tileSvg;
15159
- let svgObject = getElementByID(maps.element.id + '_svg').cloneNode(true);
15388
+ const svgObject = getElementByID(maps.element.id + '_svg').cloneNode(true);
15160
15389
  if (!maps.isTileMap) {
15161
15390
  svgDataElement = '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">' +
15162
15391
  maps.svgObject.outerHTML + '</svg>';
@@ -15199,8 +15428,8 @@ class ImageExport {
15199
15428
  }
15200
15429
  else {
15201
15430
  const svgParentElement = document.getElementById(maps.element.id + '_MapAreaBorder');
15202
- let top = parseFloat(svgParentElement.getAttribute('y'));
15203
- let left = parseFloat(svgParentElement.getAttribute('x'));
15431
+ const top = parseFloat(svgParentElement.getAttribute('y'));
15432
+ const left = parseFloat(svgParentElement.getAttribute('x'));
15204
15433
  const imgxHttp = new XMLHttpRequest();
15205
15434
  const imgTileLength = maps.mapLayerPanel.tiles.length;
15206
15435
  for (let i = 0; i <= imgTileLength + 1; i++) {
@@ -15210,7 +15439,7 @@ class ImageExport {
15210
15439
  ctxt.fillStyle = maps.background ? maps.background : '#FFFFFF';
15211
15440
  ctxt.fillRect(0, 0, maps.availableSize.width, maps.availableSize.height);
15212
15441
  ctxt.font = maps.titleSettings.textStyle.size + ' Arial';
15213
- let titleElement = document.getElementById(maps.element.id + '_Map_title');
15442
+ const titleElement = document.getElementById(maps.element.id + '_Map_title');
15214
15443
  if (!isNullOrUndefined(titleElement)) {
15215
15444
  ctxt.fillStyle = titleElement.getAttribute('fill');
15216
15445
  ctxt.fillText(maps.titleSettings.text, parseFloat(titleElement.getAttribute('x')), parseFloat(titleElement.getAttribute('y')));
@@ -15283,10 +15512,10 @@ class ImageExport {
15283
15512
  * @returns {void}
15284
15513
  * @private
15285
15514
  */
15515
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
15286
15516
  destroy() { }
15287
15517
  }
15288
15518
 
15289
- /* eslint-disable @typescript-eslint/no-unused-vars */
15290
15519
  /**
15291
15520
  * This module enables the export to PDF functionality in Maps control.
15292
15521
  *
@@ -15296,17 +15525,18 @@ class PdfExport {
15296
15525
  /**
15297
15526
  * Constructor for Maps
15298
15527
  *
15299
- * @param {Maps} control Specifies the instance of the map
15300
15528
  */
15529
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
15301
15530
  constructor() { }
15302
15531
  /**
15303
15532
  * To export the file as image/svg format
15304
15533
  *
15305
- * @param {ExportType} type - Specifies the type of the document
15306
- * @param {string} fileName - Specifies the file name of the document
15307
- * @param {boolean} allowDownload - Specifies whether to download the document or not
15308
- * @param {PdfPageOrientation} orientation - Specifies the orientation of the PDF document to export the component
15309
- * @returns {Promise<string>} - Returns the promise string
15534
+ * @param {Maps} maps - Specifies the Maps instance.
15535
+ * @param {ExportType} type - Specifies the type of the document.
15536
+ * @param {string} fileName - Specifies the name of the PDF document.
15537
+ * @param {boolean} allowDownload - Specifies whether to download the document or not.
15538
+ * @param {PdfPageOrientation} orientation - Specifies the orientation of the PDF document to export the component.
15539
+ * @returns {Promise<string>} - Returns "null" value when the allowDownload is set to false.
15310
15540
  * @private
15311
15541
  */
15312
15542
  export(maps, type, fileName, allowDownload, orientation) {
@@ -15356,8 +15586,8 @@ class PdfExport {
15356
15586
  }
15357
15587
  else {
15358
15588
  const svgParentElement = document.getElementById(maps.element.id + '_MapAreaBorder');
15359
- let top = parseFloat(svgParentElement.getAttribute('y'));
15360
- let left = parseFloat(svgParentElement.getAttribute('x'));
15589
+ const top = parseFloat(svgParentElement.getAttribute('y'));
15590
+ const left = parseFloat(svgParentElement.getAttribute('x'));
15361
15591
  const xHttp = new XMLHttpRequest();
15362
15592
  const tileLength = maps.mapLayerPanel.tiles.length;
15363
15593
  for (let i = 0; i <= tileLength + 1; i++) {
@@ -15367,7 +15597,7 @@ class PdfExport {
15367
15597
  ctx.fillStyle = maps.background ? maps.background : '#FFFFFF';
15368
15598
  ctx.fillRect(0, 0, maps.availableSize.width, maps.availableSize.height);
15369
15599
  ctx.font = maps.titleSettings.textStyle.size + ' Arial';
15370
- let titleElement = document.getElementById(maps.element.id + '_Map_title');
15600
+ const titleElement = document.getElementById(maps.element.id + '_Map_title');
15371
15601
  if (!isNullOrUndefined(titleElement)) {
15372
15602
  ctx.fillStyle = titleElement.getAttribute('fill');
15373
15603
  ctx.fillText(maps.titleSettings.text, parseFloat(titleElement.getAttribute('x')), parseFloat(titleElement.getAttribute('y')));
@@ -15410,7 +15640,7 @@ class PdfExport {
15410
15640
  }
15411
15641
  else {
15412
15642
  setTimeout(() => {
15413
- let tileSvg = document.getElementById(maps.element.id + '_Tile_SVG');
15643
+ const tileSvg = document.getElementById(maps.element.id + '_Tile_SVG');
15414
15644
  tileImg.src = window.URL.createObjectURL(new Blob([(new XMLSerializer()).serializeToString(tileSvg)], { type: 'image/svg+xml' }));
15415
15645
  }, 300);
15416
15646
  }
@@ -15439,6 +15669,7 @@ class PdfExport {
15439
15669
  * @returns {void}
15440
15670
  * @private
15441
15671
  */
15672
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
15442
15673
  destroy() { }
15443
15674
  }
15444
15675