@syncfusion/ej2-maps 20.2.45 → 20.3.49

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 (45) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/dist/ej2-maps.min.js +10 -0
  3. package/dist/ej2-maps.umd.min.js +2 -2
  4. package/dist/ej2-maps.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-maps.es2015.js +329 -268
  6. package/dist/es6/ej2-maps.es2015.js.map +1 -1
  7. package/dist/es6/ej2-maps.es5.js +333 -273
  8. package/dist/es6/ej2-maps.es5.js.map +1 -1
  9. package/dist/global/ej2-maps.min.js +2 -2
  10. package/dist/global/ej2-maps.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +13 -13
  13. package/src/maps/layers/bing-map.d.ts +4 -0
  14. package/src/maps/layers/bing-map.js +7 -0
  15. package/src/maps/layers/bubble.d.ts +1 -2
  16. package/src/maps/layers/bubble.js +4 -5
  17. package/src/maps/layers/data-label.d.ts +1 -4
  18. package/src/maps/layers/data-label.js +17 -19
  19. package/src/maps/layers/layer-panel.d.ts +5 -0
  20. package/src/maps/layers/layer-panel.js +28 -5
  21. package/src/maps/layers/legend.d.ts +1 -2
  22. package/src/maps/layers/legend.js +30 -8
  23. package/src/maps/layers/marker.d.ts +2 -4
  24. package/src/maps/layers/marker.js +44 -44
  25. package/src/maps/layers/navigation-selected-line.d.ts +1 -2
  26. package/src/maps/layers/navigation-selected-line.js +7 -13
  27. package/src/maps/maps.js +19 -10
  28. package/src/maps/model/export-image.d.ts +2 -4
  29. package/src/maps/model/export-image.js +19 -27
  30. package/src/maps/model/export-pdf.d.ts +4 -6
  31. package/src/maps/model/export-pdf.js +22 -30
  32. package/src/maps/model/interface.d.ts +8 -0
  33. package/src/maps/model/print.d.ts +2 -5
  34. package/src/maps/model/print.js +15 -23
  35. package/src/maps/user-interaction/annotation.d.ts +1 -2
  36. package/src/maps/user-interaction/annotation.js +2 -3
  37. package/src/maps/user-interaction/highlight.d.ts +1 -2
  38. package/src/maps/user-interaction/highlight.js +3 -5
  39. package/src/maps/user-interaction/selection.d.ts +1 -2
  40. package/src/maps/user-interaction/selection.js +3 -5
  41. package/src/maps/user-interaction/tooltip.d.ts +1 -4
  42. package/src/maps/user-interaction/tooltip.js +7 -2
  43. package/src/maps/user-interaction/zoom.d.ts +2 -7
  44. package/src/maps/user-interaction/zoom.js +83 -66
  45. package/src/maps/utils/helper.js +25 -13
@@ -1111,7 +1111,10 @@ export function clusterTemplate(currentLayer, markerTemplate, maps, layerIndex,
1111
1111
  markerCluster.remove();
1112
1112
  }
1113
1113
  if (zoomCheck) {
1114
- document.getElementById(maps.element.id + '_Layer_Collections').appendChild(layerElement);
1114
+ var layerGroupElement = document.getElementById(maps.element.id + '_Layer_Collections');
1115
+ if (!isNullOrUndefined(layerGroupElement)) {
1116
+ layerGroupElement.appendChild(layerElement);
1117
+ }
1115
1118
  }
1116
1119
  });
1117
1120
  }
