@artstesh/maps 1.1.7 → 1.1.9

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 (127) hide show
  1. package/dist/bundles/maps-components-src-map.umd.js +479 -99
  2. package/dist/bundles/maps-components-src-map.umd.js.map +1 -1
  3. package/dist/bundles/maps-components.umd.js +479 -99
  4. package/dist/bundles/maps-components.umd.js.map +1 -1
  5. package/dist/esm2015/map/helpers/marker-style.helper.js +27 -1
  6. package/dist/esm2015/map/helpers/polygon-style.helper.js +22 -1
  7. package/dist/esm2015/map/helpers/stringify-feature.helper.js +24 -21
  8. package/dist/esm2015/map/helpers/text-style.helper.js +12 -1
  9. package/dist/esm2015/map/map-plate/controls/map-control-zoom/map-control-zoom.component.js +18 -1
  10. package/dist/esm2015/map/map-plate/controls/map-control-zoom/zoom-control.settings.js +72 -1
  11. package/dist/esm2015/map/map-plate/features/markers/markers.component.js +11 -1
  12. package/dist/esm2015/map/map-plate/features/polygons/polygons.component.js +11 -1
  13. package/dist/esm2015/map/map-plate/layers/cluster-layer/cluster-layer.component.js +15 -7
  14. package/dist/esm2015/map/map-plate/layers/cluster-layer/cluster-layer.settings.js +79 -1
  15. package/dist/esm2015/map/map-plate/layers/feature-layer/feature-layer.component.js +7 -7
  16. package/dist/esm2015/map/map-plate/layers/feature-layer/feature-layer.settings.js +37 -17
  17. package/dist/esm2015/map/map-plate/layers/tile-layer/tile-layer.component.js +7 -7
  18. package/dist/esm2015/map/map-plate/layers/tile-layer/tile-layer.settings.js +76 -1
  19. package/dist/esm2015/map/map-plate/map-plate.component.js +2 -2
  20. package/dist/esm2015/map/map-plate/tooltips/tooltip/tooltip.component.js +15 -15
  21. package/dist/esm2015/map/map-plate/tooltips/tooltip/tooltip.settings.js +1 -1
  22. package/dist/esm2015/map/messages/commands/fit-to-polygons.command.js +1 -1
  23. package/dist/esm2015/map/messages/events/map-move-end.event.js +3 -4
  24. package/dist/esm2015/map/messages/executors/get-map-position.executor.js +16 -0
  25. package/dist/esm2015/map/messages/index.js +2 -1
  26. package/dist/esm2015/map/models/index.js +2 -1
  27. package/dist/esm2015/map/models/map-control.js +2 -2
  28. package/dist/esm2015/map/models/map-position.model.js +2 -0
  29. package/dist/esm2015/map/models/marker-model.js +1 -1
  30. package/dist/esm2015/map/models/polygon.model.js +4 -4
  31. package/dist/esm2015/map/services/feature.service.js +6 -6
  32. package/dist/esm2015/map/services/map-click.service.js +10 -10
  33. package/dist/esm2015/map/services/map-feature.service.js +1 -1
  34. package/dist/esm2015/map/services/map-state.service.js +11 -7
  35. package/dist/esm2015/map/services/message-registrator.service.js +4 -1
  36. package/dist/esm2015/src/map/helpers/marker-style.helper.js +27 -1
  37. package/dist/esm2015/src/map/helpers/polygon-style.helper.js +22 -1
  38. package/dist/esm2015/src/map/helpers/stringify-feature.helper.js +24 -21
  39. package/dist/esm2015/src/map/helpers/text-style.helper.js +12 -1
  40. package/dist/esm2015/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.js +18 -1
  41. package/dist/esm2015/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.js +72 -1
  42. package/dist/esm2015/src/map/map-plate/features/markers/markers.component.js +11 -1
  43. package/dist/esm2015/src/map/map-plate/features/polygons/polygons.component.js +11 -1
  44. package/dist/esm2015/src/map/map-plate/layers/cluster-layer/cluster-layer.component.js +15 -7
  45. package/dist/esm2015/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.js +79 -1
  46. package/dist/esm2015/src/map/map-plate/layers/feature-layer/feature-layer.component.js +7 -7
  47. package/dist/esm2015/src/map/map-plate/layers/feature-layer/feature-layer.settings.js +37 -17
  48. package/dist/esm2015/src/map/map-plate/layers/tile-layer/tile-layer.component.js +7 -7
  49. package/dist/esm2015/src/map/map-plate/layers/tile-layer/tile-layer.settings.js +76 -1
  50. package/dist/esm2015/src/map/map-plate/map-plate.component.js +2 -2
  51. package/dist/esm2015/src/map/map-plate/tooltips/tooltip/tooltip.component.js +15 -15
  52. package/dist/esm2015/src/map/map-plate/tooltips/tooltip/tooltip.settings.js +1 -1
  53. package/dist/esm2015/src/map/messages/commands/fit-to-polygons.command.js +1 -1
  54. package/dist/esm2015/src/map/messages/events/map-move-end.event.js +3 -4
  55. package/dist/esm2015/src/map/messages/executors/get-map-position.executor.js +16 -0
  56. package/dist/esm2015/src/map/messages/index.js +2 -1
  57. package/dist/esm2015/src/map/models/index.js +2 -1
  58. package/dist/esm2015/src/map/models/map-control.js +2 -2
  59. package/dist/esm2015/src/map/models/map-position.model.js +2 -0
  60. package/dist/esm2015/src/map/models/marker-model.js +1 -1
  61. package/dist/esm2015/src/map/models/polygon.model.js +4 -4
  62. package/dist/esm2015/src/map/services/feature.service.js +6 -6
  63. package/dist/esm2015/src/map/services/map-click.service.js +10 -10
  64. package/dist/esm2015/src/map/services/map-feature.service.js +1 -1
  65. package/dist/esm2015/src/map/services/map-state.service.js +11 -7
  66. package/dist/esm2015/src/map/services/message-registrator.service.js +4 -1
  67. package/dist/fesm2015/maps-components-src-map.js +467 -95
  68. package/dist/fesm2015/maps-components-src-map.js.map +1 -1
  69. package/dist/fesm2015/maps-components.js +467 -95
  70. package/dist/fesm2015/maps-components.js.map +1 -1
  71. package/dist/map/helpers/marker-style.helper.d.ts +26 -0
  72. package/dist/map/helpers/polygon-style.helper.d.ts +21 -0
  73. package/dist/map/helpers/stringify-feature.helper.d.ts +18 -0
  74. package/dist/map/helpers/text-style.helper.d.ts +11 -0
  75. package/dist/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +20 -3
  76. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +71 -0
  77. package/dist/map/map-plate/features/markers/markers.component.d.ts +10 -0
  78. package/dist/map/map-plate/features/polygons/polygons.component.d.ts +10 -0
  79. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +10 -2
  80. package/dist/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +78 -0
  81. package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +2 -2
  82. package/dist/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +36 -16
  83. package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
  84. package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +75 -0
  85. package/dist/map/map-plate/map-plate.component.d.ts +2 -2
  86. package/dist/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +5 -5
  87. package/dist/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +1 -1
  88. package/dist/map/messages/events/map-move-end.event.d.ts +3 -3
  89. package/dist/map/messages/executors/get-map-position.executor.d.ts +12 -0
  90. package/dist/map/messages/index.d.ts +1 -0
  91. package/dist/map/models/index.d.ts +1 -0
  92. package/dist/map/models/map-control.d.ts +1 -1
  93. package/dist/map/models/map-position.model.d.ts +6 -0
  94. package/dist/map/models/polygon.model.d.ts +2 -2
  95. package/dist/map/services/feature.service.d.ts +1 -1
  96. package/dist/map/services/map-click.service.d.ts +1 -1
  97. package/dist/map/services/map-state.service.d.ts +2 -0
  98. package/dist/map/services/message-registrator.service.d.ts +1 -0
  99. package/dist/src/map/helpers/marker-style.helper.d.ts +26 -0
  100. package/dist/src/map/helpers/polygon-style.helper.d.ts +21 -0
  101. package/dist/src/map/helpers/stringify-feature.helper.d.ts +18 -0
  102. package/dist/src/map/helpers/text-style.helper.d.ts +11 -0
  103. package/dist/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +20 -3
  104. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +71 -0
  105. package/dist/src/map/map-plate/features/markers/markers.component.d.ts +10 -0
  106. package/dist/src/map/map-plate/features/polygons/polygons.component.d.ts +10 -0
  107. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.component.d.ts +10 -2
  108. package/dist/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.d.ts +78 -0
  109. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +2 -2
  110. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.settings.d.ts +36 -16
  111. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +1 -1
  112. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +75 -0
  113. package/dist/src/map/map-plate/map-plate.component.d.ts +2 -2
  114. package/dist/src/map/map-plate/tooltips/tooltip/tooltip.component.d.ts +5 -5
  115. package/dist/src/map/map-plate/tooltips/tooltip/tooltip.settings.d.ts +1 -1
  116. package/dist/src/map/messages/events/map-move-end.event.d.ts +3 -3
  117. package/dist/src/map/messages/executors/get-map-position.executor.d.ts +12 -0
  118. package/dist/src/map/messages/index.d.ts +1 -0
  119. package/dist/src/map/models/index.d.ts +1 -0
  120. package/dist/src/map/models/map-control.d.ts +1 -1
  121. package/dist/src/map/models/map-position.model.d.ts +6 -0
  122. package/dist/src/map/models/polygon.model.d.ts +2 -2
  123. package/dist/src/map/services/feature.service.d.ts +1 -1
  124. package/dist/src/map/services/map-click.service.d.ts +1 -1
  125. package/dist/src/map/services/map-state.service.d.ts +2 -0
  126. package/dist/src/map/services/message-registrator.service.d.ts +1 -0
  127. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { Component, Injectable, ChangeDetectionStrategy, Input, ViewChild, NgMod
3
3
  import * as i6 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { Feature, Collection } from 'ol';
6
- import { Point, LineString } from 'ol/geom';
6
+ import { Point } from 'ol/geom';
7
7
  import { GeoJSON, WKT } from 'ol/format';
8
8
  import { getCenter, createEmpty, extend } from 'ol/extent';
9
9
  import { Control, Zoom } from 'ol/control';
@@ -166,6 +166,9 @@ class PolygonModel {
166
166
  (_a = this._feature) === null || _a === void 0 ? void 0 : _a.set(MapConstants.FeatureInfo, this.info);
167
167
  [this.lng, this.lat] = getCenter((_b = this._feature.getGeometry()) === null || _b === void 0 ? void 0 : _b.getExtent());
168
168
  }
169
+ get feature() {
170
+ return this._feature;
171
+ }
169
172
  static fromGeoJson(id, json, info) {
170
173
  let feature = new GeoJSON().readFeature(json);
171
174
  feature.setId(id);
@@ -176,9 +179,6 @@ class PolygonModel {
176
179
  feature.setId(id);
177
180
  return new PolygonModel(feature, id, info);
178
181
  }
179
- get feature() {
180
- return this._feature;
181
- }
182
182
  }
183
183
 
184
184
  var DrawingType;
@@ -197,7 +197,7 @@ var FeatureOutputFormat;
197
197
 
198
198
  /**
199
199
  *
200
- * A control is a visible widget with a DOM element in a fixed position on the screen. They can involve user input (buttons), or be informational only; the position is determined using CSS. By default these are placed in the container with CSS class name ol-overlaycontainer-stopevent, but can use any outside DOM element.
200
+ * A control is a visible widget with a DOM element in a fixed position on the screen. They can involve user input (buttons), or be informational only; the position is determined using CSS. By default, these are placed in the container with CSS class name ol-overlaycontainer-stopevent, but can use any outside DOM element.
201
201
  * This is the base class for controls. You can use it for simple custom controls by creating the element with listeners, creating an instance:
202
202
  * var myControl = new Control({element: myElement}); and then adding this to the map.
203
203
  * The main advantage of having this as a control rather than a simple separate DOM element is that preventing propagation is handled for you. Controls will also be objects in a module:ol/Collection~Collection, so you can use their methods.
@@ -234,10 +234,9 @@ class MapClickEvent extends PostboyGenericMessage {
234
234
  MapClickEvent.ID = '323df526-8d9c-49c6-83e8-6e9a1e7762f7';
235
235
 
236
236
  class MapMoveEndEvent extends PostboyGenericMessage {
237
- constructor(zoom, extent) {
237
+ constructor(position) {
238
238
  super();
239
- this.zoom = zoom;
240
- this.extent = extent;
239
+ this.position = position;
241
240
  }
242
241
  get id() {
243
242
  return MapMoveEndEvent.ID;
@@ -376,6 +375,21 @@ class FitToPolygonsCommand extends PostboyGenericMessage {
376
375
  }
377
376
  FitToPolygonsCommand.ID = 'a9e42b23-ffaf-4c46-8370-e0432cd14d60';
378
377
 
378
+ /**
379
+ * A message that allows to get the current state of the map.
380
+ * If the map's state is not defined yet, the executor would return null
381
+ * @returns {MapPosition | null}
382
+ */
383
+ class GetMapPositionExecutor extends PostboyExecutor {
384
+ constructor() {
385
+ super();
386
+ }
387
+ get id() {
388
+ return GetMapPositionExecutor.ID;
389
+ }
390
+ }
391
+ GetMapPositionExecutor.ID = '52c95689-d09b-4082-ba58-9183ea96a213';
392
+
379
393
  class AddLayerCommand extends PostboyGenericMessage {
380
394
  constructor(layer) {
381
395
  super();
@@ -492,6 +506,11 @@ class FeatureService {
492
506
  static filterFeaturesInArea(query) {
493
507
  return query.features.filter((f) => FeatureService.booleanIntersects(query.area, f.getGeometry()));
494
508
  }
509
+ static calculateArea(g) {
510
+ if (!g)
511
+ return 0;
512
+ return Sphere.getArea(g, { projection: 'EPSG:4326' });
513
+ }
495
514
  static booleanIntersects(g1, g2) {
496
515
  if (g2.getType() === 'Point')
497
516
  return g1.intersectsCoordinate(g2.getCoordinates());
@@ -501,11 +520,6 @@ class FeatureService {
501
520
  return g1.intersectsCoordinate(g2.getInteriorPoint().getCoordinates());
502
521
  return false;
503
522
  }
504
- static calculateArea(g) {
505
- if (!g)
506
- return 0;
507
- return Sphere.getArea(g, { projection: 'EPSG:4326' });
508
- }
509
523
  }
510
524
 
511
525
  class GetFeaturesInAreaQuery extends PostboyCallbackMessage {
@@ -677,6 +691,14 @@ class MapStateService {
677
691
  this.observeMapRendering();
678
692
  this.observeCenter();
679
693
  }
694
+ getMapPosition() {
695
+ if (!this.map)
696
+ return null;
697
+ let [longitude, latitude] = this.map.getView().getCenter();
698
+ const zoom = Math.floor(this.map.getView().getZoom());
699
+ const extent = this.map.getView().calculateExtent();
700
+ return { longitude, latitude, zoom, extent };
701
+ }
680
702
  observeMapRendering() {
681
703
  this.postboy
682
704
  .subscribe(MapRenderedEvent.ID)
@@ -685,10 +707,7 @@ class MapStateService {
685
707
  var _a;
686
708
  this.map = ev.map;
687
709
  (_a = this.map) === null || _a === void 0 ? void 0 : _a.on('moveend', () => {
688
- var _a, _b;
689
- const zoom = Math.floor(((_a = this.map) === null || _a === void 0 ? void 0 : _a.getView().getZoom()) || -1);
690
- const extent = ((_b = this.map) === null || _b === void 0 ? void 0 : _b.getView().calculateExtent()) || [];
691
- this.postboy.fire(new MapMoveEndEvent(zoom, extent));
710
+ this.postboy.fire(new MapMoveEndEvent(this.getMapPosition()));
692
711
  });
693
712
  });
694
713
  }
@@ -760,15 +779,6 @@ class MapClickService {
760
779
  up() {
761
780
  this.observeMapRender();
762
781
  }
763
- observeMapRender() {
764
- this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
765
- var _a;
766
- this.map = m.map;
767
- (_a = this.map) === null || _a === void 0 ? void 0 : _a.on('singleclick', (e) => {
768
- this.postboy.fire(this.onClick(e));
769
- });
770
- });
771
- }
772
782
  onClick(ev) {
773
783
  var _a;
774
784
  const model = new MapClickEvent(ev.coordinate, {}, {});
@@ -787,6 +797,15 @@ class MapClickService {
787
797
  });
788
798
  return model;
789
799
  }
800
+ observeMapRender() {
801
+ this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
802
+ var _a;
803
+ this.map = m.map;
804
+ (_a = this.map) === null || _a === void 0 ? void 0 : _a.on('singleclick', (e) => {
805
+ this.postboy.fire(this.onClick(e));
806
+ });
807
+ });
808
+ }
790
809
  getFeatureCollectionWithInner(features) {
791
810
  const result = [];
792
811
  features === null || features === void 0 ? void 0 : features.forEach((f) => {
@@ -1011,6 +1030,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1011
1030
  class MessageRegistratorService extends PostboyAbstractRegistrator {
1012
1031
  constructor(service, management, state, mapFeature, interaction, drawing, featureModification, controls) {
1013
1032
  super(service);
1033
+ this.state = state;
1014
1034
  this.registerServices([management, state, interaction, mapFeature, drawing, featureModification, controls]);
1015
1035
  }
1016
1036
  _up() {
@@ -1043,6 +1063,7 @@ class MessageRegistratorService extends PostboyAbstractRegistrator {
1043
1063
  this.registerExecutor(CalculateAreaExecutor.ID, (e) => { var _a, _b; return FeatureService.calculateArea((_b = (_a = e.polygon) === null || _a === void 0 ? void 0 : _a.feature) === null || _b === void 0 ? void 0 : _b.getGeometry()); });
1044
1064
  this.registerExecutor(GenerateDrawExecutor.ID, (e) => DrawingGenerationService.getDraw(e));
1045
1065
  this.registerExecutor(GenerateZoomControlExecutor.ID, (e) => ZoomControlFactory.build(e.settings));
1066
+ this.registerExecutor(GetMapPositionExecutor.ID, () => this.state.getMapPosition());
1046
1067
  }
1047
1068
  }
1048
1069
  MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }, { token: FeatureModificationService }, { token: ControlsService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -1051,14 +1072,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1051
1072
  type: Injectable
1052
1073
  }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }, { type: DrawingService }, { type: FeatureModificationService }, { type: ControlsService }]; } });
