@syncfusion/ej2-maps 19.4.56 → 20.1.47

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.
@@ -1204,7 +1204,7 @@ function marker(eventArgs, markerSettings, markerData, dataIndex, location, tran
1204
1204
  */
1205
1205
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1206
1206
  function markerTemplate(eventArgs, templateFn, markerID, data, markerIndex, markerTemplate, location, transPoint, scale, offset, maps) {
1207
- templateFn = getTemplateFunction(eventArgs.template);
1207
+ templateFn = getTemplateFunction(eventArgs.template, maps);
1208
1208
  if (templateFn && (templateFn(data, maps, eventArgs.template, maps.element.id + '_MarkerTemplate' + markerIndex, false).length)) {
1209
1209
  const templateElement = templateFn(data, maps, eventArgs.template, maps.element.id + '_MarkerTemplate' + markerIndex, false);
1210
1210
  const markerElement = convertElement(templateElement, markerID, data, markerIndex, maps);
@@ -2236,7 +2236,7 @@ function Internalize(maps, value) {
2236
2236
  * @private
2237
2237
  */
2238
2238
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2239
- function getTemplateFunction(template) {
2239
+ function getTemplateFunction(template, maps) {
2240
2240
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2241
2241
  let templateFn = null;
2242
2242
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2244,6 +2244,9 @@ function getTemplateFunction(template) {
2244
2244
  if (document.querySelectorAll(template).length) {
2245
2245
  templateFn = compile(document.querySelector(template).innerHTML.trim());
2246
2246
  }
2247
+ else if (maps.isVue || maps.isVue3) {
2248
+ templateFn = compile(template);
2249
+ }
2247
2250
  }
2248
2251
  catch (e) {
2249
2252
  templateFn = compile(template);
@@ -2646,6 +2649,7 @@ function createTooltip(id, text, top, left, fontSize) {
2646
2649
  'left:' + left.toString() + 'px;' +
2647
2650
  'color: #000000; ' +
2648
2651
  'background:' + '#FFFFFF' + ';' +
2652
+ 'z-index: 2;' +
2649
2653
  'position:absolute;border:1px solid #707070;font-size:' + fontSize + ';border-radius:2px;';
2650
2654
  if (!tooltip) {
2651
2655
  tooltip = createElement('div', {
@@ -2846,6 +2850,9 @@ function changeBorderWidth(element, index, scale, maps) {
2846
2850
  currentStroke = (isNullOrUndefined(borderWidth) ? 0 : borderWidth);
2847
2851
  }
2848
2852
  }
2853
+ else {
2854
+ currentStroke = (isNullOrUndefined(borderWidth) ? 0 : borderWidth);
2855
+ }
2849
2856
  }
2850
2857
  else {
2851
2858
  currentStroke = (isNullOrUndefined(borderWidth) ? 0 : borderWidth);
@@ -3372,11 +3379,11 @@ function getShapeColor(theme) {
3372
3379
  themePalette = ['#5ECB9B', '#A860F1', '#EBA844', '#557EF7', '#E9599B',
3373
3380
  '#BFC529', '#3BC6CF', '#7A68EC', '#74B706', '#EA6266'];
3374
3381
  break;
3375
- case 'fluentui':
3382
+ case 'fluent':
3376
3383
  themePalette = ['#614570', '#4C6FB1', '#CC6952', '#3F579A', '#4EA09B',
3377
3384
  '#6E7A89', '#D4515C', '#E6AF5D', '#639751', '#9D4D69'];
3378
3385
  break;
3379
- case 'fluentuidark':
3386
+ case 'fluentdark':
3380
3387
  themePalette = ['#8AB113', '#2A72D5', '#43B786', '#584EC6', '#E85F9C',
3381
3388
  '#6E7A89', '#EA6266', '#EBA844', '#26BC7A', '#BC4870'];
3382
3389
  break;
@@ -3665,7 +3672,7 @@ function getThemeStyle(theme) {
3665
3672
  shapeFill: '#495057'
3666
3673
  };
3667
3674
  break;
3668
- case 'fluentui':
3675
+ case 'fluent':
3669
3676
  style = {
3670
3677
  backgroundColor: 'rgba(255,255,255, 0.0)',
3671
3678
  areaBackgroundColor: 'rgba(255,255,255, 0.0)',
@@ -3688,7 +3695,7 @@ function getThemeStyle(theme) {
3688
3695
  shapeFill: '#F3F2F1'
3689
3696
  };
3690
3697
  break;
3691
- case 'fluentuidark':
3698
+ case 'fluentdark':
3692
3699
  style = {
3693
3700
  backgroundColor: 'rgba(255,255,255, 0.0)',
3694
3701
  areaBackgroundColor: 'rgba(255,255,255, 0.0)',
@@ -4657,10 +4664,10 @@ class Marker {
4657
4664
  eventArgs = markerShapeChoose(eventArgs, data);
4658
4665
  const lng = (!isNullOrUndefined(markerSettings.longitudeValuePath)) ?
4659
4666
  Number(getValueFromObject(data, markerSettings.longitudeValuePath)) : !isNullOrUndefined(data['longitude']) ?
4660
- parseFloat(data['longitude']) : !isNullOrUndefined(data['Longitude']) ? parseFloat(data['Longitude']) : 0;
4667
+ parseFloat(data['longitude']) : !isNullOrUndefined(data['Longitude']) ? parseFloat(data['Longitude']) : null;
4661
4668
  const lat = (!isNullOrUndefined(markerSettings.latitudeValuePath)) ?
4662
4669
  Number(getValueFromObject(data, markerSettings.latitudeValuePath)) : !isNullOrUndefined(data['latitude']) ?
4663
- parseFloat(data['latitude']) : !isNullOrUndefined(data['Latitude']) ? parseFloat(data['Latitude']) : 0;
4670
+ parseFloat(data['latitude']) : !isNullOrUndefined(data['Latitude']) ? parseFloat(data['Latitude']) : null;
4664
4671
  const offset = markerSettings.offset;
4665
4672
  if (!eventArgs.cancel && markerSettings.visible && !isNullOrUndefined(lng) && !isNullOrUndefined(lat)) {
4666
4673
  const markerID = this.maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_'
@@ -4705,7 +4712,7 @@ class Marker {
4705
4712
  this.maps.renderReactTemplates();
4706
4713
  }
4707
4714
  }
4708
- if (markerTemplateEle.childElementCount === (markerData.length - markerCount - nullCount) && getElementByID(this.maps.element.id + '_Secondary_Element')) {
4715
+ if (markerTemplateEle.childElementCount === (markerDataLength - markerCount - nullCount) && getElementByID(this.maps.element.id + '_Secondary_Element')) {
4709
4716
  getElementByID(this.maps.element.id + '_Secondary_Element').appendChild(markerTemplateEle);
4710
4717
  if (this.maps.checkInitialRender) {
4711
4718
  if (currentLayer.markerClusterSettings.allowClustering) {
@@ -4955,7 +4962,7 @@ class Marker {
4955
4962
  if ((target.indexOf('_cluster_') > -1)) {
4956
4963
  let isClusterSame = false;
4957
4964
  const clusterElement = document.getElementById(target.indexOf('_datalabel_') > -1 ? target.split('_datalabel_')[0] : target);
4958
- const indexes = clusterElement.innerHTML.split(',').map(Number);
4965
+ const indexes = layer.markerClusterSettings.shape === 'Balloon' ? clusterElement.children[0].innerHTML.split(',').map(Number) : clusterElement.innerHTML.split(',').map(Number);
4959
4966
  collection = [];
4960
4967
  for (const i of indexes) {
4961
4968
  collection.push({ data: marker$$1.dataSource[i], index: i });
@@ -6789,7 +6796,7 @@ class Annotations {
6789
6796
  if (argsData.cancel) {
6790
6797
  return;
6791
6798
  }
6792
- templateFn = getTemplateFunction(argsData.content);
6799
+ templateFn = getTemplateFunction(argsData.content, this.map);
6793
6800
  if (templateFn && templateFn(this.map, this.map, argsData.content, this.map.element.id + '_ContentTemplate_' + annotationIndex).length) {
6794
6801
  templateElement = Array.prototype.slice.call(templateFn(this.map, this.map, argsData.content, this.map.element.id + '_ContentTemplate_' + annotationIndex));
6795
6802
  const length = templateElement.length;
@@ -9636,7 +9643,7 @@ class DataLabel {
9636
9643
  this.value[index] = { rightWidth: xpositionEnds, leftWidth: xpositionStart, heightTop: start, heightBottom: end };
9637
9644
  let labelElement;
9638
9645
  if (eventargs.template !== '') {
9639
- templateFn = getTemplateFunction(eventargs.template);
9646
+ templateFn = getTemplateFunction(eventargs.template, this.maps);
9640
9647
  const templateElement = templateFn ? templateFn(!isNullOrUndefined(datasrcObj) ?
9641
9648
  datasrcObj : shapeData['properties'], this.maps, eventargs.template, this.maps.element.id + '_LabelTemplate', false) : document.createElement('div');
9642
9649
  templateElement.innerHTML = !templateFn ? eventargs.template : '';
@@ -11243,7 +11250,7 @@ class Legend {
11243
11250
  data[this.maps.legendSettings.showLegendPath];
11244
11251
  if (marker$$1.visible && showLegend && (!isNullOrUndefined(data['latitude'])) && (!isNullOrUndefined(data['longitude']))) {
11245
11252
  if (marker$$1.template) {
11246
- templateFn = getTemplateFunction(marker$$1.template);
11253
+ templateFn = getTemplateFunction(marker$$1.template, this.maps);
11247
11254
  const templateElement = templateFn(this.maps);
11248
11255
  const markerEle = isNullOrUndefined(templateElement.childElementCount) ? templateElement[0] :
11249
11256
  templateElement;
@@ -12716,6 +12723,10 @@ class MapsTooltip {
12716
12723
  fill: tooltipArgs.fill || this.maps.themeStyle.tooltipFillColor
12717
12724
  });
12718
12725
  }
12726
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12727
+ if (this.maps.isVue || this.maps.isVue3) {
12728
+ this.svgTooltip.controlInstance = this.maps;
12729
+ }
12719
12730
  this.svgTooltip.opacity = this.maps.themeStyle.tooltipFillOpacity || this.svgTooltip.opacity;
12720
12731
  this.svgTooltip.appendTo(tooltipEle);
12721
12732
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -12729,9 +12740,7 @@ class MapsTooltip {
12729
12740
  }
12730
12741
  }
12731
12742
  else {
12732
- this.removeTooltip();
12733
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12734
- this.maps.clearTemplate();
12743
+ this.clearTooltip();
12735
12744
  }
12736
12745
  });
12737
12746
  if (this.svgTooltip) {
@@ -12746,9 +12755,7 @@ class MapsTooltip {
12746
12755
  });
12747
12756
  }
12748
12757
  else {
12749
- this.removeTooltip();
12750
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12751
- this.maps.clearTemplate();
12758
+ this.clearTooltip();
12752
12759
  }
12753
12760
  }
12754
12761
  else {
@@ -12758,9 +12765,7 @@ class MapsTooltip {
12758
12765
  this.maps.notify(click, this);
12759
12766
  }
12760
12767
  else {
12761
- this.removeTooltip();
12762
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12763
- this.maps.clearTemplate();
12768
+ this.clearTooltip();
12764
12769
  }
12765
12770
  }
12766
12771
  }
@@ -12804,8 +12809,18 @@ class MapsTooltip {
12804
12809
  }
12805
12810
  }
12806
12811
  removeTooltip() {
12812
+ let isTooltipRemoved = false;
12807
12813
  if (document.getElementsByClassName('EJ2-maps-Tooltip').length > 0) {
12808
12814
  remove(document.getElementsByClassName('EJ2-maps-Tooltip')[0]);
12815
+ isTooltipRemoved = true;
12816
+ }
12817
+ return isTooltipRemoved;
12818
+ }
12819
+ clearTooltip() {
12820
+ const isTooltipRemoved = this.removeTooltip();
12821
+ if (isTooltipRemoved) {
12822
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12823
+ this.maps.clearTemplate();
12809
12824
  }
12810
12825
  }
12811
12826
  // eslint-disable-next-line valid-jsdoc
@@ -13392,10 +13407,10 @@ class Zoom {
13392
13407
  }
13393
13408
  const lati = (!isNullOrUndefined(markerSettings.latitudeValuePath)) ?
13394
13409
  Number(getValueFromObject(data, markerSettings.latitudeValuePath)) : !isNullOrUndefined(data['latitude']) ?
13395
- parseFloat(data['latitude']) : !isNullOrUndefined(data['Latitude']) ? data['Latitude'] : 0;
13410
+ parseFloat(data['latitude']) : !isNullOrUndefined(data['Latitude']) ? data['Latitude'] : null;
13396
13411
  const long = (!isNullOrUndefined(markerSettings.longitudeValuePath)) ?
13397
13412
  Number(getValueFromObject(data, markerSettings.longitudeValuePath)) : !isNullOrUndefined(data['longitude']) ?
13398
- parseFloat(data['longitude']) : !isNullOrUndefined(data['Longitude']) ? data['Longitude'] : 0;
13413
+ parseFloat(data['longitude']) : !isNullOrUndefined(data['Longitude']) ? data['Longitude'] : null;
13399
13414
  const offset = markerSettings.offset;
13400
13415
  if (!eventArgs.cancel && markerSettings.visible && !isNullOrUndefined(long) && !isNullOrUndefined(lati)) {
13401
13416
  const markerID = this.maps.element.id + '_LayerIndex_' + layerIndex + '_MarkerIndex_'
@@ -13415,10 +13430,10 @@ class Zoom {
13415
13430
  nullCount += (!isNaN(lati) && !isNaN(long)) ? 0 : 1;
13416
13431
  markerTemplateCounts += (eventArgs.cancel) ? 1 : 0;
13417
13432
  markerCounts += (eventArgs.cancel) ? 1 : 0;
13418
- this.maps.markerNullCount = (!isNullOrUndefined(lati) || !isNullOrUndefined(long))
13419
- ? this.maps.markerNullCount : this.maps.markerNullCount + 1;
13433
+ this.maps.markerNullCount = (isNullOrUndefined(lati) || isNullOrUndefined(long))
13434
+ ? this.maps.markerNullCount + 1 : this.maps.markerNullCount;
13420
13435
  const markerDataLength = markerDatas.length - this.maps.markerNullCount;
13421
- if (markerSVGObject.childElementCount === (markerDatas.length - markerTemplateCounts - nullCount) && (type !== 'Template')) {
13436
+ if (markerSVGObject.childElementCount === (markerDataLength - markerTemplateCounts - nullCount) && (type !== 'Template')) {
13422
13437
  layerElement.appendChild(markerSVGObject);
13423
13438
  if (currentLayers.markerClusterSettings.allowClustering) {
13424
13439
  this.maps.svgObject.appendChild(markerSVGObject);
@@ -13426,7 +13441,7 @@ class Zoom {
13426
13441
  clusterTemplate(currentLayers, markerSVGObject, this.maps, layerIndex, markerSVGObject, layerElement, true, true);
13427
13442
  }
13428
13443
  }
13429
- if (markerTemplateElements.childElementCount === (markerDatas.length - markerCounts - nullCount) && getElementByID(this.maps.element.id + '_Secondary_Element')) {
13444
+ if (markerTemplateElements.childElementCount === (markerDataLength - markerCounts - nullCount) && getElementByID(this.maps.element.id + '_Secondary_Element')) {
13430
13445
  getElementByID(this.maps.element.id + '_Secondary_Element').appendChild(markerTemplateElements);
13431
13446
  if (scale >= 1) {
13432
13447
  if (currentLayers.markerClusterSettings.allowClustering) {
@@ -13866,7 +13881,7 @@ class Zoom {
13866
13881
  const map = this.maps;
13867
13882
  this.toolBarGroup = map.renderer.createGroup({
13868
13883
  id: map.element.id + '_Zooming_KitCollection',
13869
- opacity: map.theme.toLowerCase() === 'fluentuidark' ? 0.6 : 0.3
13884
+ opacity: map.theme.toLowerCase() === 'fluentdark' ? 0.6 : 0.3
13870
13885
  });
13871
13886
  const kitHeight = 16;
13872
13887
  const kitWidth = 16;
@@ -14270,14 +14285,14 @@ class Zoom {
14270
14285
  if (document.getElementById(map.element.id + '_Zooming_ToolBar_Pan_Group')) {
14271
14286
  if (!this.maps.zoomSettings.enablePanning) {
14272
14287
  if (target.id.indexOf('_Zooming_ToolBar') > -1 || target.id.indexOf('_Zooming_Rect') > -1) {
14273
- getElementByID(map.element.id + '_Zooming_ToolBar_Pan_Rect').setAttribute('opacity', map.theme.toLowerCase() === 'fluentuidark' ? '0.6' : '0.3');
14274
- getElementByID(map.element.id + '_Zooming_ToolBar_Pan').setAttribute('opacity', map.theme.toLowerCase() === 'fluentuidark' ? '0.6' : '0.3');
14288
+ getElementByID(map.element.id + '_Zooming_ToolBar_Pan_Rect').setAttribute('opacity', map.theme.toLowerCase() === 'fluentdark' ? '0.6' : '0.3');
14289
+ getElementByID(map.element.id + '_Zooming_ToolBar_Pan').setAttribute('opacity', map.theme.toLowerCase() === 'fluentdark' ? '0.6' : '0.3');
14275
14290
  }
14276
14291
  }
14277
14292
  }
14278
14293
  }
14279
14294
  else {
14280
- getElementByID(map.element.id + '_Zooming_KitCollection').setAttribute('opacity', map.theme.toLowerCase() === 'fluentuidark' ? '0.6' : '0.3');
14295
+ getElementByID(map.element.id + '_Zooming_KitCollection').setAttribute('opacity', map.theme.toLowerCase() === 'fluentdark' ? '0.6' : '0.3');
14281
14296
  if (!this.maps.zoomSettings.enablePanning && document.getElementById(map.element.id + '_Zooming_ToolBar_Pan_Group')) {
14282
14297
  getElementByID(map.element.id + '_Zooming_ToolBar_Pan_Rect').setAttribute('opacity', '1');
14283
14298
  getElementByID(map.element.id + '_Zooming_ToolBar_Pan').setAttribute('opacity', '1');
@@ -14484,7 +14499,27 @@ class Print {
14484
14499
  getHTMLContent(elements) {
14485
14500
  const elementRect = getClientElement(this.control.element.id);
14486
14501
  let div = createElement('div');
14487
- div.setAttribute("style", "margin-top:" + elementRect["top"] + "px");
14502
+ let divElement = this.control.element.cloneNode(true);
14503
+ if (this.control.isTileMap) {
14504
+ for (let i = 0; i < divElement.childElementCount; i++) {
14505
+ if (divElement.children[i].id === this.control.element.id + '_tile_parent') {
14506
+ divElement.children[i].style.removeProperty('height');
14507
+ divElement.children[i].style.removeProperty('width');
14508
+ divElement.children[i].style.removeProperty('top');
14509
+ divElement.children[i].style.removeProperty('left');
14510
+ divElement.children[i].style.removeProperty('right');
14511
+ divElement.children[i].style.removeProperty('overflow');
14512
+ const svgElement = document.getElementById(this.control.element.id + '_Tile_SVG_Parent');
14513
+ divElement.children[i].children[0].style.overflow = 'hidden';
14514
+ divElement.children[i].children[0].style.position = 'absolute';
14515
+ divElement.children[i].children[0].style.height = svgElement.style.height;
14516
+ divElement.children[i].children[0].style.width = svgElement.style.width;
14517
+ divElement.children[i].children[0].style.left = svgElement.style.left;
14518
+ divElement.children[i].children[0].style.top = svgElement.style.top;
14519
+ break;
14520
+ }
14521
+ }
14522
+ }
14488
14523
  if (elements) {
14489
14524
  if (elements instanceof Array) {
14490
14525
  Array.prototype.forEach.call(elements, (value) => {
@@ -14499,7 +14534,7 @@ class Print {
14499
14534
  }
14500
14535
  }
14501
14536
  else {
14502
- div.appendChild(this.control.element.cloneNode(true));
14537
+ div.appendChild(divElement);
14503
14538
  }
14504
14539
  return div;
14505
14540
  }
@@ -14562,7 +14597,6 @@ class ImageExport {
14562
14597
  const isDownload = !(Browser.userAgent.toString().indexOf('HeadlessChrome') > -1);
14563
14598
  const toolbarEle = document.getElementById(this.control.element.id + '_ToolBar');
14564
14599
  const svgParent = document.getElementById(this.control.element.id + '_Tile_SVG_Parent');
14565
- const tileParent = document.getElementById(this.control.element.id + '_tile_parent');
14566
14600
  let svgDataElement;
14567
14601
  let tileSvg;
14568
14602
  let svgObject = getElementByID(this.control.element.id + '_svg').cloneNode(true);
@@ -14607,7 +14641,6 @@ class ImageExport {
14607
14641
  image.src = url;
14608
14642
  }
14609
14643
  else {
14610
- const extraSpace = getClientElement(this.control.element.id);
14611
14644
  const imgxHttp = new XMLHttpRequest();
14612
14645
  const imgTileLength = this.control.mapLayerPanel.tiles.length;
14613
14646
  for (let i = 0; i <= imgTileLength + 1; i++) {
@@ -14630,12 +14663,13 @@ class ImageExport {
14630
14663
  ctxt.clip();
14631
14664
  }
14632
14665
  else {
14633
- ctxt.setTransform(1, 0, 0, 1, parseFloat(svgParent.style.left), (parseFloat(tileParent.style.top) - extraSpace["top"]));
14666
+ ctxt.setTransform(1, 0, 0, 1, parseFloat(svgParent.style.left), parseFloat(svgParent.style.top));
14634
14667
  }
14635
14668
  }
14636
14669
  else {
14637
- ctxt.setTransform(1, 0, 0, 1, parseFloat(tile.style.left) + this.control.margin.left, parseFloat(tile.style.top) +
14638
- (parseFloat(tileParent.style.top)) - extraSpace["top"]);
14670
+ const tileParent = document.getElementById(this.control.element.id + '_tile_parent');
14671
+ ctxt.setTransform(1, 0, 0, 1, parseFloat(tile.style.left) + 10, parseFloat(tile.style.top) +
14672
+ (parseFloat(tileParent.style.top)));
14639
14673
  }
14640
14674
  ctxt.drawImage(exportTileImg, 0, 0);
14641
14675
  if (i === imgTileLength + 1) {
@@ -14737,11 +14771,10 @@ class PdfExport {
14737
14771
  const svgParent = document.getElementById(this.control.element.id + '_Tile_SVG_Parent');
14738
14772
  let svgData;
14739
14773
  const exportElement = this.control.svgObject.cloneNode(true);
14740
- const tileParent = document.getElementById(this.control.element.id + '_tile_parent');
14741
14774
  const backgroundElement = exportElement.childNodes[0];
14742
14775
  const backgroundColor = backgroundElement.getAttribute('fill');
14743
- if ((this.control.theme === 'Tailwind' || this.control.theme === 'TailwindDark' || this.control.theme === 'Bootstrap5' || this.control.theme === 'Bootstrap5Dark')
14744
- && (backgroundColor === 'rgba(255,255,255, 0.0)' || backgroundColor === 'transparent')) {
14776
+ if ((this.control.theme === 'Tailwind' || this.control.theme === 'TailwindDark' || this.control.theme === 'Bootstrap5' || this.control.theme === 'Bootstrap5Dark'
14777
+ || this.control.theme === 'Fluent' || this.control.theme === 'FluentDark') && (backgroundColor === 'rgba(255,255,255, 0.0)' || backgroundColor === 'transparent')) {
14745
14778
  exportElement.childNodes[0].setAttribute('fill', 'rgba(255,255,255, 1)');
14746
14779
  }
14747
14780
  const url = window.URL.createObjectURL(new Blob(type === 'SVG' ? [svgData] :
@@ -14770,7 +14803,6 @@ class PdfExport {
14770
14803
  image.src = url;
14771
14804
  }
14772
14805
  else {
14773
- const extraSpace = getClientElement(this.control.element.id);
14774
14806
  const xHttp = new XMLHttpRequest();
14775
14807
  const tileLength = this.control.mapLayerPanel.tiles.length;
14776
14808
  for (let i = 0; i <= tileLength + 1; i++) {
@@ -14793,12 +14825,13 @@ class PdfExport {
14793
14825
  ctx.clip();
14794
14826
  }
14795
14827
  else {
14796
- ctx.setTransform(1, 0, 0, 1, parseFloat(svgParent.style.left), (parseFloat(tileParent.style.top) - extraSpace["top"]));
14828
+ ctx.setTransform(1, 0, 0, 1, parseFloat(svgParent.style.left), parseFloat(svgParent.style.top));
14797
14829
  }
14798
14830
  }
14799
14831
  else {
14800
- ctx.setTransform(1, 0, 0, 1, parseFloat(tile.style.left) + this.control.margin.left, (parseFloat(tile.style.top) +
14801
- (parseFloat(tileParent.style.top)) - extraSpace["top"]));
14832
+ const tileParent = document.getElementById(this.control.element.id + '_tile_parent');
14833
+ ctx.setTransform(1, 0, 0, 1, parseFloat(tile.style.left) + 10, parseFloat(tile.style.top) +
14834
+ (parseFloat(tileParent.style.top)));
14802
14835
  }
14803
14836
  ctx.drawImage(tileImg, 0, 0);
14804
14837
  if (i === tileLength + 1) {