@@ -1128,15 +1131,16 @@ export function mergeSeparateCluster(sameMarkerData, maps, markerElement) {
1128
1131
  var markerIndex = sameMarkerData[0].markerIndex;
1129
1132
  var dataIndex = sameMarkerData[0].dataIndex;
1130
1133
  var markerId = maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_' + markerIndex;
1134
+ var marker = maps.layers[layerIndex].markerSettings[markerIndex];
1131
1135
  var clusterId = markerId + '_dataIndex_' + dataIndex + '_cluster_' + clusterIndex;
1132
- var clusterEle = getElement(clusterId);
1136
+ var clusterEle = maps.layers[layerIndex].markerClusterSettings.shape === 'Balloon' ? getElement(clusterId + '_Group') : getElement(clusterId);
1133
1137
  var clusterEleLabel = getElement(clusterId + '_datalabel_' + clusterIndex);
1134
1138
  clusterEle.setAttribute('visibility', 'visible');
1135
1139
  clusterEleLabel.setAttribute('visibility', 'visible');
1136
1140
  var markerEle;
1137
1141
  var markerDataLength = sameMarkerData[0].data.length;
1138
1142
  for (var i = 0; i < markerDataLength; i++) {
1139
- markerEle = getElement(markerId + '_dataIndex_' + sameMarkerData[0].data[i]['index']);
1143
+ markerEle = marker.shape === 'Balloon' ? getElement(markerId + '_dataIndex_' + sameMarkerData[0].data[i]['index'] + '_Group') : getElement(markerId + '_dataIndex_' + sameMarkerData[0].data[i]['index']);
1140
1144
  markerEle['style']['visibility'] = 'hidden';
1141
1145
  }
1142
1146
  removeElement(maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_' + markerIndex + '_markerClusterConnectorLine');
@@ -1158,13 +1162,13 @@ export function clusterSeparate(sameMarkerData, maps, markerElement, isDom) {
1158
1162
  var getElementFunction = isDom ? getElement : markerElement.querySelector.bind(markerElement);
1159
1163
  var getQueryConnect = isDom ? '' : '#';
1160
1164
  var markerId = maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_' + markerIndex;
1165
+ var marker = maps.layers[layerIndex].markerSettings[markerIndex];
1161
1166
  var clusterId = markerId + '_dataIndex_' + dataIndex + '_cluster_' + clusterIndex;
1162
- var clusterEle = getElementFunction(getQueryConnect + '' + clusterId);
1167
+ var clusterEle = maps.layers[layerIndex].markerClusterSettings.shape === 'Balloon' ? getElementFunction(getQueryConnect + '' + clusterId + '_Group') : getElementFunction(getQueryConnect + '' + clusterId);
1163
1168
  var clusterEleLabel = getElementFunction(getQueryConnect + '' + clusterId + '_datalabel_' + clusterIndex);
1164
1169
  clusterEle.setAttribute('visibility', 'hidden');
1165
1170
  clusterEleLabel.setAttribute('visibility', 'hidden');
1166
- var marker = maps.layers[layerIndex].markerSettings[markerIndex];
1167
- var markerEle = getElementFunction(getQueryConnect + '' + markerId + '_dataIndex_' + dataIndex);
1171
+ var markerEle = marker.shape === 'Balloon' ? getElementFunction(getQueryConnect + '' + markerId + '_dataIndex_' + dataIndex + '_Group') : getElementFunction(getQueryConnect + '' + markerId + '_dataIndex_' + dataIndex);
1168
1172
  var height = markerEle.parentElement.id.indexOf('Template_Group') > -1 ? markerEle.getBoundingClientRect().height : marker.height;
1169
1173
  var width = markerEle.parentElement.id.indexOf('Template_Group') > -1 ? markerEle.getBoundingClientRect().width : marker.width;
1170
1174
  var centerX = +clusterEle.getAttribute('transform').split('translate(')[1].trim().split(' ')[0];
@@ -1200,7 +1204,7 @@ export function clusterSeparate(sameMarkerData, maps, markerElement, isDom) {
1200
1204
  var x1 = centerX + radius * Math.sin((Math.PI * 2 * newAngle) / 360);
1201
1205
  var y1 = centerY + radius * Math.cos((Math.PI * 2 * newAngle) / 360);
1202
1206
  path += start + 'L ' + (x1) + ' ' + y1 + ' ';
1203
- markerEle = getElementFunction(getQueryConnect + '' + markerId + '_dataIndex_' + sameMarkerData[0].data[i]['index']);
1207
+ markerEle = marker.shape === 'Balloon' ? getElementFunction(getQueryConnect + '' + markerId + '_dataIndex_' + sameMarkerData[0].data[i]['index'] + '_Group') : getElementFunction(getQueryConnect + '' + markerId + '_dataIndex_' + sameMarkerData[0].data[i]['index']);
1204
1208
  if (markerEle.parentElement.id.indexOf('Template_Group') > -1) {
1205
1209
  markerEle['style']['transform'] = '';
1206
1210
  markerEle['style']['left'] = maps.isTileMap ? x1 - (width / 2) + 'px' : (x1 - (width / 2) - 10) + 'px';
@@ -1221,7 +1225,12 @@ export function clusterSeparate(sameMarkerData, maps, markerElement, isDom) {
1221
1225
  markerElement = isDom ? getElementFunction(maps.element.id + '_Markers_Group') : markerElement;
1222
1226
  var groupEle = maps.renderer.createGroup({ id: maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_' + markerIndex + '_markerClusterConnectorLine' });
1223
1227
  groupEle.appendChild(maps.renderer.drawPath(options));
1224
- markerElement.insertBefore(groupEle, markerElement.querySelector('#' + markerId + '_dataIndex_0'));
1228
+ if (marker.shape === 'Balloon') {
1229
+ markerElement.insertBefore(groupEle, markerElement.querySelector('#' + markerId + '_dataIndex_0_Group'));
1230
+ }
1231
+ else {
1232
+ markerElement.insertBefore(groupEle, markerElement.querySelector('#' + markerId + '_dataIndex_0'));
1233
+ }
1225
1234
  }
1226
1235
  /**
1227
1236
  *
@@ -1248,6 +1257,7 @@ export function marker(eventArgs, markerSettings, markerData, dataIndex, locatio
1248
1257
  dashArray: markerSettings.dashArray, borderOpacity: isNullOrUndefined(eventArgs.border.opacity) ? markerSettings.opacity :
1249
1258
  eventArgs.border.opacity
1250
1259
  };
1260
+ removeElement(markerID);
1251
1261
  var ele = drawSymbols(eventArgs.shape, eventArgs.imageUrl, { x: 0, y: 0 }, markerID, shapeCustom, markerCollection, maps);
1252
1262
  var x = (maps.isTileMap ? location.x : (location.x + transPoint.x) * scale) + offset.x;
1253
1263
  var y = (maps.isTileMap ? location.y : (location.y + transPoint.y) * scale) + offset.y;
@@ -1625,7 +1635,7 @@ export function drawBalloon(maps, options, size, location, type, element) {
1625
1635
  var y = size.height / 30;
1626
1636
  balloon.setAttribute('transform', 'translate(' + location.x + ', ' + location.y + ') scale(' + x + ', ' + y + ')');
1627
1637
  if (type === 'Marker') {
1628
- var g = maps.renderer.createGroup({ id: options.id });
1638
+ var g = maps.renderer.createGroup({ id: options.id + '_Group' });
1629
1639
  appendShape(balloon, g);
1630
1640
  pathElement = appendShape(g, element);
1631
1641
  }
@@ -1699,7 +1709,7 @@ export function checkShapeDataFields(dataSource, properties, dataPath, propertyP
1699
1709
  dataSource[i][dataPath]);
1700
1710
  var shapePath = checkPropertyPath(shapeDataPath, propertyPath, properties);
1701
1711
  var shapeDataPathValue = !isNullOrUndefined(shapeDataPath) && isNaN(properties[shapePath])
1702
- ? shapeDataPath.toLowerCase() : shapeDataPath;
1712
+ ? (typeof shapeDataPath === 'string' ? shapeDataPath.toLowerCase() : shapeDataPath) : shapeDataPath;
1703
1713
  var propertiesShapePathValue = !isNullOrUndefined(properties[shapePath]) && isNaN(properties[shapePath])
1704
1714
  ? properties[shapePath].toLowerCase() : properties[shapePath];
1705
1715
  if (shapeDataPathValue === propertiesShapePathValue) {
@@ -1724,7 +1734,8 @@ export function checkPropertyPath(shapeData, shapePropertyPath, shape) {
1724
1734
  var properties = (Object.prototype.toString.call(shapePropertyPath) === '[object Array]' ?
1725
1735
  shapePropertyPath : [shapePropertyPath]);
1726
1736
  for (var i = 0; i < properties.length; i++) {
1727
- var shapeDataValue = !isNullOrUndefined(shapeData) ? shapeData.toLowerCase() : shapeData;
1737
+ var shapeDataValue = !isNullOrUndefined(shapeData) && typeof shapeData === 'string' ?
1738
+ shapeData.toLowerCase() : shapeData;
1728
1739
  var shapePropertiesValue = !isNullOrUndefined(shape[properties[i]])
1729
1740
  && isNaN(shape[properties[i]])
1730
1741
  ? shape[properties[i]].toLowerCase() : shape[properties[i]];
@@ -2049,6 +2060,7 @@ export function getTranslate(mapObject, layer, animate) {
2049
2060
  mapHeight = size.height;
2050
2061
  }
2051
2062
  scaleFactor = parseFloat(Math.min(size.width / mapWidth, size.height / mapHeight).toFixed(2));
2063
+ scaleFactor = scaleFactor > 1.05 ? 1 : scaleFactor;
2052
2064
  mapWidth *= scaleFactor;
2053
2065
  mapHeight *= scaleFactor;
2054
2066
  var widthDiff = min['x'] !== 0 && mapObject.translateType === 'layers' ? availSize.width - size.width : 0;
@@ -2099,6 +2111,7 @@ export function getTranslate(mapObject, layer, animate) {
2099
2111
  else {
2100
2112
  if (!isNullOrUndefined(mapObject.previousProjection) && (mapObject.mapScaleValue === 1 || mapObject.mapScaleValue <= 1.05) && !mapObject.zoomModule.isDragZoom) {
2101
2113
  scaleFactor = parseFloat(Math.min(size.width / mapWidth, size.height / mapHeight).toFixed(2));
2114
+ scaleFactor = scaleFactor > 1.05 ? 1 : scaleFactor;
2102
2115
  mapWidth *= scaleFactor;
2103
2116
  x = size.x + ((-(min['x'])) + ((size.width / 2) - (mapWidth / 2)));
2104
2117
  mapHeight *= scaleFactor;
@@ -3143,8 +3156,7 @@ export function animate(element, delay, duration, process, end) {
3143
3156
  window.cancelAnimationFrame(clearAnimation);
3144
3157
  end.call(_this, { element: element });
3145
3158
  if (element.id.indexOf('Marker') > -1) {
3146
- console.log(element);
3147
- var markerElement = getElementByID(element.id.split('_')[0] + '_Markers_Group');
3159
+ var markerElement = getElementByID(element.id.split('_Layer')[0] + '_Markers_Group');
3148
3160
  markerElement.setAttribute('style', markerStyle);
3149
3161
  }
3150
3162
  }