1053
1074
 
1075
+ /**
1076
+ * Class representing settings for a tile layer.
1077
+ */
1054
1078
  class TileLayerSettings {
1055
1079
  constructor() {
1080
+ /**
1081
+ * The maximum zoom level for a map view.
1082
+ *
1083
+ * @type {number}
1084
+ * @default 19
1085
+ */
1056
1086
  this.maxZoom = 19;
1087
+ /**
1088
+ * The minimum zoom level allowed.
1089
+ *
1090
+ * @type {number}
1091
+ */
1057
1092
  this.minZoom = 0;
1093
+ /**
1094
+ * The opacity of an element.
1095
+ *
1096
+ * @type {number}
1097
+ * @default 0.6
1098
+ */
1058
1099
  this.opacity = 0.6;
1100
+ /**
1101
+ * Represents the tiles URL.
1102
+ * @typedef {string} url
1103
+ *
1104
+ * @example
1105
+ * 'https://example.ex/{z}/{x}/{y}.png'
1106
+ */
1059
1107
  this.url = '';
1108
+ /**
1109
+ * The projection of the coordinate system.
1110
+ *
1111
+ * @type {string}
1112
+ * @default 'EPSG:3857'
1113
+ */
1060
1114
  this.projection = 'EPSG:3857';
1061
1115
  }
1116
+ /**
1117
+ * Creates a copy of the given tile layer settings.
1118
+ *
1119
+ * @param {TileLayerSettings} model - The tile layer settings to be copied.
1120
+ * @return {TileLayerSettings} - A new instance of TileLayerSettings with the same properties as the model.
1121
+ */
1062
1122
  static copy(model) {
1063
1123
  const result = new TileLayerSettings();
1064
1124
  result.maxZoom = model.maxZoom;
@@ -1068,21 +1128,57 @@ class TileLayerSettings {
1068
1128
  result.url = model.url;
1069
1129
  return result;
1070
1130
  }
1131
+ /**
1132
+ * Sets the URL of the TileLayerSettings object.
1133
+ *
1134
+ * @param {string} url - The URL to be set.
1135
+ * @return {TileLayerSettings} - The updated TileLayerSettings object.
1136
+ */
1071
1137
  setUrl(url) {
1072
1138
  return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { url }));
1073
1139
  }
