@syncfusion/ej2-maps 19.4.56 → 19.4.57-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 -439
  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 +1161 -638
  9. package/dist/es6/ej2-maps.es2015.js.map +1 -1
  10. package/dist/es6/ej2-maps.es5.js +1200 -678
  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 +24 -3
  58. package/src/maps/maps.js +152 -90
  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 +26 -32
  66. package/src/maps/model/export-pdf.d.ts +4 -6
  67. package/src/maps/model/export-pdf.js +27 -35
  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 +33 -21
  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 +1 -1
  84. package/src/maps/utils/helper.js +62 -31
@@ -0,0 +1,1843 @@
1
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
+ /**
3
+ * Maps base document
4
+ */
5
+ import { Property, ChildProperty, Complex, Collection } from '@syncfusion/ej2-base';
6
+ import { DataManager, Query } from '@syncfusion/ej2-data';
7
+ import { Alignment, LegendPosition, LegendType, LegendMode, ShapeLayerType, Type, MarkerType, Orientation, MapAjax } from '../../index';
8
+ import { SmartLabelMode, IntersectAction } from '../../index';
9
+ import { BorderModel, ColorMappingSettingsModel, FontModel, CommonTitleSettingsModel, NavigationLineSettingsModel } from './base-model';
10
+ import { MarkerSettingsModel, MarkerClusterSettingsModel, ShapeSettingsModel, BubbleSettingsModel, ArrowModel } from './base-model';
11
+ import { DataLabelSettingsModel, TooltipSettingsModel, SubTitleSettingsModel, SelectionSettingsModel } from './base-model';
12
+ import { HighlightSettingsModel, ToggleLegendSettingsModel, ConnectorLineSettingsModel} from './base-model';
13
+ import { InitialShapeSelectionSettingsModel, InitialMarkerSelectionSettingsModel } from './base-model';
14
+ import { Theme } from './theme';
15
+ import { Point, GeoLocation } from '../utils/helper';
16
+ import { BingMapType, LegendArrangement, LegendShape, BubbleType, StaticMapType } from '../utils/enum';
17
+ import { AnnotationAlignment, GeometryType, LabelPosition, LabelIntersectAction } from '../index';
18
+
19
+
20
+ /**
21
+ * Sets and gets the options for customizing the annotation element in maps.
22
+ */
23
+
24
+ export class Annotation extends ChildProperty<Annotation> {
25
+
26
+ /**
27
+ * Sets and gets the content for the annotation in maps component.
28
+ */
29
+ @Property('')
30
+ public content: string;
31
+
32
+ /**
33
+ * Sets and gets the x position of the annotation in maps component.
34
+ */
35
+ @Property('0px')
36
+ public x: string;
37
+
38
+ /**
39
+ * Sets and gets the y position of the annotation in maps component.
40
+ */
41
+ @Property('0px')
42
+ public y: string;
43
+
44
+ /**
45
+ * Sets and gets the annotation element to be aligned vertically.
46
+ *
47
+ * @default None
48
+ */
49
+ @Property('None')
50
+ public verticalAlignment: AnnotationAlignment;
51
+
52
+ /**
53
+ * Sets and gets the annotation element to be aligned horizontally.
54
+ *
55
+ * @default None
56
+ */
57
+ @Property('None')
58
+ public horizontalAlignment: AnnotationAlignment;
59
+
60
+ /**
61
+ * Sets and gets the z-index of the annotation in maps component.
62
+ *
63
+ * @default '-1'
64
+ */
65
+ @Property('-1')
66
+ public zIndex: string;
67
+ }
68
+ export class Arrow extends ChildProperty<Arrow> {
69
+ /**
70
+ * Sets and gets the type of the position to place the arrow in navigation lines.
71
+ */
72
+ @Property('Start')
73
+ public position: string;
74
+ /**
75
+ * Enables or disables the visibility state of the arrow in navigation line.
76
+ */
77
+ @Property('false')
78
+ public showArrow: boolean;
79
+ /**
80
+ * Sets and gets the size of the arrow in navigation line in maps.
81
+ */
82
+ @Property(2)
83
+ public size: number;
84
+ /**
85
+ * Sets and gets the color for the arrow in navigation line.
86
+ */
87
+ @Property('black')
88
+ public color: string;
89
+ /**
90
+ * Sets and gets the offset value to position the arrow in navigation line.
91
+ */
92
+ @Property(0)
93
+ public offSet: number;
94
+ }
95
+
96
+ /**
97
+ * Sets and gets the options to customize the style of the text in data label, legend and other texts.
98
+ */
99
+ export class Font extends ChildProperty<Font> {
100
+
101
+ /**
102
+ * Sets and gets the size for the text in data label, legend and other texts.
103
+ */
104
+ @Property('12px')
105
+ public size: string;
106
+
107
+ /**
108
+ * Sets and gets the color for the text in data label, legend and other texts in maps component.
109
+ */
110
+ @Property(null)
111
+ public color: string;
112
+
113
+ /**
114
+ * Sets and gets the style of the text in data label, legend and other texts in maps component.
115
+ */
116
+ @Property('Roboto, Noto, Sans-serif')
117
+ public fontFamily: string;
118
+
119
+ /**
120
+ * Sets and gets the font weight of the text in data label, legend and other texts in maps component.
121
+ */
122
+ @Property('Medium')
123
+ public fontWeight: string;
124
+
125
+ /**
126
+ * Sets and gets the style of the text in data label, legend and other texts in maps component.
127
+ */
128
+ @Property('Medium')
129
+ public fontStyle: string;
130
+
131
+ /**
132
+ * Sets and gets the opacity for the text in data label, legend and other texts in maps component.
133
+ *
134
+ * @default 1
135
+ */
136
+ @Property(1)
137
+ public opacity: number;
138
+ }
139
+ /**
140
+ * Sets and gets the options to customize the border for the maps.
141
+ */
142
+ export class Border extends ChildProperty<Border> {
143
+
144
+ /**
145
+ * Sets and gets the color of the border. This property accepts the value in hex code and rgba string as a valid CSS color string.
146
+ */
147
+ @Property('')
148
+ public color: string;
149
+
150
+ /**
151
+ * Sets and gets the width of the border in maps.
152
+ */
153
+ @Property(0)
154
+ public width: number;
155
+ /**
156
+ * Sets and gets the opacity of the border in maps.
157
+ */
158
+ @Property(null)
159
+ public opacity: number;
160
+
161
+ }
162
+ /**
163
+ * Sets and gets the center position in maps.
164
+ */
165
+ export class CenterPosition extends ChildProperty<CenterPosition> {
166
+
167
+ /**
168
+ * Sets and gets the latitude for the center position of maps.
169
+ *
170
+ * @default null
171
+ */
172
+ @Property(null)
173
+ public latitude: number;
174
+
175
+ /**
176
+ * Sets and gets the longitude for the center position of maps.
177
+ *
178
+ * @default null
179
+ */
180
+ @Property(null)
181
+ public longitude: number;
182
+
183
+ }
184
+ /**
185
+ * Sets and gets the options to customize the tooltip for layers, markers, and bubble in maps.
186
+ */
187
+ export class TooltipSettings extends ChildProperty<TooltipSettings> {
188
+ /**
189
+ * Enables or disables the tooltip visibility for layers, markers, and bubbles in maps.
190
+ *
191
+ * @default false
192
+ */
193
+ @Property(false)
194
+ public visible: boolean;
195
+ /**
196
+ * Sets and gets the tooltip template for layers, markers, and bubbles in maps.
197
+ *
198
+ * @default ''
199
+ */
200
+ @Property('')
201
+ public template: string;
202
+ /**
203
+ * Sets and gets the color of the tooltip in layers, markers, and bubbles of maps.
204
+ */
205
+ @Property('')
206
+ public fill: string;
207
+
208
+ /**
209
+ * Sets and gets the options for customizing the color and width of the border of the tooltip in layers, markers, and bubbles of maps.
210
+ */
211
+ @Complex<BorderModel>({ color: 'transparent', width: 1 }, Border)
212
+ public border: BorderModel;
213
+
214
+ /**
215
+ * Sets and gets the options for customizing the style of the text in tooltip for layers, markers, and bubbles of maps.
216
+ */
217
+ @Complex<FontModel>(Theme.tooltipLabelFont, Font)
218
+ public textStyle: FontModel;
219
+
220
+ /**
221
+ * Sets and gets the format of the tooltip in layers, markers, and bubbles of maps.
222
+ *
223
+ * @default null
224
+ */
225
+ @Property(null)
226
+ public format: string;
227
+ /**
228
+ * Sets and gets the value from the data source based on which the tooltip is visible on layers, markers, and bubbles of maps.
229
+ *
230
+ * @default null
231
+ */
232
+ @Property(null)
233
+ public valuePath: string;
234
+ }
235
+ /**
236
+ * Sets and gets the margin for the maps component.
237
+ */
238
+ export class Margin extends ChildProperty<Margin> {
239
+
240
+ /**
241
+ * Sets and gets the left margin for maps.
242
+ *
243
+ * @default 10
244
+ */
245
+ @Property(10)
246
+ public left: number;
247
+
248
+ /**
249
+ * Sets and gets the right margin for maps.
250
+ *
251
+ * @default 10
252
+ */
253
+ @Property(10)
254
+ public right: number;
255
+
256
+ /**
257
+ * Sets and gets the top margin for maps.
258
+ *
259
+ * @default 10
260
+ */
261
+ @Property(10)
262
+ public top: number;
263
+
264
+ /**
265
+ * Sets and gets the bottom margin for maps.
266
+ *
267
+ * @default 10
268
+ */
269
+ @Property(10)
270
+ public bottom: number;
271
+ }
272
+ /*
273
+ * Sets and gets the options to customize the line that connects the markers in marker cluster in maps.
274
+ */
275
+ export class ConnectorLineSettings extends ChildProperty<ConnectorLineSettings> {
276
+ /**
277
+ * Sets and gets the color for connector line between the markers in marker cluster.
278
+ *
279
+ * @default '#000000'
280
+ */
281
+ @Property('#000000')
282
+ public color: string;
283
+
284
+ /**
285
+ * Sets and gets the line width for connector line between the markers in marker cluster.
286
+ *
287
+ * @default 1
288
+ */
289
+ @Property(1)
290
+ public width: number;
291
+
292
+ /**
293
+ * Sets and gets the opacity for connector line between the markers in marker cluster.
294
+ *
295
+ * @default 1
296
+ */
297
+ @Property(1)
298
+ public opacity: number;
299
+ }
300
+
301
+ /**
302
+ * Sets and gets the options to customize the cluster of markers in Maps.
303
+ */
304
+ export class MarkerClusterSettings extends ChildProperty<MarkerClusterSettings> {
305
+ /**
306
+ * Enables or disables the visibility state of the clustering of markers in the maps component.
307
+ *
308
+ * @default false
309
+ */
310
+ @Property(false)
311
+ public allowClustering: boolean;
312
+ /**
313
+ * Sets and gets the options for customizing the color and width of the border of cluster in maps.
314
+ */
315
+ @Complex<BorderModel>({ color: 'transparent', width: 1 }, Border)
316
+ public border: BorderModel;
317
+ /**
318
+ * Sets and gets the fill color of the cluster.
319
+ *
320
+ * @default '#D2691E'
321
+ */
322
+ @Property('#D2691E')
323
+ public fill: string;
324
+ /**
325
+ * Sets and gets the opacity of the marker cluster.
326
+ *
327
+ * @default 1
328
+ */
329
+ @Property(1)
330
+ public opacity: number;
331
+ /**
332
+ * Sets and gets shape for the cluster of markers.
333
+ *
334
+ * @default Rectangle
335
+ */
336
+ @Property('Rectangle')
337
+ public shape: MarkerType;
338
+
339
+ /**
340
+ * Sets and gets the width of the marker cluster in maps.
341
+ *
342
+ * @default 12
343
+ */
344
+ @Property(12)
345
+ public width: number;
346
+
347
+ /**
348
+ * Sets and gets the height of the marker cluster in maps.
349
+ *
350
+ * @default 12
351
+ */
352
+ @Property(12)
353
+ public height: number;
354
+ /**
355
+ * Sets and gets the offset position for the marker cluster in maps.
356
+ */
357
+ @Property(new Point(0, 0))
358
+ public offset: Point;
359
+ /**
360
+ * Sets and gets the URL path for the marker cluster when the cluster shape is set as image in maps.
361
+ */
362
+ @Property('')
363
+ public imageUrl: string;
364
+ /**
365
+ * Sets and gets the dash array for the marker cluster in maps.
366
+ *
367
+ * @default ''
368
+ */
369
+ @Property('')
370
+ public dashArray: string;
371
+ /**
372
+ * Sets and gets the options to customize the text in marker cluster.
373
+ */
374
+ @Complex<FontModel>({}, Font)
375
+ public labelStyle: FontModel;
376
+ /**
377
+ * Enables or disables the cluster expand when many markers are in same location.
378
+ *
379
+ * @default false
380
+ */
381
+ @Property(false)
382
+ public allowClusterExpand: boolean;
383
+ /**
384
+ * Sets and gets the options to customize the connector line in cluster separating the markers.
385
+ */
386
+ @Complex<ConnectorLineSettingsModel>({}, ConnectorLineSettings)
387
+ public connectorLineSettings: ConnectorLineSettingsModel;
388
+ }
389
+ /**
390
+ * Sets and gets the data in the marker cluster.
391
+ */
392
+ export class MarkerClusterData extends ChildProperty<MarkerClusterData> {
393
+ /**
394
+ * Sets and gets the data for the marker cluster.
395
+ *
396
+ * @private
397
+ */
398
+ public data: Object[];
399
+ /**
400
+ * Sets and gets the index value for the layer in which the marker cluster is rendered.
401
+ *
402
+ * @private
403
+ */
404
+ public layerIndex: number;
405
+ /**
406
+ * Sets and gets the index value for the marker in the maps.
407
+ *
408
+ * @private
409
+ */
410
+ public markerIndex: number;
411
+ /**
412
+ * Sets and gets the index value for the marker in the maps.
413
+ *
414
+ * @private
415
+ */
416
+ public dataIndex: number;
417
+ /**
418
+ * Sets and gets the index value for cluster for which the click operation is triggered.
419
+ *
420
+ * @private
421
+ */
422
+ public targetClusterIndex: number;
423
+ /**
424
+ * Enables or disables the same cluster occurs in maps.
425
+ *
426
+ * @private
427
+ */
428
+ public isClusterSame: boolean;
429
+ }
430
+ /**
431
+ * Sets and gets the options to customize the color-mapping in maps.
432
+ */
433
+ export class ColorMappingSettings extends ChildProperty<ColorMappingSettings> {
434
+ /**
435
+ * Sets and gets the value from where the range color-mapping starts.
436
+ *
437
+ * @aspDefaultValueIgnore
438
+ * @default null
439
+ */
440
+ @Property(null)
441
+ public from: number;
442
+ /**
443
+ * Sets and gets the value to where the range color-mapping ends.
444
+ *
445
+ * @aspDefaultValueIgnore
446
+ * @default null
447
+ */
448
+ @Property(null)
449
+ public to: number;
450
+ /**
451
+ * Sets and gets the value for the color-mapping from the data source.
452
+ *
453
+ * @default null
454
+ */
455
+ @Property(null)
456
+ public value: string;
457
+ /**
458
+ * Sets and gets the color for the color-mapping in maps.
459
+ *
460
+ * @default null
461
+ */
462
+ @Property(null)
463
+ public color: string | string[];
464
+ /**
465
+ * Sets and gets the minimum opacity for the color-mapping in maps.
466
+ *
467
+ * @default null
468
+ */
469
+ @Property(null)
470
+ public minOpacity: number;
471
+ /**
472
+ * Sets and gets the maximum opacity for the color-mapping in maps.
473
+ *
474
+ * @default null
475
+ */
476
+ @Property(null)
477
+ public maxOpacity: number;
478
+ /**
479
+ * Sets and gets the label for the color-mapping from the data source in maps.
480
+ *
481
+ * @default null
482
+ */
483
+ @Property(null)
484
+ public label: string;
485
+ /**
486
+ * Enables or disables the visibility state of legend for the color-mapping shapes in maps.
487
+ *
488
+ * @default true
489
+ */
490
+ @Property(true)
491
+ public showLegend: boolean;
492
+ }
493
+
494
+ /**
495
+ * To configure the initial marker shape selection settings
496
+ */
497
+ export class InitialMarkerSelectionSettings extends ChildProperty<InitialMarkerSelectionSettings> {
498
+
499
+ /**
500
+ * To initially select the marker latitude.
501
+ *
502
+ * @default null
503
+ */
504
+ @Property(null)
505
+ public latitude: number;
506
+ /**
507
+ * To initially select the marker longitude
508
+ *
509
+ * @default null
510
+ */
511
+ @Property(null)
512
+ public longitude: number;
513
+ }
514
+
515
+ /**
516
+ * Sets and gets the shapes that is selected initially on rendering the maps.
517
+ */
518
+ export class InitialShapeSelectionSettings extends ChildProperty<InitialShapeSelectionSettings> {
519
+
520
+ /**
521
+ * Sets and gets the property name from the data source in maps.
522
+ *
523
+ * @default null
524
+ */
525
+ @Property(null)
526
+ public shapePath: string;
527
+ /**
528
+ * Sets and gets the value for the shape from data source in maps.
529
+ *
530
+ * @default null
531
+ */
532
+ @Property(null)
533
+ public shapeValue: string;
534
+ }
535
+ /**
536
+ * Sets and gets the options to customize the maps on selecting the shapes.
537
+ */
538
+ export class SelectionSettings extends ChildProperty<SelectionSettings> {
539
+
540
+ /**
541
+ * Enables or disables the selection for the layers, markers in maps.
542
+ *
543
+ * @default false
544
+ */
545
+ @Property(false)
546
+ public enable: boolean;
547
+ /**
548
+ * Sets and gets the color for the shape that is selected.
549
+ *
550
+ * @default null
551
+ */
552
+ @Property(null)
553
+ public fill: string;
554
+ /**
555
+ * Sets and gets the opacity for the shape that is selected.
556
+ *
557
+ * @default 1
558
+ */
559
+ @Property(1)
560
+ public opacity: number;
561
+ /**
562
+ * Enables or disables the selection for many shapes in maps.
563
+ *
564
+ * @default false
565
+ */
566
+ @Property(false)
567
+ public enableMultiSelect: boolean;
568
+
569
+ /**
570
+ * Sets and gets the options for customizing the color and width of the border of selected shapes in maps.
571
+ */
572
+ @Complex<BorderModel>({ color: 'transparent', width: 0 }, Border)
573
+ public border: BorderModel;
574
+ }
575
+ /**
576
+ * Sets and gets the options to customize the shapes on which the mouse has hovered in maps.
577
+ */
578
+ export class HighlightSettings extends ChildProperty<HighlightSettings> {
579
+
580
+ /**
581
+ * Sets and gets the color for the shapes on which the mouse has hovered in maps.
582
+ *
583
+ * @default null
584
+ */
585
+ @Property(null)
586
+ public fill: string;
587
+ /**
588
+ * Enables or disables the highlight settings for maps.
589
+ *
590
+ * @default false
591
+ */
592
+ @Property(false)
593
+ public enable: boolean;
594
+ /**
595
+ * Sets and gets the opacity for the highlighted shapes in maps.
596
+ *
597
+ * @default 1
598
+ */
599
+ @Property(1)
600
+ public opacity: number;
601
+ /**
602
+ * Sets and gets the options for customizing the color and width of the border for the highlighted shapes in maps.
603
+ */
604
+ @Complex<BorderModel>({ color: 'transparent', width: 0 }, Border)
605
+ public border: BorderModel;
606
+
607
+ }
608
+ /**
609
+ * Sets and gets the options to customize the navigation line in maps.
610
+ */
611
+ export class NavigationLineSettings extends ChildProperty<NavigationLineSettings> {
612
+ /**
613
+ * Enables or disables the navigation lines to be drawn in maps.
614
+ *
615
+ * @default false
616
+ */
617
+ @Property(false)
618
+ public visible: boolean;
619
+ /**
620
+ * Sets and gets the width of the navigation lines in maps.
621
+ *
622
+ * @default 1
623
+ */
624
+ @Property(1)
625
+ public width: number;
626
+ /**
627
+ * Sets and gets the longitude for the navigation lines drawn in maps.
628
+ *
629
+ * @default []
630
+ */
631
+ @Property(null)
632
+ public longitude: number[];
633
+ /**
634
+ * Sets and gets the latitude value for the navigation lines drawn in maps.
635
+ *
636
+ * @default []
637
+ */
638
+ @Property(null)
639
+ public latitude: number[];
640
+ /**
641
+ * Sets and gets the dash-array for the navigation lines drawn in maps.
642
+ *
643
+ * @default ''
644
+ */
645
+ @Property('')
646
+ public dashArray: string;
647
+ /**
648
+ * Sets and gets the color for the navigation lines in maps.
649
+ *
650
+ */
651
+ @Property('black')
652
+ public color: string;
653
+ /**
654
+ * Sets and gets the angle of curve connecting different locations in maps.
655
+ *
656
+ * @default 0
657
+ */
658
+ @Property(0)
659
+ public angle: number;
660
+ /**
661
+ * Sets and gets the options to customize the arrow for the navigation line in maps.
662
+ */
663
+ @Complex<ArrowModel>({ showArrow: false, position: 'Start', size: 5, color: 'black' }, Arrow)
664
+ public arrowSettings: ArrowModel;
665
+ /**
666
+ * Sets and gets the selection settings of the navigation line in maps.
667
+ */
668
+ @Complex<SelectionSettingsModel>({}, SelectionSettings)
669
+ public selectionSettings: SelectionSettingsModel;
670
+ /**
671
+ * Sets and gets the highlight settings of the navigation line in maps.
672
+ */
673
+ @Complex<HighlightSettingsModel>({}, HighlightSettings)
674
+ public highlightSettings: HighlightSettingsModel;
675
+ }
676
+ /**
677
+ * Sets and gets the options to customize the bubble elements in maps.
678
+ */
679
+ export class BubbleSettings extends ChildProperty<BubbleSettings> {
680
+ /**
681
+ * Sets and gets the options to customize the color and width of the border for the bubble in maps.
682
+ */
683
+ @Complex<BorderModel>({}, Border)
684
+ public border: BorderModel;
685
+ /**
686
+ * Enables or disables the visibility state of the bubbles in maps.
687
+ *
688
+ * @default false
689
+ */
690
+ @Property(false)
691
+ public visible: boolean;
692
+ /**
693
+ * Sets and gets the data source for the bubble.
694
+ * The data source must contain the size value of the bubble that can be bound to the bubble
695
+ * of the Maps using the valuePath property in the bubbleSettings.
696
+ * The data source can contain data such as color, and the other information that can be bound to the bubble, and tooltip of the bubble.
697
+ *
698
+ * @isObservable true
699
+ * @default []
700
+ */
701
+ @Property([])
702
+ public dataSource: Object[] | DataManager;
703
+ /**
704
+ * Sets and gets the query to select particular data from the bubble data.
705
+ * This property is applicable only when the data source is created by data manager.
706
+ *
707
+ * @default null
708
+ */
709
+ @Property()
710
+ public query: Query;
711
+ /**
712
+ * Sets and gets the duration for the animation for bubble in maps.
713
+ *
714
+ * @default 1000
715
+ */
716
+ @Property(1000)
717
+ public animationDuration: number;
718
+
719
+ /**
720
+ * Sets and gets the delay in animation for bubble in maps.
721
+ *
722
+ * @default 0
723
+ */
724
+ @Property(0)
725
+ public animationDelay: number;
726
+
727
+ /**
728
+ * Sets and gets the color for the bubble in maps.
729
+ *
730
+ * @default ''
731
+ */
732
+ @Property('')
733
+ public fill: string;
734
+ /**
735
+ * Sets and gets the minimum radius for the bubble in maps.
736
+ *
737
+ * @default 10
738
+ */
739
+ @Property(10)
740
+ public minRadius: number;
741
+ /**
742
+ * Sets and gets the maximum radius for the bubble in maps.
743
+ *
744
+ * @default 20
745
+ */
746
+ @Property(20)
747
+ public maxRadius: number;
748
+ /**
749
+ * Sets and gets the opacity of the bubble in maps.
750
+ *
751
+ * @default 1
752
+ */
753
+ @Property(1)
754
+ public opacity: number;
755
+ /**
756
+ * Sets and gets the value from the data source of bubble settings for the bubble to be rendered in maps.
757
+ *
758
+ * @default null
759
+ */
760
+ @Property(null)
761
+ public valuePath: string;
762
+ /**
763
+ * Sets and gets the type of the bubble in maps.
764
+ *
765
+ * @default Circle
766
+ */
767
+ @Property('Circle')
768
+ public bubbleType: BubbleType;
769
+ /**
770
+ * Sets and gets the value from the data source of bubble settings for the color of the bubble in maps.
771
+ *
772
+ * @default null
773
+ */
774
+ @Property(null)
775
+ public colorValuePath: string;
776
+ /**
777
+ * Sets and gets the color-mapping for the bubble in maps.
778
+ *
779
+ * @default []
780
+ */
781
+ @Collection<ColorMappingSettingsModel>([], ColorMappingSettings)
782
+ public colorMapping: ColorMappingSettingsModel[];
783
+
784
+ /**
785
+ * Sets and gets the options to customize the tooltip for the bubbles in maps.
786
+ */
787
+ @Complex<TooltipSettingsModel>({}, TooltipSettings)
788
+ public tooltipSettings: TooltipSettingsModel;
789
+ /**
790
+ * Sets and gets the selection settings for the bubble in maps.
791
+ */
792
+ @Complex<SelectionSettingsModel>({}, SelectionSettings)
793
+ public selectionSettings: SelectionSettingsModel;
794
+ /**
795
+ * Sets and gets the highlight settings for the bubble in maps.
796
+ */
797
+ @Complex<HighlightSettingsModel>({}, HighlightSettings)
798
+ public highlightSettings: HighlightSettingsModel;
799
+ }
800
+
801
+ /**
802
+ * Sets and gets the title for the maps.
803
+ */
804
+ export class CommonTitleSettings extends ChildProperty<CommonTitleSettings> {
805
+ /**
806
+ * Sets and gets the text for the title in maps.
807
+ *
808
+ * @default ''
809
+ */
810
+ @Property('')
811
+ public text: string;
812
+ /**
813
+ * Sets and gets the description of the title in maps.
814
+ *
815
+ * @default ''
816
+ */
817
+ @Property('')
818
+ public description: string;
819
+ }
820
+ /**
821
+ * Sets and gets the subtitle for maps.
822
+ */
823
+ export class SubTitleSettings extends CommonTitleSettings {
824
+ /**
825
+ * Sets and gets the options for customizing the text in the subtitle for maps.
826
+ */
827
+ @Complex<FontModel>({ size: null, fontWeight: null, fontFamily: null }, Font)
828
+ public textStyle: FontModel;
829
+ /**
830
+ * Sets and gets the alignment of the subtitle for maps.
831
+ *
832
+ * @default Center
833
+ */
834
+ @Property('Center')
835
+ public alignment: Alignment;
836
+ }
837
+ /**
838
+ * Sets and gets the title for the maps.
839
+ */
840
+ export class TitleSettings extends CommonTitleSettings {
841
+ /**
842
+ * Sets and gets the options for customizing the text of the title in Maps.
843
+ */
844
+ @Complex<FontModel>({ size: null, fontWeight: null, fontFamily: null }, Font)
845
+ public textStyle: FontModel;
846
+ /**
847
+ * Sets and gets the alignment for the text in the title for the maps.
848
+ *
849
+ * @default Center
850
+ */
851
+ @Property('Center')
852
+ public alignment: Alignment;
853
+ /**
854
+ * Sets and gets the subtitle for the maps.
855
+ */
856
+ @Complex<SubTitleSettingsModel>({}, SubTitleSettings)
857
+ public subtitleSettings: SubTitleSettingsModel;
858
+ }
859
+ /**
860
+ * Sets and gets the options to configure maps zooming operations.
861
+ */
862
+ export class ZoomSettings extends ChildProperty<ZoomSettings> {
863
+ /**
864
+ * Enables or disables the zooming operation in the maps component.
865
+ *
866
+ * @default false
867
+ */
868
+ @Property(false)
869
+ public enable: boolean;
870
+
871
+ /**
872
+ * Enables or disables the panning operation in the maps component.
873
+ *
874
+ * @default true
875
+ */
876
+ @Property(true)
877
+ public enablePanning: boolean;
878
+
879
+ /**
880
+ * Enables or disables the selection zooming operation in the maps component.
881
+ *
882
+ * @default true
883
+ */
884
+ @Property(true)
885
+ public enableSelectionZooming: boolean;
886
+
887
+ /**
888
+ * Sets and gets the orientation of the zoom toolbar.
889
+ *
890
+ * @default Horizontal
891
+ */
892
+ @Property('Horizontal')
893
+ public toolBarOrientation: Orientation;
894
+
895
+ /**
896
+ * Sets and gets the color for the toolbar in maps.
897
+ */
898
+ @Property(null)
899
+ public color: string;
900
+ /**
901
+ * Sets and gets the color for the zooming toolbar when the mouse has hovered on toolbar element in maps.
902
+ */
903
+ @Property(null)
904
+ public highlightColor: string;
905
+ /**
906
+ * Sets and gets the color for the zooming toolbar when clicking the zooming toolbar in maps.
907
+ */
908
+ @Property(null)
909
+ public selectionColor: string;
910
+
911
+ /**
912
+ * Sets and gets the position type of toolbar when it is placed horizontally.
913
+ *
914
+ * @default Far
915
+ */
916
+ @Property('Far')
917
+ public horizontalAlignment: Alignment;
918
+
919
+ /**
920
+ * Sets and gets the position type of toolbar when it is placed vertically.
921
+ *
922
+ * @default Near
923
+ */
924
+ @Property('Near')
925
+ public verticalAlignment: Alignment;
926
+ /**
927
+ * Sets and gets the items that are to be shown in the zooming toolbar in maps.
928
+ */
929
+ @Property(['ZoomIn', 'ZoomOut', 'Reset'])
930
+ public toolbars: string[];
931
+ /**
932
+ * Enables or disables the mouse wheel zooming in maps.
933
+ *
934
+ * @default true
935
+ */
936
+ @Property(true)
937
+ public mouseWheelZoom: boolean;
938
+
939
+ /**
940
+ * Enables or disables the double click zooming in maps.
941
+ *
942
+ * @default false
943
+ */
944
+ @Property(false)
945
+ public doubleClickZoom: boolean;
946
+ /**
947
+ * Enables or disables the pinch zooming in maps.
948
+ *
949
+ * @default true
950
+ */
951
+ @Property(false)
952
+ public pinchZooming: boolean;
953
+ /**
954
+ * Enables or disables the zooming on clicking the shapes in maps.
955
+ *
956
+ * @default false
957
+ */
958
+ @Property(false)
959
+ public zoomOnClick: boolean;
960
+ /**
961
+ * Sets and gets the factor of zoom to be displayed while rendering the maps.
962
+ *
963
+ * @default 1
964
+ */
965
+ @Property(1)
966
+ public zoomFactor: number;
967
+ /**
968
+ * Sets and gets the maximum zooming value in maps.
969
+ *
970
+ * @default 10
971
+ */
972
+ @Property(10)
973
+ public maxZoom: number;
974
+ /**
975
+ * Sets and gets the minimum zooming value in maps.
976
+ *
977
+ * @default 1
978
+ */
979
+ @Property(1)
980
+ public minZoom: number;
981
+ /**
982
+ * Enables or disables the zoom based on the marker position while rendering the maps.
983
+ */
984
+ @Property(false)
985
+ public shouldZoomInitially: boolean;
986
+ /**
987
+ * Enables or disables the zoom to set the initial State.
988
+ */
989
+ @Property(true)
990
+ public resetToInitial: boolean;
991
+ }
992
+ /**
993
+ * Sets and gets the settings to customize the color-mapping visibility based on the legend visibility.
994
+ */
995
+ export class ToggleLegendSettings extends ChildProperty<ToggleLegendSettings> {
996
+ /**
997
+ * Enables or disables the legend to be toggled.
998
+ *
999
+ * @default false
1000
+ */
1001
+ @Property(false)
1002
+ public enable: boolean;
1003
+ /**
1004
+ * Enables or disables the property of the shape settings to be displayed while clicking the legend.
1005
+ *
1006
+ * @default true
1007
+ */
1008
+ @Property(true)
1009
+ public applyShapeSettings: boolean;
1010
+ /**
1011
+ * Sets and gets the opacity for the shape for which the legend is selected.
1012
+ *
1013
+ * @default 1
1014
+ */
1015
+ @Property(1)
1016
+ public opacity: number;
1017
+ /**
1018
+ * Sets and gets the color of the shape for which the legend is selected.
1019
+ *
1020
+ * @default ''
1021
+ */
1022
+ @Property('')
1023
+ public fill: string;
1024
+ /**
1025
+ * Sets and gets the options to customize the color and width of the border for the shape in maps.
1026
+ */
1027
+ @Complex<BorderModel>({ color: '', width: 0 }, Border)
1028
+ public border: BorderModel;
1029
+ }
1030
+ /**
1031
+ * Sets and gets the options to customize the legend of the maps.
1032
+ */
1033
+ export class LegendSettings extends ChildProperty<LegendSettings> {
1034
+ /**
1035
+ * Enables or disables to render the legend item based on the shapes from the data source of markers.
1036
+ *
1037
+ * @default false
1038
+ */
1039
+ @Property(false)
1040
+ public useMarkerShape: boolean;
1041
+ /**
1042
+ * Enables or disables the toggle visibility for legend in maps.
1043
+ *
1044
+ * @default false
1045
+ */
1046
+ @Property(false)
1047
+ public toggleVisibility: boolean;
1048
+ /**
1049
+ * Enables or disables the visibility state of the legend in maps.
1050
+ *
1051
+ * @default false
1052
+ */
1053
+ @Property(false)
1054
+ public visible: boolean;
1055
+
1056
+ /**
1057
+ * Sets and gets the background color for the legend in maps.
1058
+ *
1059
+ * @default 'transparent'
1060
+ */
1061
+ @Property('transparent')
1062
+ public background: string;
1063
+
1064
+ /**
1065
+ * Sets and gets the type of the legend in maps.
1066
+ *
1067
+ * @default Layers
1068
+ */
1069
+ @Property('Layers')
1070
+ public type: LegendType;
1071
+
1072
+ /**
1073
+ * Enables or disables the visibility of the inverted pointer in interactive legend in maps.
1074
+ */
1075
+ @Property(false)
1076
+ public invertedPointer: boolean;
1077
+
1078
+ /**
1079
+ * Sets and gets the position of the label in legend.
1080
+ *
1081
+ * @default After
1082
+ */
1083
+ @Property('After')
1084
+ public labelPosition: LabelPosition;
1085
+ /**
1086
+ * Sets and gets the display mode for the label in legend.
1087
+ *
1088
+ * @default None
1089
+ */
1090
+ @Property('None')
1091
+ public labelDisplayMode: LabelIntersectAction;
1092
+ /**
1093
+ * Sets and gets the shape of the legend in maps.
1094
+ *
1095
+ * @default Circle
1096
+ */
1097
+ @Property('Circle')
1098
+ public shape: LegendShape;
1099
+
1100
+ /**
1101
+ * Sets and gets the width of the legend in maps.
1102
+ *
1103
+ * @default ''
1104
+ */
1105
+ @Property('')
1106
+ public width: string;
1107
+
1108
+ /**
1109
+ * Sets and gets the height of the legend in maps.
1110
+ *
1111
+ * @default ''
1112
+ */
1113
+ @Property('')
1114
+ public height: string;
1115
+
1116
+ /**
1117
+ * Sets and gets the options for customizing the text styles for the legend in maps.
1118
+ */
1119
+ @Complex<FontModel>({ fontFamily: null }, Font)
1120
+ public textStyle: FontModel;
1121
+
1122
+ /**
1123
+ * Sets and gets the width of the shapes in legend.
1124
+ *
1125
+ * @default 15
1126
+ */
1127
+ @Property(15)
1128
+ public shapeWidth: number;
1129
+
1130
+ /**
1131
+ * Sets and gets the width of the shapes in legend.
1132
+ *
1133
+ * @default 15
1134
+ */
1135
+ @Property(15)
1136
+ public shapeHeight: number;
1137
+
1138
+ /**
1139
+ * Sets and gets the padding for the shapes in legend.
1140
+ *
1141
+ * @default 10
1142
+ */
1143
+ @Property(10)
1144
+ public shapePadding: number;
1145
+
1146
+ /**
1147
+ * Sets and gets the options for customizing the color and width of the legend border.
1148
+ */
1149
+ @Complex<BorderModel>({ color: '#000000', width: 0 }, Border)
1150
+ public border: BorderModel;
1151
+
1152
+ /**
1153
+ * Sets and gets the options for customizing the color and width of the border for the shape in legend.
1154
+ */
1155
+ @Complex<BorderModel>({ color: '#000000', width: 0 }, Border)
1156
+ public shapeBorder: BorderModel;
1157
+
1158
+ /**
1159
+ * Sets and gets the title for the legend in maps.
1160
+ */
1161
+ @Complex<CommonTitleSettingsModel>({}, CommonTitleSettings)
1162
+ public title: CommonTitleSettingsModel;
1163
+
1164
+ /**
1165
+ * Sets and gets the options for customizing the style of the title for the legend in maps.
1166
+ */
1167
+ @Complex<FontModel>({ size: Theme.legendTitleFont.size, color: Theme.legendTitleFont.color, fontStyle: Theme.legendTitleFont.fontStyle, fontWeight: Theme.legendTitleFont.fontWeight, fontFamily: null }, Font)
1168
+ public titleStyle: FontModel;
1169
+
1170
+ /**
1171
+ * Sets and gets the position of the legend in maps.
1172
+ *
1173
+ * @default Bottom
1174
+ */
1175
+ @Property('Bottom')
1176
+ public position: LegendPosition;
1177
+
1178
+ /**
1179
+ * Sets and gets the alignment for the legend in maps.
1180
+ *
1181
+ * @default Center
1182
+ */
1183
+ @Property('Center')
1184
+ public alignment: Alignment;
1185
+
1186
+ /**
1187
+ * Sets and gets the orientation of the legend in maps.
1188
+ *
1189
+ * @default None
1190
+ */
1191
+ @Property('None')
1192
+ public orientation: LegendArrangement;
1193
+
1194
+ /**
1195
+ * Sets and gets the location of the legend, given by x and y values.
1196
+ */
1197
+ @Property({ x: 0, y: 0 })
1198
+ public location: Point;
1199
+
1200
+ /**
1201
+ * Sets and gets the color of the legend in maps.
1202
+ */
1203
+ @Property(null)
1204
+ public fill: string;
1205
+
1206
+ /**
1207
+ * Sets and gets the opacity for the legend in maps.
1208
+ *
1209
+ * @default 1
1210
+ */
1211
+ @Property(1)
1212
+ public opacity: number;
1213
+
1214
+ /**
1215
+ * Sets and gets the mode of the legend in maps. The modes available are default and interactive modes.
1216
+ *
1217
+ * @default Default
1218
+ */
1219
+ @Property('Default')
1220
+ public mode: LegendMode;
1221
+
1222
+ /**
1223
+ * Sets and gets the path for the legend from the data source to be shown.
1224
+ *
1225
+ * @default null
1226
+ */
1227
+ @Property(null)
1228
+ public showLegendPath: string;
1229
+
1230
+ /**
1231
+ * Set and gets the value from the data source for legend.
1232
+ *
1233
+ * @default null
1234
+ */
1235
+ @Property(null)
1236
+ public valuePath: string;
1237
+
1238
+ /**
1239
+ * Enables or disables to remove the duplicate legend item.
1240
+ *
1241
+ * @default false
1242
+ */
1243
+ @Property(false)
1244
+ public removeDuplicateLegend: boolean;
1245
+
1246
+ /**
1247
+ * Sets and gets the options for customizing the color and width of the shape related to the legend on selecting the legend.
1248
+ */
1249
+ @Complex<ToggleLegendSettingsModel>({}, ToggleLegendSettings)
1250
+ public toggleLegendSettings: ToggleLegendSettingsModel;
1251
+ }
1252
+ /**
1253
+ * Sets and gets the options to customize the data-labels in maps.
1254
+ */
1255
+ export class DataLabelSettings extends ChildProperty<DataLabelSettings> {
1256
+ /**
1257
+ * Enables or disables the visibility of data-labels in maps.
1258
+ *
1259
+ * @default false
1260
+ */
1261
+ @Property(false)
1262
+ public visible: boolean;
1263
+ /**
1264
+ * Sets and gets the options for customizing the color and width of the border for the data-labels.
1265
+ */
1266
+ @Complex<BorderModel>({ width: 0, color: 'transparent' }, Border)
1267
+ public border: BorderModel;
1268
+ /**
1269
+ * Sets and gets the color for the data-labels in maps.
1270
+ */
1271
+ @Property('black')
1272
+ public fill: string;
1273
+ /**
1274
+ * Sets and gets the opacity for the color of the data-labels in maps.
1275
+ */
1276
+ @Property(1)
1277
+ public opacity: number;
1278
+ /**
1279
+ * Sets and gets the x position for the data-labels.
1280
+ *
1281
+ * @default 10
1282
+ */
1283
+ @Property(5)
1284
+ public rx: number;
1285
+
1286
+ /**
1287
+ * Sets and gets the y position for the data-labels in maps.
1288
+ *
1289
+ * @default 10
1290
+ */
1291
+ @Property(5)
1292
+ public ry: number;
1293
+ /**
1294
+ * Sets and gets the options for customizing the styles of the text in data-labels.
1295
+ */
1296
+ @Complex<FontModel>({}, Font)
1297
+ public textStyle: FontModel;
1298
+ /**
1299
+ * Sets and gets the path from the data source based on which the data-labels gets rendered.
1300
+ *
1301
+ * @default ''
1302
+ */
1303
+ @Property('')
1304
+ public labelPath: string;
1305
+ /**
1306
+ * Sets and gets the label mode for the data-labels.
1307
+ *
1308
+ * @default None
1309
+ */
1310
+ @Property('None')
1311
+ public smartLabelMode: SmartLabelMode;
1312
+ /**
1313
+ * Sets and gets the intersection action for the data-labels in maps.
1314
+ *
1315
+ * @default None
1316
+ */
1317
+ @Property('None')
1318
+ public intersectionAction: IntersectAction;
1319
+ /**
1320
+ * Sets and gets the template for the data-labels in maps.
1321
+ *
1322
+ * @default ''
1323
+ */
1324
+ @Property('')
1325
+ public template: string;
1326
+ }
1327
+ /**
1328
+ * Sets and gets the options to customize the shapes in the maps.
1329
+ */
1330
+ export class ShapeSettings extends ChildProperty<ShapeSettings> {
1331
+ /**
1332
+ * Sets and gets the color of the shapes in maps.
1333
+ *
1334
+ * @default null
1335
+ */
1336
+ @Property(null)
1337
+ public fill: string;
1338
+ /**
1339
+ * Sets and gets a set of colors for the shapes in maps.
1340
+ *
1341
+ * @default []
1342
+ */
1343
+ @Property([])
1344
+ public palette: string[];
1345
+
1346
+ /**
1347
+ * Sets and gets the radius of the shape.
1348
+ */
1349
+ @Property(5)
1350
+ public circleRadius: number;
1351
+
1352
+ /**
1353
+ * Sets and gets the options for customizing the color and width of the border for the shapes in maps.
1354
+ */
1355
+ @Complex<BorderModel>({ width: null, color: '#000000' }, Border)
1356
+ public border: BorderModel;
1357
+
1358
+ /**
1359
+ * Sets and gets the dash-array for the shapes in maps.
1360
+ */
1361
+ @Property('')
1362
+ public dashArray: string;
1363
+
1364
+ /**
1365
+ * Sets and gets the opacity for the shapes in maps.
1366
+ *
1367
+ * @default 1
1368
+ */
1369
+ @Property(1)
1370
+ public opacity: number;
1371
+ /**
1372
+ * Sets and gets the value path from the data source to set the color for the shapes in maps.
1373
+ *
1374
+ * @default null
1375
+ */
1376
+ @Property(null)
1377
+ public colorValuePath: string;
1378
+ /**
1379
+ * Sets and gets the value path from the data source to set the color for the border of a particular shape in maps.
1380
+ *
1381
+ * @default null
1382
+ */
1383
+ @Property(null)
1384
+ public borderColorValuePath: string;
1385
+ /**
1386
+ * Sets and gets the value path from the data source to set the width for the border of a particular shape in maps.
1387
+ *
1388
+ * @default null
1389
+ */
1390
+ @Property(null)
1391
+ public borderWidthValuePath: string;
1392
+ /**
1393
+ * Sets and gets the value from the data source based on which the shape gets rendered.
1394
+ *
1395
+ * @default null
1396
+ */
1397
+ @Property(null)
1398
+ public valuePath: string;
1399
+ /**
1400
+ * Sets and gets the options to map the color for some set of the shapes in maps.
1401
+ *
1402
+ * @default []
1403
+ */
1404
+ @Collection<ColorMappingSettingsModel>([], ColorMappingSettings)
1405
+ public colorMapping: ColorMappingSettingsModel[];
1406
+ /**
1407
+ * Enables or disables the filling of color for the shapes automatically.
1408
+ *
1409
+ * @default false
1410
+ */
1411
+ @Property(false)
1412
+ public autofill: boolean;
1413
+ }
1414
+
1415
+ /**
1416
+ * Sets and gets the options to customize the marker in the maps.
1417
+ */
1418
+ export class MarkerBase extends ChildProperty<MarkerBase> {
1419
+
1420
+ /**
1421
+ * Sets and gets the options for customizing the color and width of the border for the marker in maps.
1422
+ */
1423
+ @Complex<BorderModel>({ color: 'transparent', width: 1 }, Border)
1424
+ public border: BorderModel;
1425
+
1426
+ /**
1427
+ * Sets and gets the dash-array for the marker.
1428
+ */
1429
+ @Property(null)
1430
+ public dashArray: string;
1431
+
1432
+ /**
1433
+ * Enables or disables the visibility state of the marker based on the marker data source in maps.
1434
+ *
1435
+ * @default false
1436
+ */
1437
+ @Property(false)
1438
+ public visible: boolean;
1439
+
1440
+ /**
1441
+ * Sets and gets the color for the marker in maps.
1442
+ *
1443
+ * @default '#FF471A'
1444
+ */
1445
+ @Property('#FF471A')
1446
+ public fill: string;
1447
+
1448
+ /**
1449
+ * Sets and gets the height of the marker in maps.
1450
+ *
1451
+ * @default 10
1452
+ */
1453
+ @Property(10)
1454
+ public height: number;
1455
+
1456
+ /**
1457
+ * Sets and gets the width of the marker in maps.
1458
+ *
1459
+ * @default 10
1460
+ */
1461
+ @Property(10)
1462
+ public width: number;
1463
+
1464
+ /**
1465
+ * Sets and gets the opacity for the marker in maps.
1466
+ *
1467
+ * @default 1
1468
+ */
1469
+ @Property(1)
1470
+ public opacity: number;
1471
+
1472
+ /**
1473
+ * Sets and gets the value path from the marker data source to apply color for the marker.
1474
+ *
1475
+ * @default null
1476
+ */
1477
+ @Property(null)
1478
+ public colorValuePath: string;
1479
+
1480
+ /**
1481
+ * Sets and gets the value path from the marker data source to set the shape of the marker.
1482
+ *
1483
+ * @default null
1484
+ */
1485
+ @Property(null)
1486
+ public shapeValuePath: string;
1487
+
1488
+ /**
1489
+ * Sets and gets the value path from the marker data source for the image of the marker.
1490
+ *
1491
+ * @default null
1492
+ */
1493
+ @Property(null)
1494
+ public imageUrlValuePath: string;
1495
+
1496
+ /**
1497
+ * Sets and gets the shape of the marker in maps.
1498
+ *
1499
+ * @default Balloon
1500
+ */
1501
+ @Property('Balloon')
1502
+ public shape: MarkerType;
1503
+
1504
+ /**
1505
+ * Sets and gets the text for the legend from the marker data source.
1506
+ *
1507
+ * @default ''
1508
+ */
1509
+ @Property('')
1510
+ public legendText: string;
1511
+ /**
1512
+ * Sets and gets the position to move the marker by setting specific value.
1513
+ *
1514
+ */
1515
+ @Property(new Point(0, 0))
1516
+ public offset: Point;
1517
+ /**
1518
+ * Sets and gets the URL for rendering the marker as image.
1519
+ */
1520
+ @Property('')
1521
+ public imageUrl: string;
1522
+
1523
+ /**
1524
+ * Sets and gets the template for the marker.
1525
+ *
1526
+ * @default null
1527
+ */
1528
+ @Property(null)
1529
+ public template: string;
1530
+ /**
1531
+ * Sets and gets the data source for the marker.
1532
+ * The data source for the marker will contain latitude and longitude values to specify the location
1533
+ * of the marker.
1534
+ * The data source can contain data such as color, shape, and other details that can be bound to the color, shape,
1535
+ * and tooltip of the marker.
1536
+ *
1537
+ * @isObservable true
1538
+ * @default []
1539
+ */
1540
+ @Property([])
1541
+ public dataSource: Object[] | DataManager;
1542
+
1543
+ /**
1544
+ * Sets and gets the query to select particular data from the marker data.
1545
+ * This property is applicable only when the data source is created by data manager.
1546
+ *
1547
+ * @default null
1548
+ */
1549
+ @Property()
1550
+ public query: Query;
1551
+
1552
+ /**
1553
+ * Sets and gets the options to customize the tooltip for the marker in maps.
1554
+ */
1555
+ @Complex<TooltipSettingsModel>({}, TooltipSettings)
1556
+ public tooltipSettings: TooltipSettingsModel;
1557
+
1558
+ /**
1559
+ * Sets and gets the duration time for animating the marker.
1560
+ *
1561
+ * @default 1000
1562
+ */
1563
+ @Property(1000)
1564
+ public animationDuration: number;
1565
+
1566
+ /**
1567
+ * Sets and gets the delay time for the animation in marker.
1568
+ *
1569
+ * @default 0
1570
+ */
1571
+ @Property(0)
1572
+ public animationDelay: number;
1573
+ /**
1574
+ * Sets and gets the options to customize the marker while selecting the marker in maps.
1575
+ */
1576
+ @Complex<SelectionSettingsModel>({}, SelectionSettings)
1577
+ public selectionSettings: SelectionSettingsModel;
1578
+ /**
1579
+ * Sets and gets the options to customize the marker while the mouse has hovered on the marker in maps.
1580
+ */
1581
+ @Complex<HighlightSettingsModel>({}, HighlightSettings)
1582
+ public highlightSettings: HighlightSettingsModel;
1583
+ /**
1584
+ * Defines the value path from the marker data source for setting latitude for a set of markers.
1585
+ */
1586
+ @Property(null)
1587
+ public latitudeValuePath: string;
1588
+
1589
+ /**
1590
+ * Defines the value path from the marker data source for setting longitude for a set of markers.
1591
+ */
1592
+ @Property(null)
1593
+ public longitudeValuePath: string;
1594
+
1595
+ /**
1596
+ * To select the shape at the rendering time.
1597
+ */
1598
+ @Collection<InitialMarkerSelectionSettingsModel>([], InitialMarkerSelectionSettings)
1599
+ public initialMarkerSelection: InitialMarkerSelectionSettingsModel[];
1600
+
1601
+ }
1602
+
1603
+ export class MarkerSettings extends MarkerBase {
1604
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1605
+ constructor(parent: any, propName: string, defaultValue: Object, isArray?: boolean) {
1606
+ super(parent, propName, defaultValue, isArray);
1607
+ }
1608
+ }
1609
+
1610
+ /**
1611
+ * Sets and gets the options to customize the layers of the maps.
1612
+ */
1613
+ export class LayerSettings extends ChildProperty<LayerSettings> {
1614
+ /**
1615
+ * Sets and gets the shape data for the maps to render.
1616
+ *
1617
+ * @isObservable true
1618
+ * @default null
1619
+ */
1620
+ @Property(null)
1621
+ public shapeData: Object | DataManager | MapAjax;
1622
+
1623
+ /**
1624
+ * Sets and gets the query to select particular data from the shape data.
1625
+ * This property is applicable only when the data source is created by data manager.
1626
+ *
1627
+ * @default null
1628
+ */
1629
+ @Property()
1630
+ public query: Query;
1631
+
1632
+ /**
1633
+ * Sets and gets the options to customize the shape of the maps.
1634
+ */
1635
+ @Complex<ShapeSettingsModel>({}, ShapeSettings)
1636
+ public shapeSettings: ShapeSettingsModel;
1637
+
1638
+ /**
1639
+ * * Sets and gets the data source for the layer.
1640
+ * * The data source can contain data that can be bound to the tooltip, marker, and bubble.
1641
+ *
1642
+ * @isObservable true
1643
+ * @default []
1644
+ */
1645
+ @Property([])
1646
+ public dataSource: Object[] | DataManager | MapAjax;
1647
+ /**
1648
+ * Sets and gets the type of the layer in maps.
1649
+ *
1650
+ * @default Layer
1651
+ */
1652
+ @Property('Layer')
1653
+ public type: Type;
1654
+ /**
1655
+ * Sets and gets the geometry type for the layer in maps.
1656
+ *
1657
+ * @default Geographic
1658
+ */
1659
+ @Property('Geographic')
1660
+ public geometryType: GeometryType;
1661
+ /**
1662
+ * Sets and gets the Bing map type for the layer. If you use shape data with BingMapType without using layer type as Bing,
1663
+ * then the map will render based on shape data since default layer type will be set as Geometry.
1664
+ *
1665
+ * @deprecated
1666
+ * @default Aerial
1667
+ */
1668
+ @Property('Aerial')
1669
+ public bingMapType: BingMapType;
1670
+ /**
1671
+ * Sets and gets the type of the static maps.
1672
+ *
1673
+ * @deprecated
1674
+ * @default RoadMap
1675
+ */
1676
+ @Property('RoadMap')
1677
+ public staticMapType: StaticMapType;
1678
+ /**
1679
+ * Sets and gets the key for the tile map layer in maps.
1680
+ *
1681
+ * @deprecated
1682
+ * @default ''
1683
+ */
1684
+ @Property('')
1685
+ public key: string;
1686
+ /**
1687
+ * Sets and gets the type of the layer in maps. If we use layer type with shape data property in layer of the maps
1688
+ * then map will render based on the provided layer type.
1689
+ *
1690
+ * @deprecated
1691
+ * @default Geometry
1692
+ */
1693
+ @Property('Geometry')
1694
+ public layerType: ShapeLayerType;
1695
+ /**
1696
+ * Sets and gets the template for the map using the url.
1697
+ *
1698
+ * @default ''
1699
+ */
1700
+ @Property('')
1701
+ public urlTemplate: string;
1702
+ /**
1703
+ * Enables or disables the visibility state for the layers in maps.
1704
+ *
1705
+ * @default true
1706
+ */
1707
+ @Property(true)
1708
+ public visible: boolean;
1709
+ /**
1710
+ * Sets and gets the path for the shape from the shape data in maps.
1711
+ *
1712
+ * @default 'name'
1713
+ */
1714
+ @Property('name')
1715
+ public shapeDataPath: string;
1716
+ /**
1717
+ * Sets and gets the path for the layers from the layer data source in maps.
1718
+ *
1719
+ * @default 'name'
1720
+ */
1721
+ @Property('name')
1722
+ public shapePropertyPath: string | string[];
1723
+ /**
1724
+ * Sets and gets the duration for the animation of layers in maps.
1725
+ *
1726
+ * @default 0
1727
+ */
1728
+ @Property(0)
1729
+ public animationDuration: number;
1730
+
1731
+ /**
1732
+ * Sets and gets the options for customizing the marker in maps.
1733
+ */
1734
+ @Collection<MarkerSettingsModel>([], MarkerSettings)
1735
+ public markerSettings: MarkerSettingsModel[];
1736
+ /**
1737
+ * Sets and gets the options for customizing the cluster of markers in maps.
1738
+ */
1739
+ @Complex<MarkerClusterSettingsModel>({}, MarkerClusterSettings)
1740
+ public markerClusterSettings: MarkerClusterSettingsModel;
1741
+ /**
1742
+ * Sets and gets the options for customizing the data-label in maps.
1743
+ */
1744
+ @Complex<DataLabelSettingsModel>({}, DataLabelSettings)
1745
+ public dataLabelSettings: DataLabelSettingsModel;
1746
+ /**
1747
+ * Sets and gets the options for customizing the bubble in maps.
1748
+ */
1749
+ @Collection<BubbleSettingsModel>([], BubbleSettings)
1750
+ public bubbleSettings: BubbleSettingsModel[];
1751
+ /**
1752
+ * Sets and gets the options for customizing the navigation line in maps.
1753
+ */
1754
+ @Collection<NavigationLineSettingsModel>([], NavigationLineSettings)
1755
+ public navigationLineSettings: NavigationLineSettingsModel[];
1756
+ /**
1757
+ * Sets and gets the options for customizing the tooltip for the layers, markers, and bubbles in maps.
1758
+ */
1759
+ @Complex<TooltipSettingsModel>({}, TooltipSettings)
1760
+ public tooltipSettings: TooltipSettingsModel;
1761
+ /**
1762
+ * Sets and gets the options for customizing the shapes when clicking the shapes in maps.
1763
+ */
1764
+ @Complex<SelectionSettingsModel>({}, SelectionSettings)
1765
+ public selectionSettings: SelectionSettingsModel;
1766
+ /**
1767
+ * Sets and gets the options for customizing the shapes when the mouse has hovered on maps.
1768
+ */
1769
+ @Complex<HighlightSettingsModel>({}, HighlightSettings)
1770
+ public highlightSettings: HighlightSettingsModel;
1771
+ /**
1772
+ * Sets and gets the options for customizing the toggle state of shapes when selecting the legend in maps.
1773
+ */
1774
+ @Complex<ToggleLegendSettingsModel>({}, ToggleLegendSettings)
1775
+ public toggleLegendSettings: ToggleLegendSettingsModel;
1776
+ /**
1777
+ * Sets and gets the settings for shapes that is selected at the time of rendering.
1778
+ */
1779
+ @Collection<InitialShapeSelectionSettingsModel>([], InitialShapeSelectionSettings)
1780
+ public initialShapeSelection: InitialShapeSelectionSettingsModel[];
1781
+
1782
+
1783
+ /** @private */
1784
+ public layerData: Object[];
1785
+ /**
1786
+ * @private
1787
+ */
1788
+ public isBaseLayer: boolean = false;
1789
+ /**
1790
+ * @private
1791
+ */
1792
+ public factor: number;
1793
+ /**
1794
+ * @private
1795
+ */
1796
+ public layerBounds: GeoLocation;
1797
+ /**
1798
+ * @private
1799
+ */
1800
+ public rectBounds: Object;
1801
+ /**
1802
+ * @private
1803
+ */
1804
+ public translatePoint: Point;
1805
+ }
1806
+ /**
1807
+ * Internal use for bing type layer rendering
1808
+ */
1809
+ export class Tile {
1810
+ public x: number;
1811
+ public y: number;
1812
+ public top: number;
1813
+ public left: number;
1814
+ public height: number;
1815
+ public width: number;
1816
+ public src: string;
1817
+ constructor(x: number, y: number, height: number = 256, width: number = 256, top: number = 0, left: number = 0, src: string = null) {
1818
+ this.x = x;
1819
+ this.y = y;
1820
+ this.top = top;
1821
+ this.left = left;
1822
+ this.height = height;
1823
+ this.width = width;
1824
+ this.src = src;
1825
+ }
1826
+ }
1827
+ /**
1828
+ * Sets and gets the maps area settings
1829
+ */
1830
+ export class MapsAreaSettings extends ChildProperty<MapsAreaSettings> {
1831
+ /**
1832
+ * Sets and gets the background color for the map area.
1833
+ */
1834
+ @Property(null)
1835
+ public background: string;
1836
+
1837
+ /**
1838
+ * Sets and gets the options for customizing the color and width of the border of maps area.
1839
+ */
1840
+ @Complex<BorderModel>({ color: 'transparent', width: 1 }, Border)
1841
+ public border: BorderModel;
1842
+
1843
+ }