@syncfusion/ej2-maps 19.4.53 → 19.4.56-105067

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 (84) hide show
  1. package/.eslintrc.json +18 -3
  2. package/.github/PULL_REQUEST_TEMPLATE/Bug.md +72 -72
  3. package/.github/PULL_REQUEST_TEMPLATE/Feature.md +49 -49
  4. package/CHANGELOG.md +441 -422
  5. package/README.md +73 -73
  6. package/dist/ej2-maps.umd.min.js +1 -10
  7. package/dist/ej2-maps.umd.min.js.map +1 -1
  8. package/dist/es6/ej2-maps.es2015.js +1220 -653
  9. package/dist/es6/ej2-maps.es2015.js.map +1 -1
  10. package/dist/es6/ej2-maps.es5.js +1258 -692
  11. package/dist/es6/ej2-maps.es5.js.map +1 -1
  12. package/dist/global/ej2-maps.min.js +1 -10
  13. package/dist/global/ej2-maps.min.js.map +1 -1
  14. package/dist/global/index.d.ts +0 -9
  15. package/dist/ts/maps/layers/bing-map.ts +50 -0
  16. package/dist/ts/maps/layers/bubble.ts +290 -0
  17. package/dist/ts/maps/layers/color-mapping.ts +226 -0
  18. package/dist/ts/maps/layers/data-label.ts +418 -0
  19. package/dist/ts/maps/layers/layer-panel.ts +1480 -0
  20. package/dist/ts/maps/layers/legend.ts +2236 -0
  21. package/dist/ts/maps/layers/marker.ts +453 -0
  22. package/dist/ts/maps/layers/navigation-selected-line.ts +167 -0
  23. package/dist/ts/maps/maps.ts +2886 -0
  24. package/dist/ts/maps/model/base.ts +1843 -0
  25. package/dist/ts/maps/model/constants.ts +200 -0
  26. package/dist/ts/maps/model/export-image.ts +178 -0
  27. package/dist/ts/maps/model/export-pdf.ts +170 -0
  28. package/dist/ts/maps/model/interface.ts +823 -0
  29. package/dist/ts/maps/model/print.ts +104 -0
  30. package/dist/ts/maps/model/theme.ts +554 -0
  31. package/dist/ts/maps/user-interaction/annotation.ts +127 -0
  32. package/dist/ts/maps/user-interaction/highlight.ts +233 -0
  33. package/dist/ts/maps/user-interaction/selection.ts +321 -0
  34. package/dist/ts/maps/user-interaction/tooltip.ts +387 -0
  35. package/dist/ts/maps/user-interaction/zoom.ts +1767 -0
  36. package/dist/ts/maps/utils/enum.ts +368 -0
  37. package/dist/ts/maps/utils/helper.ts +3421 -0
  38. package/helper/e2e/index.js +3 -3
  39. package/helper/e2e/maps-helper.js +13 -13
  40. package/license +9 -9
  41. package/package.json +85 -85
  42. package/src/maps/layers/bing-map.d.ts +4 -0
  43. package/src/maps/layers/bing-map.js +16 -3
  44. package/src/maps/layers/bubble.d.ts +1 -2
  45. package/src/maps/layers/bubble.js +7 -12
  46. package/src/maps/layers/data-label.d.ts +1 -4
  47. package/src/maps/layers/data-label.js +32 -35
  48. package/src/maps/layers/layer-panel.d.ts +18 -1
  49. package/src/maps/layers/layer-panel.js +226 -72
  50. package/src/maps/layers/legend.d.ts +5 -2
  51. package/src/maps/layers/legend.js +170 -61
  52. package/src/maps/layers/marker.d.ts +2 -4
  53. package/src/maps/layers/marker.js +49 -48
  54. package/src/maps/layers/navigation-selected-line.d.ts +1 -2
  55. package/src/maps/layers/navigation-selected-line.js +7 -13
  56. package/src/maps/maps-model.d.ts +259 -251
  57. package/src/maps/maps.d.ts +25 -3
  58. package/src/maps/maps.js +179 -106
  59. package/src/maps/model/base-model.d.ts +1025 -1021
  60. package/src/maps/model/base.d.ts +5 -1
  61. package/src/maps/model/base.js +24 -24
  62. package/src/maps/model/constants.d.ts +6 -0
  63. package/src/maps/model/constants.js +6 -0
  64. package/src/maps/model/export-image.d.ts +2 -4
  65. package/src/maps/model/export-image.js +34 -33
  66. package/src/maps/model/export-pdf.d.ts +4 -6
  67. package/src/maps/model/export-pdf.js +31 -32
  68. package/src/maps/model/interface.d.ts +34 -26
  69. package/src/maps/model/print.d.ts +2 -5
  70. package/src/maps/model/print.js +32 -18
  71. package/src/maps/model/theme.js +7 -4
  72. package/src/maps/user-interaction/annotation.d.ts +1 -2
  73. package/src/maps/user-interaction/annotation.js +3 -4
  74. package/src/maps/user-interaction/highlight.d.ts +1 -2
  75. package/src/maps/user-interaction/highlight.js +11 -10
  76. package/src/maps/user-interaction/selection.d.ts +1 -2
  77. package/src/maps/user-interaction/selection.js +42 -19
  78. package/src/maps/user-interaction/tooltip.d.ts +3 -5
  79. package/src/maps/user-interaction/tooltip.js +27 -14
  80. package/src/maps/user-interaction/zoom.d.ts +3 -8
  81. package/src/maps/user-interaction/zoom.js +282 -162
  82. package/src/maps/utils/enum.d.ts +5 -1
  83. package/src/maps/utils/helper.d.ts +9 -1
  84. package/src/maps/utils/helper.js +82 -33