1140
+ /**
1141
+ * Sets the maximum zoom level for the tile layer.
1142
+ *
1143
+ * @param {number} maxZoom - The maximum zoom level.
1144
+ * @returns {TileLayerSettings} - The updated tile layer settings object.
1145
+ */
1074
1146
  setMaxZoom(maxZoom) {
1075
1147
  return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
1076
1148
  }
1149
+ /**
1150
+ * Sets the minimum zoom level for the Tile Layer.
1151
+ *
1152
+ * @param {number} minZoom - The minimum zoom level to be set.
1153
+ * @return {TileLayerSettings} The modified TileLayerSettings object with the updated minimum zoom level.
1154
+ */
1077
1155
  setMinZoom(minZoom) {
1078
1156
  return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
1079
1157
  }
1158
+ /**
1159
+ * Sets the opacity of the TileLayerSettings.
1160
+ *
1161
+ * @param {number} opacity - The opacity value to set. Must be a number between 0 and 1.
1162
+ * @return {TileLayerSettings} - A new instance of TileLayerSettings with the opacity set.
1163
+ */
1080
1164
  setOpacity(opacity) {
1081
1165
  return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { opacity }));
1082
1166
  }
1167
+ /**
1168
+ * Sets the projection for the tile layer settings.
1169
+ *
1170
+ * @param {string} projection - The desired projection for the tile layer settings.
1171
+ * @return {TileLayerSettings} - The updated tile layer settings with the new projection.
1172
+ */
1083
1173
  setProjection(projection) {
1084
1174
  return TileLayerSettings.copy(Object.assign(Object.assign({}, this), { projection }));
1085
1175
  }
1176
+ /**
1177
+ * Checks if the current instance of TileLayerSettings is equal to the given model.
1178
+ * @param {TileLayerSettings} model - The model to compare against.
1179
+ * @return {boolean} - True if all properties of the current instance matches the properties of the model;
1180
+ * otherwise, false.
1181
+ */
1086
1182
  isSame(model) {
1087
1183
  if (this.maxZoom !== model.maxZoom)
1088
1184
  return false;
@@ -1151,18 +1247,18 @@ class TileLayerComponent extends DestructibleComponent {
1151
1247
  this._settings = new TileLayerSettings();
1152
1248
  this.onDestroy = () => this.removeLayer();
1153
1249
  }
1154
- ngOnInit() {
1155
- this.postboy
1156
- .subscribe(MapRenderedEvent.ID)
1157
- .pipe(filter((m) => !!m), first())
1158
- .subscribe((m) => this.initLayer());
1159
- }
1160
1250
  set settings(value) {
1161
1251
  if (!value || this._settings.isSame(value))
1162
1252
  return;
1163
1253
  this._settings = value;
1164
1254
  this.initLayer();
1165
1255
  }
1256
+ ngOnInit() {
1257
+ this.postboy
1258
+ .subscribe(MapRenderedEvent.ID)
1259
+ .pipe(filter((m) => !!m), first())
1260
+ .subscribe((m) => this.initLayer());
1261
+ }
1166
1262
  initLayer() {
1167
1263
  this.removeLayer();
1168
1264
  this.layer = this.factory.build(this._settings);
@@ -1257,17 +1353,24 @@ class FeatureLayerSettings {
1257
1353
  */
1258
1354
  this.zIndex = 1;
1259
1355
  /**
1260
- * The maximum zoom at which the layer is visible. 19 by default
1356
+ The maximum view zoom level (inclusive) at which this layer will be visible.
1357
+
1358
+ @type {number}
1359
+ @default 19
1261
1360
  */
1262
1361
  this.maxZoom = 19;
1263
1362
  /**
1264
- * The minimum zoom at which the layer is visible. 0 by default
1363
+ The minimum view zoom level (exclusive) at which this layer will be visible.
1364
+
1365
+ @type {number}
1265
1366
  */
1266
1367
  this.minZoom = 0;
1267
1368
  }
1268
1369
  /**
1269
- * Creates a clone of the existing settings
1270
- * @param model
1370
+ * Copies the given FeatureLayerSettings object
1371
+ *
1372
+ * @param {FeatureLayerSettings} model - The FeatureLayerSettings object to be copied
1373
+ * @returns {FeatureLayerSettings} - A copy of the FeatureLayerSettings object
1271
1374
  */
1272
1375
  static copy(model) {
1273
1376
  const result = new FeatureLayerSettings();
@@ -1279,43 +1382,56 @@ class FeatureLayerSettings {
1279
1382
  return result;
1280
1383
  }
1281
1384
  /**
1282
- Setter for {@link FeatureLayerSettings.zIndex}
1283
- * @param zIndex
1385
+ * Sets the z-index value for the FeatureLayerSettings object.
1386
+ *
1387
+ * @param {number} zIndex - The new z-index value.
1388
+ * @return {FeatureLayerSettings} - The updated FeatureLayerSettings object.
1284
1389
  */
1285
1390
  setZIndex(zIndex) {
1286
1391
  return FeatureLayerSettings.copy(Object.assign(Object.assign({}, this), { zIndex }));
1287
1392
  }
1288
1393
  /**
1289
- * Setter for {@link FeatureLayerSettings.name}
1290
- * @param name
1394
+ * Sets the name of the FeatureLayerSettings.
1395
+ *
1396
+ * @param {string} name - The name to set for the FeatureLayerSettings.
1397
+ *
1398
+ * @return {FeatureLayerSettings} - The updated FeatureLayerSettings object with the new name.
1291
1399
  */
1292
1400
  setName(name) {
1293
1401
  return FeatureLayerSettings.copy(Object.assign(Object.assign({}, this), { name }));
1294
1402
  }
1295
1403
  /**
1296
- * Setter for {@link FeatureLayerSettings.maxZoom}
1297
- * @param maxZoom
1404
+ * Sets the maximum zoom level for the FeatureLayerSettings.
1405
+ *
1406
+ * @param {number} maxZoom - The maximum zoom level.
1407
+ * @return {FeatureLayerSettings} - The updated FeatureLayerSettings object.
1298
1408
  */
1299
1409
  setMaxZoom(maxZoom) {
1300
1410
  return FeatureLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
1301
1411
  }
1302
1412
  /**
1303
- * Setter for {@link FeatureLayerSettings.minZoom}
1304
- * @param minZoom
1413
+ * Sets the minimum zoom level for the feature layer.
1414
+ *
1415
+ * @param {number} minZoom The minimum zoom level to be set.
1416
+ * @returns {FeatureLayerSettings} The updated feature layer settings object.
1305
1417
  */
1306
1418
  setMinZoom(minZoom) {
1307
1419
  return FeatureLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
1308
1420
  }
1309
1421
  /**
1310
- * Setter for {@link FeatureLayerSettings.style}
1311
- * @param style
1422
+ * Sets the style for the FeatureLayerSettings object.
1423
+ *
1424
+ * @param {Style | StyleFunction} style - The new style to set. It can be either a Style object or a StyleFunction.
1425
+ * @return {FeatureLayerSettings} - The updated FeatureLayerSettings object with the new style.
1312
1426
  */
1313
1427
  setStyle(style) {
1314
1428
  return FeatureLayerSettings.copy(Object.assign(Object.assign({}, this), { style }));
1315
1429
  }
1316
1430
  /**
1317
- * Checks if the model has the same content
1318
- * @param model - the object to compare
1431
+ * Checks if the given FeatureLayerSettings object is identical to the current object.
1432
+ *
1433
+ * @param {FeatureLayerSettings} model - The FeatureLayerSettings object to compare with.
1434
+ * @return {boolean} - Returns true if the given object is identical to the current object, otherwise false.
1319
1435
  */
1320
1436
  isSame(model) {
1321
1437
  if (this.maxZoom !== model.maxZoom)
@@ -1365,18 +1481,18 @@ class FeatureLayerComponent extends DestructibleComponent {
1365
1481
  this._settings = new FeatureLayerSettings();
1366
1482
  this.onDestroy = () => this.removeLayer();
1367
1483
  }
1368
- ngOnInit() {
1369
- this.postboy
1370
- .subscribe(MapRenderedEvent.ID)
1371
- .pipe(filter((m) => !!m), first())
1372
- .subscribe((m) => this.initLayer());
1373
- }
1374
1484
  set settings(value) {
1375
1485
  if (!value || this._settings.isSame(value))
1376
1486
  return;
1377
1487
  this._settings = value;
1378
1488
  this.initLayer();
1379
1489
  }
1490
+ ngOnInit() {
1491
+ this.postboy
1492
+ .subscribe(MapRenderedEvent.ID)
1493
+ .pipe(filter((m) => !!m), first())
1494
+ .subscribe((m) => this.initLayer());
1495
+ }
1380
1496
  initLayer() {
1381
1497
  this.removeLayer();
1382
1498
  this.layer = this.factory.build(this._settings);
@@ -1405,12 +1521,34 @@ class ClusterLayerSettings {
1405
1521
  constructor() {
1406
1522
  this.name = IdGenerator.get();
1407
1523
  this.zIndex = 1;
1524
+ /**
1525
+ * The maximum view zoom level (inclusive) at which this layer will be visible.
1526
+ *
1527
+ * @type {number}
1528
+ * @default 19
1529
+ */
1408
1530
  this.maxZoom = 19;
1531
+ /**
1532
+ * The minimum view zoom level (exclusive) at which this layer will be visible.
1533
+ *
1534
+ * @type {number}
1535
+ */
1409
1536
  this.minZoom = 0;
1537
+ /**
1538
+ * Distance in pixels within which features will be clustered together.
1539
+ *
1540
+ * @type {number}
1541
+ */
1410
1542
  this.distance = 20;
1411
1543
  this.bbox = false;
1412
1544
  this.clusterCancel = 14;
1413
1545
  }
1546
+ /**
1547
+ * Creates a copy of the given ClusterLayerSettings object.
1548
+ *
1549
+ * @param {ClusterLayerSettings} model - The ClusterLayerSettings object to be copied.
1550
+ * @returns {ClusterLayerSettings} - A new ClusterLayerSettings object that is a copy of the original object.
1551
+ */
1414
1552
  static copy(model) {
1415
1553
  const result = new ClusterLayerSettings();
1416
1554
  result.name = model.name;
@@ -1423,30 +1561,86 @@ class ClusterLayerSettings {
1423
1561
  result.style = model.style;
1424
1562
  return result;
1425
1563
  }
1564
+ /**
1565
+ * Set the z-index for the ClusterLayer.
1566
+ *
1567
+ * @param {number} zIndex - The new z-index for the ClusterLayer.
1568
+ * @return {ClusterLayerSettings} - The updated ClusterLayerSettings object.
1569
+ */
1426
1570
  setZIndex(zIndex) {
1427
1571
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { zIndex }));
1428
1572
  }
1573
+ /**
1574
+ * Sets the distance value for ClusterLayerSettings.
1575
+ *
1576
+ * @param {number} distance - The distance value to be set.
1577
+ * @return {ClusterLayerSettings} - The modified ClusterLayerSettings object.
1578
+ */
1429
1579
  setDistance(distance) {
1430
1580
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { distance }));
1431
1581
  }
1582
+ /**
1583
+ * Sets the name of the ClusterLayerSettings object.
1584
+ *
1585
+ * @param {string} name - The name to set for the ClusterLayerSettings.
1586
+ * @return {ClusterLayerSettings} - A new ClusterLayerSettings object with the updated name.
1587
+ */
1432
1588
  setName(name) {
1433
1589
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { name }));
1434
1590
  }
1591
+ /**
1592
+ * Sets the maximum zoom level for the Cluster Layer.
1593
+ *
1594
+ * @param {number} maxZoom - The maximum zoom level to be set.
1595
+ * @return {ClusterLayerSettings} - The updated ClusterLayerSettings object.
1596
+ */
1435
1597
  setMaxZoom(maxZoom) {
1436
1598
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { maxZoom }));
1437
1599
  }