@@ -1,6 +1,6 @@
1
1
  import { click, itemSelection } from '../index';
2
2
  import { getElement, createStyle, customizeStyle, removeClass, getTargetElement, getElementByID } from '../utils/helper';
3
- import { isNullOrUndefined, Browser } from '@syncfusion/ej2-base';
3
+ import { isNullOrUndefined } from '@syncfusion/ej2-base';
4
4
  /**
5
5
  * Selection module class
6
6
  */
@@ -17,7 +17,6 @@ var Selection = /** @class */ (function () {
17
17
  Selection.prototype.addEventListener = function () {
18
18
  if (!this.maps.isDestroyed) {
19
19
  this.maps.on(click, this.mouseClick, this);
20
- this.maps.on(Browser.touchEndEvent, this.mouseClick, this);
21
20
  }
22
21
  };
23
22
  /**
@@ -30,7 +29,6 @@ var Selection = /** @class */ (function () {
30
29
  return;
31
30
  }
32
31
  this.maps.off(click, this.mouseClick);
33
- this.maps.off(Browser.touchEndEvent, this.mouseClick);
34
32
  };
35
33
  Selection.prototype.mouseClick = function (targetElement) {
36
34
  if (!isNullOrUndefined(targetElement['type']) && targetElement['type'].indexOf('touch') !== -1 &&
@@ -48,8 +46,12 @@ var Selection = /** @class */ (function () {
48
46
  var layerIndex = parseInt(targetElement.id.split('_LayerIndex_')[1].split('_')[0], 10);
49
47
  if (targetElement.id.indexOf('shapeIndex') > -1) {
50
48
  shapeIndex = parseInt(targetElement.id.split('_shapeIndex_')[1].split('_')[0], 10);
51
- shapeData = this.maps.layers[layerIndex].shapeData['features']['length'] > shapeIndex ?
52
- this.maps.layers[layerIndex].shapeData['features'][shapeIndex]['properties'] : null;
49
+ shapeData = !isNullOrUndefined(this.maps.layers[layerIndex].shapeData['features'])
50
+ && this.maps.layers[layerIndex].shapeData['features']['length'] > shapeIndex ?
51
+ this.maps.layers[layerIndex].shapeData['features'][shapeIndex]['properties'] :
52
+ !isNullOrUndefined(this.maps.layers[layerIndex].shapeData['geometries'])
53
+ && this.maps.layers[layerIndex].shapeData['geometries']['length'] > shapeIndex ?
54
+ this.maps.layers[layerIndex].shapeData['geometries'][shapeIndex]['properties'] : null;
53
55
  dataIndex = parseInt(targetElement.id.split('_dataIndex_')[1].split('_')[0], 10);
54
56
  data = isNullOrUndefined(dataIndex) ? null : this.maps.layers[layerIndex].dataSource[dataIndex];
55
57
  this.selectionsettings = this.maps.layers[layerIndex].selectionSettings;
@@ -133,15 +135,17 @@ var Selection = /** @class */ (function () {
133
135
  var parentElement;
134
136
  var children;
135
137
  var selectionClass;
138
+ var isLineStringShape = targetElement.parentElement.id.indexOf('LineString') > -1;
136
139
  var selectionsettings = this.selectionsettings;
137
140
  var border = {
138
- color: (targetElement.parentElement.id.indexOf('LineString') === -1) ? this.selectionsettings.border.color : (this.selectionsettings.border.color || this.selectionsettings.fill),
139
- width: (targetElement.parentElement.id.indexOf('LineString') === -1) ? (this.selectionsettings.border.width / (this.selectionType === 'Marker' ? 1 : this.maps.scale)) : (this.selectionsettings.border.width / this.maps.scale),
141
+ color: isLineStringShape ? (this.selectionsettings.fill || this.selectionsettings.border.color) : this.selectionsettings.border.color,
142
+ width: isLineStringShape ? (this.selectionsettings.border.width / this.maps.scale) :
143
+ (this.selectionsettings.border.width / (this.selectionType === 'Marker' ? 1 : this.maps.scale)),
140
144
  opacity: this.selectionsettings.border.opacity
141
145
  };
142
146
  var eventArgs = {
143
147
  opacity: this.selectionsettings.opacity,
144
- fill: (targetElement.parentElement.id.indexOf('LineString') === -1) ? (this.selectionType !== 'navigationline' ? this.selectionsettings.fill : 'none') : 'transparent',
148
+ fill: isLineStringShape ? 'transparent' : (this.selectionType !== 'navigationline' ? this.selectionsettings.fill : 'none'),
145
149
  border: border,
146
150
  name: itemSelection,
147
151
  target: targetElement.id,
@@ -153,7 +157,8 @@ var Selection = /** @class */ (function () {
153
157
  this.maps.trigger('itemSelection', eventArgs, function (observedArgs) {
154
158
  eventArgs.border.opacity = isNullOrUndefined(_this.selectionsettings.border.opacity) ? _this.selectionsettings.opacity : _this.selectionsettings.border.opacity;
155
159
  if (!eventArgs.cancel) {
156
- if (targetElement.getAttribute('class') === _this.selectionType + 'selectionMapStyle') {
160
+ if (targetElement.getAttribute('class') === _this.selectionType + 'selectionMapStyle'
161
+ || targetElement.getAttribute('class') === 'LineselectionMapStyle') {
157
162
  removeClass(targetElement);
158
163
  _this.removedSelectionList(targetElement);
159
164
  for (var m = 0; m < _this.maps.shapeSelectionItem.length; m++) {
@@ -172,7 +177,8 @@ var Selection = /** @class */ (function () {
172
177
  else {
173
178
  var layetElement = getElementByID(_this.maps.element.id + '_Layer_Collections');
174
179
  if (!_this.selectionsettings.enableMultiSelect &&
175
- layetElement.getElementsByClassName(_this.selectionType + 'selectionMapStyle').length > 0) {
180
+ (layetElement.getElementsByClassName(_this.selectionType + 'selectionMapStyle').length > 0 ||
181
+ layetElement.getElementsByClassName('LineselectionMapStyle').length > 0)) {
176
182
  var eleCount = layetElement.getElementsByClassName(_this.selectionType + 'selectionMapStyle').length;
177
183
  var ele = void 0;
178
184
  for (var k = 0; k < eleCount; k++) {
@@ -180,6 +186,14 @@ var Selection = /** @class */ (function () {
180
186
  removeClass(ele);
181
187
  _this.removedSelectionList(ele);
182
188
  }
189
+ if (layetElement.getElementsByClassName('LineselectionMapStyle').length > 0) {
190
+ eleCount = layetElement.getElementsByClassName('LineselectionMapStyle').length;
191
+ for (var k = 0; k < eleCount; k++) {
192
+ ele = layetElement.getElementsByClassName('LineselectionMapStyle')[0];
193
+ removeClass(ele);
194
+ _this.removedSelectionList(ele);
195
+ }
196
+ }
183
197
  if (_this.selectionType === 'Shape') {
184
198
  _this.maps.shapeSelectionItem = [];
185
199
  var selectionLength = _this.maps.selectedElementId.length;
@@ -197,13 +211,24 @@ var Selection = /** @class */ (function () {
197
211
  ele.setAttribute('stroke', _this.maps.layers[layerIndex_2].navigationLineSettings[index].color);
198
212
  }
199
213
  }
200
- if (!getElement(_this.selectionType + 'selectionMap')) {
201
- document.body.appendChild(createStyle(_this.selectionType + 'selectionMap', _this.selectionType + 'selectionMapStyle', eventArgs));
214
+ if (!isLineStringShape) {
215
+ if (!getElement(_this.selectionType + 'selectionMap')) {
216
+ document.body.appendChild(createStyle(_this.selectionType + 'selectionMap', _this.selectionType + 'selectionMapStyle', eventArgs));
217
+ }
218
+ else {
219
+ customizeStyle(_this.selectionType + 'selectionMap', _this.selectionType + 'selectionMapStyle', eventArgs);
220
+ }
221
+ targetElement.setAttribute('class', _this.selectionType + 'selectionMapStyle');
202
222
  }
203
223
  else {
204
- customizeStyle(_this.selectionType + 'selectionMap', _this.selectionType + 'selectionMapStyle', eventArgs);
224
+ if (!getElement('LineselectionMap')) {
225
+ document.body.appendChild(createStyle('LineselectionMap', 'LineselectionMapStyle', eventArgs));
226
+ }
227
+ else {
228
+ customizeStyle('LineselectionMap', 'LineselectionMapStyle', eventArgs);
229
+ }
230
+ targetElement.setAttribute('class', 'LineselectionMapStyle');
205
231
  }
206
- targetElement.setAttribute('class', _this.selectionType + 'selectionMapStyle');
207
232
  if (targetElement.getAttribute('class') === 'ShapeselectionMapStyle') {
208
233
  _this.maps.shapeSelectionClass = getElement(_this.selectionType + 'selectionMap');
209
234
  _this.maps.selectedElementId.push(targetElement.getAttribute('id'));
@@ -272,15 +297,13 @@ var Selection = /** @class */ (function () {
272
297
  /**
273
298
  * To destroy the selection.
274
299
  *
275
- * @param {Maps} maps - Specifies the maps instance.
276
300
  * @returns {void}
277
301
  * @private
278
302
  */
279
- Selection.prototype.destroy = function (maps) {
280
- /**
281
- * Destroy method performed here
282
- */
303
+ Selection.prototype.destroy = function () {
304
+ this.selectionsettings = null;
283
305
  this.removeEventListener();
306
+ this.maps = null;
284
307
  };
285
308
  return Selection;
286
309
  }());
@@ -5,14 +5,12 @@ import { Tooltip } from '@syncfusion/ej2-svg-base';
5
5
  */
6
6
  export declare class MapsTooltip {
7
7
  private maps;
8
- private tooltipSettings;
9
8
  /**
10
9
  * @private
11
10
  */
12
11
  svgTooltip: Tooltip;
13
12
  private isTouch;
14
13
  private tooltipId;
15
- private currentTime;
16
14
  private clearTimeout;
17
15
  tooltipTargetID: string;
18
16
  constructor(maps: Maps);
@@ -27,7 +25,8 @@ export declare class MapsTooltip {
27
25
  private setTooltipContent;
28
26
  private formatter;
29
27
  mouseUpHandler(e: PointerEvent): void;
30
- removeTooltip(): void;
28
+ removeTooltip(): boolean;
29
+ private clearTooltip;
31
30
  /**
32
31
  * To bind events for tooltip module
33
32
  */
@@ -42,9 +41,8 @@ export declare class MapsTooltip {
42
41
  /**
43
42
  * To destroy the tooltip.
44
43
  *
45
- * @param {Maps} maps Specifies the maps instance
46
44
  * @returns {void}
47
45
  * @private
48
46
  */
49
- destroy(maps: Maps): void;
47
+ destroy(): void;
50
48
  }
@@ -184,7 +184,7 @@ var MapsTooltip = /** @class */ (function () {
184
184
  options: tooltipOption,
185
185
  fill: option.fill,
186
186
  maps: this.maps,
187
- element: target, eventArgs: e
187
+ element: target, eventArgs: e, content: !isNullOrUndefined(currentData) ? currentData.toString() : ''
188
188
  };
189
189
  this.maps.trigger(tooltipRender, tooltipArgs, function (args) {
190
190
  if (!tooltipArgs.cancel && option.visible && !isNullOrUndefined(currentData) &&
@@ -202,7 +202,7 @@ var MapsTooltip = /** @class */ (function () {
202
202
  header: '',
203
203
  data: option['data'],
204
204
  template: option['template'],
205
- content: [currentData.toString()],
205
+ content: tooltipArgs.content.toString() != currentData.toString() ? [tooltipArgs.content.toString()] : [currentData.toString()],
206
206
  shapes: [],
207
207
  location: option['location'],
208
208
  palette: [markerFill],
@@ -218,7 +218,7 @@ var MapsTooltip = /** @class */ (function () {
218
218
  header: '',
219
219
  data: tooltipArgs.options['data'],
220
220
  template: tooltipArgs.options['template'],
221
- content: [currentData.toString()],
221
+ content: tooltipArgs.content.toString() != currentData.toString() ? [tooltipArgs.content.toString()] : [currentData.toString()],
222
222
  shapes: [],
223
223
  location: tooltipArgs.options['location'],
224
224
  palette: [markerFill],
@@ -228,6 +228,10 @@ var MapsTooltip = /** @class */ (function () {
228
228
  fill: tooltipArgs.fill || _this.maps.themeStyle.tooltipFillColor
229
229
  });
230
230
  }
231
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
232
+ if (_this.maps.isVue || _this.maps.isVue3) {
233
+ _this.svgTooltip.controlInstance = _this.maps;
234
+ }
231
235
  _this.svgTooltip.opacity = _this.maps.themeStyle.tooltipFillOpacity || _this.svgTooltip.opacity;
232
236
  _this.svgTooltip.appendTo(tooltipEle);
233
237
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -241,9 +245,7 @@ var MapsTooltip = /** @class */ (function () {
241
245
  }
242
246
  }
243
247
  else {
244
- _this.removeTooltip();
245
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
246
- _this.maps.clearTemplate();
248
+ _this.clearTooltip();
247
249
  }
248
250
  });
249
251
  if (this.svgTooltip) {
@@ -258,9 +260,7 @@ var MapsTooltip = /** @class */ (function () {
258
260
  });
259
261
  }
260
262
  else {
261
- this.removeTooltip();
262
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
263
- this.maps.clearTemplate();
263
+ this.clearTooltip();
264
264
  }
265
265
  }
266
266
  else {
@@ -270,9 +270,7 @@ var MapsTooltip = /** @class */ (function () {
270
270
  this.maps.notify(click, this);
271
271
  }
272
272
  else {
273
- this.removeTooltip();
274
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
275
- this.maps.clearTemplate();
273
+ this.clearTooltip();
276
274
  }
277
275
  }
278
276
  };
@@ -318,8 +316,18 @@ var MapsTooltip = /** @class */ (function () {
318
316
  }
319
317
  };
320
318
  MapsTooltip.prototype.removeTooltip = function () {
319
+ var isTooltipRemoved = false;
321
320
  if (document.getElementsByClassName('EJ2-maps-Tooltip').length > 0) {
322
321
  remove(document.getElementsByClassName('EJ2-maps-Tooltip')[0]);
322
+ isTooltipRemoved = true;
323
+ }
324
+ return isTooltipRemoved;
325
+ };
326
+ MapsTooltip.prototype.clearTooltip = function () {
327
+ var isTooltipRemoved = this.removeTooltip();
328
+ if (isTooltipRemoved) {
329
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
330
+ this.maps.clearTemplate();
323
331
  }
324
332
  };
325
333
  // eslint-disable-next-line valid-jsdoc
@@ -368,12 +376,17 @@ var MapsTooltip = /** @class */ (function () {
368
376
  /**
369
377
  * To destroy the tooltip.
370
378
  *
371
- * @param {Maps} maps Specifies the maps instance
372
379
  * @returns {void}
373
380
  * @private
374
381
  */
375
- MapsTooltip.prototype.destroy = function (maps) {
382
+ MapsTooltip.prototype.destroy = function () {
383
+ if (!isNullOrUndefined(this.svgTooltip)) {
384
+ this.svgTooltip.destroy();
385
+ }
386
+ this.svgTooltip = null;
376
387
  this.removeEventListener();
388
+ //TODO: Calling the below code throws spec issue.
389
+ //this.maps = null;
377
390
  };
378
391
  return MapsTooltip;
379
392
  }());
@@ -8,13 +8,10 @@ import { PanDirection } from '../utils/enum';
8
8
  export declare class Zoom {
9
9
  private maps;
10
10
  toolBarGroup: Element;
11
- private groupElements;
12
11
  private currentToolbarEle;
13
12
  zoomingRect: Rect;
14
13
  selectionColor: string;
15
14
  private fillColor;
16
- private zoomInElements;
17
- private zoomOutElements;
18
15
  private zoomElements;
19
16
  private panElements;
20
17
  isPanning: boolean;
@@ -28,7 +25,6 @@ export declare class Zoom {
28
25
  touchStartList: ITouches[] | TouchList;
29
26
  touchMoveList: ITouches[] | TouchList;
30
27
  previousTouchMoveList: ITouches[] | TouchList;
31
- private pinchRect;
32
28
  mouseDownPoints: Point;
33
29
  mouseMovePoints: Point;
34
30
  isDragZoom: boolean;
@@ -44,7 +40,6 @@ export declare class Zoom {
44
40
  private lastScale;
45
41
  private pinchFactor;
46
42
  private startTouches;
47
- private shapeZoomLocation;
48
43
  private zoomshapewidth;
49
44
  private index;
50
45
  intersect: any[];
@@ -69,6 +64,7 @@ export declare class Zoom {
69
64
  * @returns {void}
70
65
  */
71
66
  performZooming(position: Point, newZoomFactor: number, type: string): void;
67
+ private calculateInitalZoomTranslatePoint;
72
68
  private triggerZoomEvent;
73
69
  private getTileTranslatePosition;
74
70
  performRectZooming(): void;
@@ -87,7 +83,7 @@ export declare class Zoom {
87
83
  * @returns {void}
88
84
  */
89
85
  private animateTransform;
90
- applyTransform(animate?: boolean): void;
86
+ applyTransform(maps: Maps, animate?: boolean): void;
91
87
  private markerTranslates;
92
88
  /**
93
89
  * To translate the layer template elements
@@ -156,9 +152,8 @@ export declare class Zoom {
156
152
  /**
157
153
  * To destroy the zoom.
158
154
  *
159
- * @param {Maps} maps - Specifies the instance of the maps.
160
155
  * @returns {void}
161
156
  * @private
162
157
  */
163
- destroy(maps: Maps): void;
158
+ destroy(): void;
164
159
  }