1600
+ /**
1601
+ * Sets the minimum zoom level for the ClusterLayerSettings.
1602
+ *
1603
+ * @param {number} minZoom - The minimum zoom level to set.
1604
+ * @return {ClusterLayerSettings} - The updated ClusterLayerSettings object.
1605
+ */
1438
1606
  setMinZoom(minZoom) {
1439
1607
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { minZoom }));
1440
1608
  }
1609
+ /**
1610
+ * Sets the cluster cancel number for the ClusterLayerSettings.
1611
+ *
1612
+ * @param {number} clusterCancel - The new cluster cancel number.
1613
+ * @returns {ClusterLayerSettings} - The updated ClusterLayerSettings object.
1614
+ */
1441
1615
  setClusterCancel(clusterCancel) {
1442
1616
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { clusterCancel }));
1443
1617
  }
1618
+ /**
1619
+ * Sets the value of 'bbox' property in the ClusterLayerSettings object.
1620
+ *
1621
+ * @param {boolean} bbox - A boolean value indicating whether to include bounding box calculation in the cluster layer settings.
1622
+ * @returns {ClusterLayerSettings} - The updated ClusterLayerSettings object with the newly set 'bbox' value.
1623
+ */
1444
1624
  setBbox(bbox) {
1445
1625
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { bbox }));
1446
1626
  }
1627
+ /**
1628
+ * Sets the style for the ClusterLayerSettings.
1629
+ *
1630
+ * @param {function} style - A function that takes an array of identified features as input and returns a Style or StyleFunction.
1631
+ *
1632
+ * @return {ClusterLayerSettings} - The updated ClusterLayerSettings object with the new style applied.
1633
+ */
1447
1634
  setStyle(style) {
1448
1635
  return ClusterLayerSettings.copy(Object.assign(Object.assign({}, this), { style }));
1449
1636
  }
1637
+ /**
1638
+ * Checks if the current ClusterLayerSettings object is the same as the specified model.
1639
+ *
1640
+ * @param {ClusterLayerSettings} model - The model to compare with the current object.
1641
+ *
1642
+ * @return {boolean} - Returns true if the current ClusterLayerSettings object is the same as the specified model, otherwise false.
1643
+ */
1450
1644
  isSame(model) {
1451
1645
  if (this.maxZoom !== model.maxZoom)
1452
1646
  return false;
@@ -1551,6 +1745,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1551
1745
  }]
1552
1746
  }] });
1553
1747
 
1748
+ /**
1749
+ * Represents a cluster layer component.
1750
+ */
1554
1751
  class ClusterLayerComponent extends DestructibleComponent {
1555
1752
  constructor(postboy, factory) {
1556
1753
  super();
@@ -1560,18 +1757,23 @@ class ClusterLayerComponent extends DestructibleComponent {
1560
1757
  this._settings = new ClusterLayerSettings();
1561
1758
  this.onDestroy = () => this.removeLayer();
1562
1759
  }
1563
- ngOnInit() {
1564
- this.postboy
1565
- .subscribe(MapRenderedEvent.ID)
1566
- .pipe(filter((m) => !!m), first())
1567
- .subscribe((m) => this.initLayer());
1568
- }
1760
+ /**
1761
+ * Sets the settings for the cluster layer.
1762
+ *
1763
+ * @param {ClusterLayerSettings | undefined} value - The settings for the cluster layer.
1764
+ */
1569
1765
  set settings(value) {
1570
1766
  if (!value || this._settings.isSame(value))
1571
1767
  return;
1572
1768
  this._settings = value;
1573
1769
  this.initLayer();
1574
1770
  }
1771
+ ngOnInit() {
1772
+ this.postboy
1773
+ .subscribe(MapRenderedEvent.ID)
1774
+ .pipe(filter((m) => !!m), first())
1775
+ .subscribe((m) => this.initLayer());
1776
+ }
1575
1777
  initLayer() {
1576
1778
  this.removeLayer();
1577
1779
  this.manager = this.factory.build(this._settings, this.postboy);
@@ -1629,8 +1831,8 @@ class MapPlateComponent extends DestructibleComponent {
1629
1831
  this.registrator = registrator;
1630
1832
  this.detector = detector;
1631
1833
  this.osmUrl = '';
1632
- this._settings = new MapSettings();
1633
1834
  this.drawingLayerSettings = new FeatureLayerSettings().setName(MapConstants.DrawingLayerId);
1835
+ this._settings = new MapSettings();
1634
1836
  this.onDestroy = () => {
1635
1837
  this.registrator.down();
1636
1838
  };
@@ -1698,6 +1900,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1698
1900
  type: Input
1699
1901
  }] } });
1700
1902
 
1903
+ /**
1904
+ * MarkersComponent is a component that displays markers on a map.
1905
+ * It listens for changes in the `markers` input property and
1906
+ * automatically puts the markers on the map using the MapPostboyService.
1907
+ */
1701
1908
  class MarkersComponent extends DestructibleComponent {
1702
1909
  constructor(postboy) {
1703
1910
  super();
@@ -1705,6 +1912,11 @@ class MarkersComponent extends DestructibleComponent {
1705
1912
  this.layerName = '';
1706
1913
  this._markers = [];
1707
1914
  }
1915
+ /**
1916
+ * Sets the markers property.
1917
+ *
1918
+ * @param {MarkerModel[]} value - The array of MarkerModel objects to set as markers.
1919
+ */
1708
1920
  set markers(value) {
1709
1921
  this._markers = value !== null && value !== void 0 ? value : [];
1710
1922
  this.putMarkers();
@@ -1771,13 +1983,8 @@ class TooltipComponent extends DestructibleComponent {
1771
1983
  super();
1772
1984
  this.postboy = postboy;
1773
1985
  this.detector = detector;
1774
- this._settings = new TooltipSettings();
1775
1986
  this.show = false;
1776
- this.removeOverlay = () => {
1777
- var _a;
1778
- !!this.overlay && ((_a = this.map) === null || _a === void 0 ? void 0 : _a.removeOverlay(this.overlay));
1779
- this.show = false;
1780
- };
1987
+ this._settings = new TooltipSettings();
1781
1988
  this.options = (coordinates) => {
1782
1989
  var _a;
1783
1990
  return {
@@ -1787,6 +1994,11 @@ class TooltipComponent extends DestructibleComponent {
1787
1994
  position: coordinates,
1788
1995
  };
1789
1996
  };
1997
+ this.removeOverlay = () => {
1998
+ var _a;
1999
+ !!this.overlay && ((_a = this.map) === null || _a === void 0 ? void 0 : _a.removeOverlay(this.overlay));
2000
+ this.show = false;
2001
+ };
1790
2002
  }
1791
2003
  set settings(value) {
1792
2004
  if (!value || this._settings.isSame(value))
@@ -1799,6 +2011,14 @@ class TooltipComponent extends DestructibleComponent {
1799
2011
  this.subs.push(this.observeMapClick());
1800
2012
  this.subs.push(this.observeClose());
1801
2013
  }
2014
+ addOverlay(coordinates) {
2015
+ var _a;
2016
+ this.removeOverlay();
2017
+ this.overlay = new Overlay(this.options(coordinates));
2018
+ (_a = this.map) === null || _a === void 0 ? void 0 : _a.addOverlay(this.overlay);
2019
+ this.show = true;
2020
+ this.detector.detectChanges();
2021
+ }
1802
2022
  observeMapClick() {
1803
2023
  return this.postboy.subscribe(MapClickEvent.ID).subscribe((ev) => {
1804
2024
  this._settings.show(ev) ? this.addOverlay(ev.coordinates) : this.removeOverlay();
@@ -1815,14 +2035,6 @@ class TooltipComponent extends DestructibleComponent {
1815
2035
  this.map = m.map;
1816
2036
  });
1817
2037
  }
1818
- addOverlay(coordinates) {
1819
- var _a;
1820
- this.removeOverlay();
1821
- this.overlay = new Overlay(this.options(coordinates));
1822
- (_a = this.map) === null || _a === void 0 ? void 0 : _a.addOverlay(this.overlay);
1823
- this.show = true;
1824
- this.detector.detectChanges();
1825
- }
1826
2038
  }
1827
2039
  TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TooltipComponent, deps: [{ token: MapPostboyService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1828
2040
  TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TooltipComponent, selector: "art-tooltip", inputs: { settings: "settings" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["tip"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #tip [class]=\"['tooltip-wrapper', _settings.containerClass]\" [hidden]=\"!show\">\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".tooltip-wrapper{position:absolute}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -1841,6 +2053,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1841
2053
  type: Input
1842
2054
  }] } });
1843
2055
 
2056
+ /**
2057
+ * Component for rendering polygons on a map.
2058
+ * It listens for changes in the `polygons` input property and
2059
+ * automatically puts the polygons on the map using the MapPostboyService.
2060
+ */
1844
2061
  class PolygonsComponent extends DestructibleComponent {
1845
2062
  constructor(postboy) {
1846
2063
  super();
@@ -1848,6 +2065,11 @@ class PolygonsComponent extends DestructibleComponent {
1848
2065
  this.layerName = '';
1849
2066
  this._polygons = [];
1850
2067
  }
2068
+ /**
2069
+ * Sets the value of polygons.
2070
+ *
2071
+ * @param {PolygonModel[]} value - The new value for polygons.
2072
+ */
1851
2073
  set polygons(value) {
1852
2074
  this._polygons = value !== null && value !== void 0 ? value : [];
1853
2075
  this.putPolygons();
@@ -1880,14 +2102,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
1880
2102
  type: Input
1881
2103
  }] } });
1882
2104
 
2105
+ /**
2106
+ * Represents the settings for a zoom control.
2107
+ */
1883
2108
  class ZoomControlSettings {
1884
2109
  constructor() {
2110
+ /**
2111
+ * The CSS class name of the control element.
2112
+ *
2113
+ * @type {string}
2114
+ */
1885
2115
  this.controlClass = 'ol-zoom';
2116
+ /**
2117
+ * The CSS class name for zoom in button.
2118
+ * @type {string}
2119
+ */
1886
2120
  this.zoomInClass = 'ol-zoom-in';
2121
+ /**
2122
+ * The CSS class name for the zoom out button element.
2123
+ *
2124
+ * @type {string}
2125
+ */
1887
2126
  this.zoomOutClass = 'ol-zoom-out';
2127
+ /**
2128
+ * The label for the zoom in action.
2129
+ *
2130
+ * @type {string}
2131
+ */
1888
2132
  this.zoomInLabel = 'Zoom In';
2133
+ /**
2134
+ * The label for the zoom out control.
2135
+ *
2136
+ * @type {string}
2137
+ */
1889
2138
  this.zoomOutLabel = 'Zoom Out';
1890
2139
  }
2140
+ /**
2141
+ * Copies the provided ZoomControlSettings object.
2142
+ *
2143
+ * @param {ZoomControlSettings} model - The ZoomControlSettings object to be copied.
2144
+ * @return {ZoomControlSettings} - The copied ZoomControlSettings object.
2145
+ */
1891
2146
  static copy(model) {
1892
2147
  const result = new ZoomControlSettings();
1893
2148
  result.controlClass = model.controlClass;
@@ -1897,6 +2152,13 @@ class ZoomControlSettings {
1897
2152
  result.zoomOutLabel = model.zoomOutLabel;
1898
2153
  return result;
1899
2154
  }
2155
+ /**
2156
+ * Checks if the current ZoomControlSettings object is equal to the given model.
2157
+ *
2158
+ * @param {ZoomControlSettings} model - The ZoomControlSettings object to compare with.
2159
+ *
2160
+ * @return {boolean} - true if the current object is equal to the given model, false otherwise.
2161
+ */
1900
2162
  isSame(model) {
1901
2163
  if (this.zoomInClass !== model.zoomInClass)
1902
2164
  return false;
@@ -1910,23 +2172,60 @@ class ZoomControlSettings {
1910
2172
  return false;
1911
2173
  return true;
1912
2174
  }
2175
+ /**
2176
+ * Sets the zoom in label of the Zoom Control Settings.
2177
+ *
2178
+ * @param {string} zoomInLabel - The label for the zoom in button.
2179
+ * @return {ZoomControlSettings} - The new Zoom Control Settings object with the updated zoom in label.
2180
+ */
1913
2181
  setZoomInLabel(zoomInLabel) {
1914
2182
  return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomInLabel }));
1915
2183
  }
2184
+ /**
2185
+ * Sets the zoomOutClass property of the ZoomControlSettings object.
2186
+ *
2187
+ * @param {string} zoomOutClass - The CSS class to be assigned to the zoom out button.
2188
+ * @return {ZoomControlSettings} - The updated ZoomControlSettings object with the new zoomOutClass value.
2189
+ */
1916
2190
  setZoomOutClass(zoomOutClass) {
1917
2191
  return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomOutClass }));
1918
2192
  }
2193
+ /**
2194
+ * Sets the zoom in class for the zoom control settings.
2195
+ *
2196
+ * @param {string} zoomInClass - The new zoom in class to be set.
2197
+ * @return {ZoomControlSettings} - The updated zoom control settings.
2198
+ */
1919
2199
  setZoomInClass(zoomInClass) {
1920
2200
  return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomInClass }));
1921
2201
  }
2202
+ /**
2203
+ * Set the label for the zoom out control.
2204
+ *
2205
+ * @param {string} zoomOutLabel - The label for the zoom out control.
2206
+ * @returns {ZoomControlSettings} - The updated zoom control settings.
2207
+ */
1922
2208
  setZoomOutLabel(zoomOutLabel) {
1923
2209
  return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomOutLabel }));
1924
2210
  }
2211
+ /**
2212
+ * Sets the control class for the ZoomControlSettings.
2213
+ *
2214
+ * @param {string} controlClass - The class name of the control to be set.
2215
+ *
2216
+ * @return {ZoomControlSettings} - The modified ZoomControlSettings object.
2217
+ */
1925
2218
  setControlClass(controlClass) {
1926
2219
  return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { controlClass }));
1927
2220
  }
1928
2221
  }
1929
2222
 
2223
+ /**
2224
+ * @class
2225
+ * @classdesc Represents a component for the Zoom control on a map.
2226
+ * @extends DestructibleComponent
2227
+ * @implements OnInit
2228
+ */
1930
2229
  class MapControlZoomComponent extends DestructibleComponent {
1931
2230
  constructor(postboy) {
1932
2231
  super();
@@ -1937,6 +2236,17 @@ class MapControlZoomComponent extends DestructibleComponent {
1937
2236
  };
1938
2237
  this.eliminate = () => !!this.map && !!this.control && this.map.removeControl(this.control);
1939
2238
  }
2239
+ /**
2240
+ * Sets the settings for the Zoom Control.
2241
+ *
2242
+ * @param {ZoomControlSettings | undefined} value - The new settings for the Zoom Control.
2243
+ *
2244
+ * @description
2245
+ * This method sets the settings for the Zoom Control. It takes a parameter `value` which should be an object of type `ZoomControlSettings` or `undefined`.
2246
+ *
2247
+ * If the `value` is `undefined` or the same as the current settings, the method will return without making any changes.
2248
+ *
2249
+ */
1940
2250
  set settings(value) {
1941
2251
  if (!value || this._settings.isSame(value))
1942
2252
  return;
@@ -2023,7 +2333,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2023
2333
  }]
2024
2334
  }] });
2025
2335
 
2336
+ /**
2337
+ * Helper class to create and modify marker styles.
2338
+ */
2026
2339
  class MarkerStyleHelper {
2340
+ /**
2341
+ * Creates a new Style object from an SVG.
2342
+ * @param {string} svg - The SVG string.
2343
+ * @param {Array<number>} [size=[30, 30]] - The size of the icon image.
2344
+ * @param {number} [zIndex=400] - The zIndex of the style.
2345
+ * @returns {Style} A new Style object.
2346
+ */
2027
2347
  static fromSvg(svg, size = [30, 30], zIndex = 400) {
2028
2348
  let image = new Image();
2029
2349
  image.src = 'data:image/svg+xml,' + escape(svg);
@@ -2035,6 +2355,15 @@ class MarkerStyleHelper {
2035
2355
  zIndex,
2036
2356
  });
2037
2357
  }
2358
+ /**
2359
+ * Returns a Style object with a circle style.
2360
+ *
2361
+ * @param {number} radius - The radius of the circle.
2362
+ * @param {string} fill - The fill color of the circle. Format: '#RRGGBB' or 'rgba(R, G, B, A)'.
2363
+ * @param {string} strokeColor - The stroke color of the circle. Format: '#RRGGBB' or 'rgba(R, G, B, A)'.
2364
+ * @param {number} [strokeWidth=1] - The width of the stroke. Default is 1.
2365
+ * @returns {Style} - A Style object with a Circle image.
2366
+ */
2038
2367
  static circle(radius, fill, strokeColor, strokeWidth = 1) {
2039
2368
  return new Style({
2040
2369
  image: new Circle({
@@ -2044,13 +2373,32 @@ class MarkerStyleHelper {
2044
2373
  }),
2045
2374
  });
2046
2375
  }
2376
+ /**
2377
+ * Applies the given Text to the provided Style.
2378
+ *
2379
+ * @param {Style} style - The Style to modify.
2380
+ * @param {Text} text - The Text to apply to the Style.
2381
+ * @return {Style} - The modified Style with the applied Text.
2382
+ */
2047
2383
  static withText(style, text) {
2048
2384
  style.setText(text);
2049
2385
  return style;
2050
2386
  }
2051
2387
  }
2052
2388
 
2389
+ /**
2390
+ * A helper class for creating polygon styles.
2391
+ * @class
2392
+ */
2053
2393
  class PolygonStyleHelper {
2394
+ /**
2395
+ * Creates a Style object with the given fill color, stroke color, and stroke width.
2396
+ *
2397
+ * @param {string} fill - The fill color in hexadecimal or RGB format.
2398
+ * @param {string} stroke - The stroke color in hexadecimal or RGB format.
2399
+ * @param {number} [strokeWidth=1] - The width of the stroke. Defaults to 1.
2400
+ * @return {Style} The created Style object.
2401
+ */
2054
2402
  static simple(fill, stroke, strokeWidth = 1) {
2055
2403
  return new Style({
2056
2404
  fill: new Fill({
@@ -2062,6 +2410,15 @@ class PolygonStyleHelper {
2062
2410
  }),
2063
2411
  });
2064
2412
  }
2413
+ /**
2414
+ * Creates a new Style object with the given fill, stroke, stroke width, and pin radius.
2415
+ *
2416
+ * @param {string} fill - The color to use for the fill of the style.
2417
+ * @param {string} stroke - The color to use for the stroke of the style.
2418
+ * @param {number} [strokeWidth=1] - The width of the stroke. Defaults to 1.
2419
+ * @param {number} [pinRadius=5] - The radius of the circle used as the image for the style. Defaults to 5.
2420
+ * @returns {Style} - The newly created Style object.
2421
+ */
2065
2422
  static edit(fill, stroke, strokeWidth = 1, pinRadius = 5) {
2066
2423
  return new Style({
2067
2424
  image: new Circle({
@@ -2081,7 +2438,18 @@ class PolygonStyleHelper {
2081
2438
  }
2082
2439
  }
2083
2440
 
2441
+ /**
2442
+ * Helper class for creating text styles.
2443
+ */
2084
2444
  class TextStyleHelper {
2445
+ /**
2446
+ * Creates a new instance of the Text class with the specified properties.
2447
+ *
2448
+ * @param {string} text - The text content of the Text object.
2449
+ * @param {string} font - The font style of the Text object.
2450
+ * @param {string} color - The color of the Text object.
2451
+ * @return {Text} A new instance of the Text class.
2452
+ */
2085
2453
  static get(text, font, color) {
2086
2454
  return new Text({
2087
2455
  text: text,
@@ -2094,37 +2462,41 @@ class TextStyleHelper {
2094
2462
  }
2095
2463
  }
2096
2464
 
2465
+ /**
2466
+ * A helper class for converting and stringify features.
2467
+ */
2097
2468
  class StringifyFeatureHelper {
2098
2469
  static polygon(feature, format = FeatureOutputFormat.GeoJson) {
2099
2470
  return format === FeatureOutputFormat.GeoJson
2100
2471
  ? new GeoJSON().writeFeature(feature)
2101
2472
  : new WKT().writeFeature(feature);
2102
2473
  }
2474
+ /**
2475
+ * Creates a polygon feature representing a circle based on a given feature with a circle geometry.
2476
+ *
2477
+ * @param {Feature<Geometry>} feature - The input feature with a circle geometry.
2478
+ * @param {FeatureOutputFormat} format - The format for outputting the polygon feature. (default: FeatureOutputFormat.GeoJson)
2479
+ *
2480
+ * @return {string} - The string representation of the polygon feature.
2481
+ */
2103
2482
  static circle(feature, format = FeatureOutputFormat.GeoJson) {
2104
- // const clone = feature.clone();
2105
- // clone.setGeometry(fromCircle(feature.getGeometry()! as Circle));
2106
- const tetemp = feature.getGeometryName();
2107
2483
  const circle = feature.getGeometry();
2108
- // const temp = StringifyFeatureHelper.drawCircle(circle.getCenter(), circle.getRadius());
2109
- const ttt = feature.getGeometry().getExtent();
2110
- const eastPoint = [ttt[2], (ttt[1] + ttt[3]) / 2];
2111
- const aaa = [
2112
- ...transform([ttt[0], ttt[1]], 'EPSG:4326', 'EPSG:3857'),
2113
- ...transform([ttt[2], ttt[3]], 'EPSG:4326', 'EPSG:3857'),
2484
+ const ext = feature.getGeometry().getExtent();
2485
+ const coords = [
2486
+ ...transform([ext[0], ext[1]], 'EPSG:4326', 'EPSG:3857'),
2487
+ ...transform([ext[2], ext[3]], 'EPSG:4326', 'EPSG:3857'),
2114
2488
  ];
2115
- const radius = (aaa[2] - aaa[0]) / 2;
2116
- const radius2 = new LineString([circle.getCenter(), eastPoint]).getLength();
2489
+ const radius = (coords[2] - coords[0]) / 2;
2117
2490
  const polygonGeom = new Polygon(StringifyFeatureHelper.drawCircle(circle.getCenter(), radius));
2118
- // var edgeCoordinate = [circle.getCenter()[0] + radius, circle.getCenter()[1]];
2119
- // var wgs84Sphere = new Sphere(6378137);
2120
2491
  return StringifyFeatureHelper.polygon(new Feature(polygonGeom), format);
2121
- // const rad = circle.getRadius();
2122
- // const degrees = 180 / Math.PI; // radians to degrees
2123
- // const radians = Math.PI / 180; // degrees to radians
2124
- // const rlat = rad * degrees * 1000;
2125
- // const rlng = rad * radians;
2126
- // return StringifyFeatureHelper.polygon(new Feature<Geometry>(circular(circle.getCenter(),circle.getRadius() * METERS_PER_UNIT)), format);
2127
2492
  }
2493
+ /**
2494
+ * Draw a circle based on a center point and radius.
2495
+ *
2496
+ * @param {number[]} point - The center point coordinates in EPSG:4326 format.
2497
+ * @param {number} radius - The radius of the circle in meters.
2498
+ * @return {Coordinate[][]} - The coordinates of the circle boundary in EPSG:4326 format.
2499
+ */
2128
2500
  static drawCircle(point, radius) {
2129
2501
  const tetetemp = transform(point, 'EPSG:4326', 'EPSG:3857');
2130
2502
  // const tetetemp = point;
@@ -2157,5 +2529,5 @@ class StringifyFeatureHelper {
2157
2529
  * Generated bundle index. Do not edit.
2158
2530
  */
2159
2531
 
2160
- export { AddControlCommand, CalculateAreaExecutor, CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, FitToPolygonsCommand, MapClickEvent, MapControl, MapControlZoomComponent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, RemoveControlCommand, SetMapCenterCommand, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings, ZoomControlSettings };
2532
+ export { AddControlCommand, CalculateAreaExecutor, CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, FitToPolygonsCommand, GetMapPositionExecutor, MapClickEvent, MapControl, MapControlZoomComponent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, RemoveControlCommand, SetMapCenterCommand, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings, ZoomControlSettings };
2161
2533
  //# sourceMappingURL=maps-components.js.map