@artstesh/maps 1.0.10 → 1.1.0

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 (92) hide show
  1. package/dist/bundles/maps-components-src-map.umd.js +386 -98
  2. package/dist/bundles/maps-components-src-map.umd.js.map +1 -1
  3. package/dist/bundles/maps-components.umd.js +386 -98
  4. package/dist/bundles/maps-components.umd.js.map +1 -1
  5. package/dist/esm2015/map/helpers/polygon-style.helper.js +19 -2
  6. package/dist/esm2015/map/map-plate/controls/index.js +3 -0
  7. package/dist/esm2015/map/map-plate/controls/map-control-zoom/map-control-zoom.component.js +54 -0
  8. package/dist/esm2015/map/map-plate/controls/map-control-zoom/zoom-control.factory.js +13 -0
  9. package/dist/esm2015/map/map-plate/controls/map-control-zoom/zoom-control.settings.js +47 -0
  10. package/dist/esm2015/map/map-plate/map-plate.component.js +4 -1
  11. package/dist/esm2015/map/map.module.js +8 -3
  12. package/dist/esm2015/map/messages/commands/cancel-feature-modification.command.js +8 -0
  13. package/dist/esm2015/map/messages/commands/modify-feature.command.js +15 -0
  14. package/dist/esm2015/map/messages/executors/filter-features-in-area.executor.js +13 -0
  15. package/dist/esm2015/map/messages/executors/generate-draw.executor.js +14 -0
  16. package/dist/esm2015/map/messages/executors/generate-zoom-control.executor.js +12 -0
  17. package/dist/esm2015/map/messages/index.js +3 -1
  18. package/dist/esm2015/map/models/drawing-type.enum.js +2 -1
  19. package/dist/esm2015/map/public-api.js +2 -1
  20. package/dist/esm2015/map/services/drawing/drawing-generation.service.js +16 -21
  21. package/dist/esm2015/map/services/drawing/drawing.service.js +9 -13
  22. package/dist/esm2015/map/services/drawing/feature-modification.service.js +104 -0
  23. package/dist/esm2015/map/services/feature.service.js +4 -17
  24. package/dist/esm2015/map/services/map-management.service.js +5 -13
  25. package/dist/esm2015/map/services/message-registrator.service.js +22 -11
  26. package/dist/esm2015/src/map/helpers/polygon-style.helper.js +19 -2
  27. package/dist/esm2015/src/map/map-plate/controls/index.js +3 -0
  28. package/dist/esm2015/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.js +54 -0
  29. package/dist/esm2015/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.js +13 -0
  30. package/dist/esm2015/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.js +47 -0
  31. package/dist/esm2015/src/map/map-plate/map-plate.component.js +4 -1
  32. package/dist/esm2015/src/map/map.module.js +8 -3
  33. package/dist/esm2015/src/map/messages/commands/cancel-feature-modification.command.js +8 -0
  34. package/dist/esm2015/src/map/messages/commands/modify-feature.command.js +15 -0
  35. package/dist/esm2015/src/map/messages/executors/filter-features-in-area.executor.js +13 -0
  36. package/dist/esm2015/src/map/messages/executors/generate-draw.executor.js +14 -0
  37. package/dist/esm2015/src/map/messages/executors/generate-zoom-control.executor.js +12 -0
  38. package/dist/esm2015/src/map/messages/index.js +3 -1
  39. package/dist/esm2015/src/map/models/drawing-type.enum.js +2 -1
  40. package/dist/esm2015/src/map/public-api.js +2 -1
  41. package/dist/esm2015/src/map/services/drawing/drawing-generation.service.js +16 -21
  42. package/dist/esm2015/src/map/services/drawing/drawing.service.js +9 -13
  43. package/dist/esm2015/src/map/services/drawing/feature-modification.service.js +104 -0
  44. package/dist/esm2015/src/map/services/feature.service.js +4 -17
  45. package/dist/esm2015/src/map/services/map-management.service.js +5 -13
  46. package/dist/esm2015/src/map/services/message-registrator.service.js +22 -11
  47. package/dist/fesm2015/maps-components-src-map.js +321 -83
  48. package/dist/fesm2015/maps-components-src-map.js.map +1 -1
  49. package/dist/fesm2015/maps-components.js +321 -83
  50. package/dist/fesm2015/maps-components.js.map +1 -1
  51. package/dist/map/helpers/polygon-style.helper.d.ts +1 -0
  52. package/dist/map/map-plate/controls/index.d.ts +2 -0
  53. package/dist/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +19 -0
  54. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +5 -0
  55. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +14 -0
  56. package/dist/map/map.module.d.ts +3 -2
  57. package/dist/map/messages/commands/cancel-feature-modification.command.d.ts +5 -0
  58. package/dist/map/messages/commands/modify-feature.command.d.ts +11 -0
  59. package/dist/map/messages/{queries/filter-features-in-area.query.d.ts → executors/filter-features-in-area.executor.d.ts} +2 -2
  60. package/dist/map/messages/{queries/generate-draw.query.d.ts → executors/generate-draw.executor.d.ts} +2 -2
  61. package/dist/map/messages/executors/generate-zoom-control.executor.d.ts +9 -0
  62. package/dist/map/messages/index.d.ts +2 -0
  63. package/dist/map/models/drawing-type.enum.d.ts +2 -1
  64. package/dist/map/public-api.d.ts +1 -0
  65. package/dist/map/services/drawing/drawing-generation.service.d.ts +5 -9
  66. package/dist/map/services/drawing/feature-modification.service.d.ts +22 -0
  67. package/dist/map/services/feature.service.d.ts +6 -9
  68. package/dist/map/services/message-registrator.service.d.ts +3 -3
  69. package/dist/package.json +1 -1
  70. package/dist/src/map/helpers/polygon-style.helper.d.ts +1 -0
  71. package/dist/src/map/map-plate/controls/index.d.ts +2 -0
  72. package/dist/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +19 -0
  73. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +5 -0
  74. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +14 -0
  75. package/dist/src/map/map.module.d.ts +3 -2
  76. package/dist/src/map/messages/commands/cancel-feature-modification.command.d.ts +5 -0
  77. package/dist/src/map/messages/commands/modify-feature.command.d.ts +11 -0
  78. package/dist/src/map/messages/{queries/filter-features-in-area.query.d.ts → executors/filter-features-in-area.executor.d.ts} +2 -2
  79. package/dist/src/map/messages/{queries/generate-draw.query.d.ts → executors/generate-draw.executor.d.ts} +2 -2
  80. package/dist/src/map/messages/executors/generate-zoom-control.executor.d.ts +9 -0
  81. package/dist/src/map/messages/index.d.ts +2 -0
  82. package/dist/src/map/models/drawing-type.enum.d.ts +2 -1
  83. package/dist/src/map/public-api.d.ts +1 -0
  84. package/dist/src/map/services/drawing/drawing-generation.service.d.ts +5 -9
  85. package/dist/src/map/services/drawing/feature-modification.service.d.ts +22 -0
  86. package/dist/src/map/services/feature.service.d.ts +6 -9
  87. package/dist/src/map/services/message-registrator.service.d.ts +3 -3
  88. package/package.json +2 -2
  89. package/dist/esm2015/map/messages/queries/filter-features-in-area.query.js +0 -13
  90. package/dist/esm2015/map/messages/queries/generate-draw.query.js +0 -14
  91. package/dist/esm2015/src/map/messages/queries/filter-features-in-area.query.js +0 -13
  92. package/dist/esm2015/src/map/messages/queries/generate-draw.query.js +0 -14
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('ol'), require('ol/geom'), require('ol/format'), require('ol/extent'), require('ol/proj'), require('@artstesh/postboy'), require('rxjs'), require('rxjs/operators'), require('ol/source'), require('ol/interaction'), require('ol/interaction/Draw'), require('ol/layer/Tile'), require('ol/source/OSM'), require('ol/layer'), require('ol/loadingstrategy'), require('ol/geom/Polygon'), require('ol/source/Cluster'), require('ol/Map'), require('ol/View'), require('ol/Overlay'), require('ol/style/Style'), require('ol/style'), require('ol/proj/epsg4326')) :
3
- typeof define === 'function' && define.amd ? define('maps-components/src/map', ['exports', '@angular/core', '@angular/common', 'ol', 'ol/geom', 'ol/format', 'ol/extent', 'ol/proj', '@artstesh/postboy', 'rxjs', 'rxjs/operators', 'ol/source', 'ol/interaction', 'ol/interaction/Draw', 'ol/layer/Tile', 'ol/source/OSM', 'ol/layer', 'ol/loadingstrategy', 'ol/geom/Polygon', 'ol/source/Cluster', 'ol/Map', 'ol/View', 'ol/Overlay', 'ol/style/Style', 'ol/style', 'ol/proj/epsg4326'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["maps-components"] = global["maps-components"] || {}, global["maps-components"].src = global["maps-components"].src || {}, global["maps-components"].src.map = {}), global.ng.core, global.ng.common, global.ol, global.geom, global.format, global.extent, global.proj, global.postboy, global.rxjs, global.rxjs.operators, global.source, global.interaction, global.Draw, global.TileLayer, global.OSM, global.layer, global.loadingstrategy, global.Polygon, global.Cluster, global.Map, global.View, global.Overlay, global.Style, global.style, global.epsg4326));
5
- })(this, (function (exports, i0, i6, ol, geom, format, extent, proj, postboy, rxjs, operators, source, interaction, Draw, TileLayer, OSM, layer, loadingstrategy, Polygon, Cluster, Map, View, Overlay, Style, style, epsg4326) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('ol'), require('ol/geom'), require('ol/format'), require('ol/extent'), require('ol/proj'), require('@artstesh/postboy'), require('ol/interaction'), require('ol/interaction/Draw'), require('ol/control'), require('rxjs/operators'), require('ol/source'), require('ol/layer/Tile'), require('ol/source/OSM'), require('ol/layer'), require('ol/loadingstrategy'), require('ol/geom/Polygon'), require('ol/source/Cluster'), require('rxjs'), require('ol/Map'), require('ol/View'), require('ol/Overlay'), require('ol/style/Style'), require('ol/style'), require('ol/proj/epsg4326')) :
3
+ typeof define === 'function' && define.amd ? define('maps-components/src/map', ['exports', '@angular/core', '@angular/common', 'ol', 'ol/geom', 'ol/format', 'ol/extent', 'ol/proj', '@artstesh/postboy', 'ol/interaction', 'ol/interaction/Draw', 'ol/control', 'rxjs/operators', 'ol/source', 'ol/layer/Tile', 'ol/source/OSM', 'ol/layer', 'ol/loadingstrategy', 'ol/geom/Polygon', 'ol/source/Cluster', 'rxjs', 'ol/Map', 'ol/View', 'ol/Overlay', 'ol/style/Style', 'ol/style', 'ol/proj/epsg4326'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["maps-components"] = global["maps-components"] || {}, global["maps-components"].src = global["maps-components"].src || {}, global["maps-components"].src.map = {}), global.ng.core, global.ng.common, global.ol, global.geom, global.format, global.extent, global.proj, global.postboy, global.interaction, global.Draw, global.control, global.rxjs.operators, global.source, global.TileLayer, global.OSM, global.layer, global.loadingstrategy, global.Polygon, global.Cluster, global.rxjs, global.Map, global.View, global.Overlay, global.Style, global.style, global.epsg4326));
5
+ })(this, (function (exports, i0, i6, ol, geom, format, extent, proj, postboy, interaction, Draw, control, operators, source, TileLayer, OSM, layer, loadingstrategy, Polygon, Cluster, rxjs, Map, View, Overlay, Style, style, epsg4326) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -676,6 +676,7 @@
676
676
  (function (DrawingType) {
677
677
  DrawingType[DrawingType["Polygon"] = 1] = "Polygon";
678
678
  DrawingType[DrawingType["Circle"] = 2] = "Circle";
679
+ DrawingType[DrawingType["Square"] = 3] = "Square";
679
680
  })(exports.DrawingType || (exports.DrawingType = {}));
680
681
 
681
682
  exports.FeatureOutputFormat = void 0;
@@ -883,6 +884,43 @@
883
884
  }(postboy.PostboyCallbackMessage));
884
885
  DrawSelectionAreaCommand.ID = '573d8a0d-f25b-42b7-9ad7-0ac6d86ac362';
885
886
 
887
+ var ModifyFeatureCommand = /** @class */ (function (_super) {
888
+ __extends(ModifyFeatureCommand, _super);
889
+ function ModifyFeatureCommand(model, style, format) {
890
+ if (format === void 0) { format = exports.FeatureOutputFormat.GeoJson; }
891
+ var _this = _super.call(this) || this;
892
+ _this.model = model;
893
+ _this.style = style;
894
+ _this.format = format;
895
+ return _this;
896
+ }
897
+ Object.defineProperty(ModifyFeatureCommand.prototype, "id", {
898
+ get: function () {
899
+ return ModifyFeatureCommand.ID;
900
+ },
901
+ enumerable: false,
902
+ configurable: true
903
+ });
904
+ return ModifyFeatureCommand;
905
+ }(postboy.PostboyCallbackMessage));
906
+ ModifyFeatureCommand.ID = 'ead85caa-24c6-4844-a68c-2cea91774c8c';
907
+
908
+ var CancelFeatureModificationCommand = /** @class */ (function (_super) {
909
+ __extends(CancelFeatureModificationCommand, _super);
910
+ function CancelFeatureModificationCommand() {
911
+ return _super !== null && _super.apply(this, arguments) || this;
912
+ }
913
+ Object.defineProperty(CancelFeatureModificationCommand.prototype, "id", {
914
+ get: function () {
915
+ return CancelFeatureModificationCommand.ID;
916
+ },
917
+ enumerable: false,
918
+ configurable: true
919
+ });
920
+ return CancelFeatureModificationCommand;
921
+ }(postboy.PostboyGenericMessage));
922
+ CancelFeatureModificationCommand.ID = '9c9fb40f-ea95-4704-8177-0e9ecabf36fa';
923
+
886
924
  var AddLayerCommand = /** @class */ (function (_super) {
887
925
  __extends(AddLayerCommand, _super);
888
926
  function AddLayerCommand(layer) {
@@ -1028,64 +1066,138 @@
1028
1066
  }(postboy.PostboyGenericMessage));
1029
1067
  DrawingFinishedEvent.ID = 'c724b68e-b4eb-4783-90f1-a8e31973fd36';
1030
1068
 
1031
- var GenerateDrawQuery = /** @class */ (function (_super) {
1032
- __extends(GenerateDrawQuery, _super);
1033
- function GenerateDrawQuery(layer, style, type) {
1069
+ var DrawingGenerationService = /** @class */ (function () {
1070
+ function DrawingGenerationService() {
1071
+ }
1072
+ DrawingGenerationService.getDraw = function (ev) {
1073
+ return new interaction.Draw({
1074
+ source: ev.layer.getSource(),
1075
+ type: ev.type === exports.DrawingType.Polygon ? 'Polygon' : 'Circle',
1076
+ style: ev.style,
1077
+ geometryFunction: DrawingGenerationService.geometryFunc(ev.type),
1078
+ });
1079
+ };
1080
+ DrawingGenerationService.geometryFunc = function (type) {
1081
+ switch (type) {
1082
+ case exports.DrawingType.Circle:
1083
+ return Draw.createRegularPolygon(32);
1084
+ case exports.DrawingType.Square:
1085
+ return Draw.createRegularPolygon(4);
1086
+ }
1087
+ return undefined;
1088
+ };
1089
+ return DrawingGenerationService;
1090
+ }());
1091
+
1092
+ var FeatureService = /** @class */ (function () {
1093
+ function FeatureService() {
1094
+ }
1095
+ FeatureService.filterFeaturesInArea = function (query) {
1096
+ return query.features.filter(function (f) { return FeatureService.booleanIntersects(query.area, f.getGeometry()); });
1097
+ };
1098
+ FeatureService.booleanIntersects = function (g1, g2) {
1099
+ if (g2.getType() === 'Point')
1100
+ return g1.intersectsCoordinate(g2.getCoordinates());
1101
+ if (g2.getType() === 'Circle')
1102
+ return g1.intersectsCoordinate(g2.getCenter());
1103
+ if (g2.getType() === 'Polygon')
1104
+ return g1.intersectsCoordinate(g2.getInteriorPoint().getCoordinates());
1105
+ return false;
1106
+ };
1107
+ return FeatureService;
1108
+ }());
1109
+
1110
+ var GetFeaturesInAreaQuery = /** @class */ (function (_super) {
1111
+ __extends(GetFeaturesInAreaQuery, _super);
1112
+ function GetFeaturesInAreaQuery(area, ignore) {
1113
+ if (ignore === void 0) { ignore = new Set(); }
1034
1114
  var _this = _super.call(this) || this;
1035
- _this.layer = layer;
1036
- _this.style = style;
1037
- _this.type = type;
1115
+ _this.area = area;
1116
+ _this.ignore = ignore;
1038
1117
  return _this;
1039
1118
  }
1040
- Object.defineProperty(GenerateDrawQuery.prototype, "id", {
1119
+ Object.defineProperty(GetFeaturesInAreaQuery.prototype, "id", {
1041
1120
  get: function () {
1042
- return GenerateDrawQuery.ID;
1121
+ return GetFeaturesInAreaQuery.ID;
1043
1122
  },
1044
1123
  enumerable: false,
1045
1124
  configurable: true
1046
1125
  });
1047
- return GenerateDrawQuery;
1126
+ return GetFeaturesInAreaQuery;
1048
1127
  }(postboy.PostboyCallbackMessage));
1049
- GenerateDrawQuery.ID = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';
1128
+ GetFeaturesInAreaQuery.ID = 'efcf4271-a07a-40e0-9f02-d4dade40b8ac';
1050
1129
 
1051
- var FilterFeaturesInAreaQuery = /** @class */ (function (_super) {
1052
- __extends(FilterFeaturesInAreaQuery, _super);
1053
- function FilterFeaturesInAreaQuery(area, features) {
1130
+ var FilterFeaturesInAreaExecutor = /** @class */ (function (_super) {
1131
+ __extends(FilterFeaturesInAreaExecutor, _super);
1132
+ function FilterFeaturesInAreaExecutor(area, features) {
1054
1133
  var _this = _super.call(this) || this;
1055
1134
  _this.area = area;
1056
1135
  _this.features = features;
1057
1136
  return _this;
1058
1137
  }
1059
- Object.defineProperty(FilterFeaturesInAreaQuery.prototype, "id", {
1138
+ Object.defineProperty(FilterFeaturesInAreaExecutor.prototype, "id", {
1060
1139
  get: function () {
1061
- return FilterFeaturesInAreaQuery.ID;
1140
+ return FilterFeaturesInAreaExecutor.ID;
1062
1141
  },
1063
1142
  enumerable: false,
1064
1143
  configurable: true
1065
1144
  });
1066
- return FilterFeaturesInAreaQuery;
1067
- }(postboy.PostboyCallbackMessage));
1068
- FilterFeaturesInAreaQuery.ID = '36bb2d94-8028-4512-90dd-2386af3fc67c';
1145
+ return FilterFeaturesInAreaExecutor;
1146
+ }(postboy.PostboyExecutor));
1147
+ FilterFeaturesInAreaExecutor.ID = '36bb2d94-8028-4512-90dd-2386af3fc67c';
1069
1148
 
1070
- var GetFeaturesInAreaQuery = /** @class */ (function (_super) {
1071
- __extends(GetFeaturesInAreaQuery, _super);
1072
- function GetFeaturesInAreaQuery(area, ignore) {
1073
- if (ignore === void 0) { ignore = new Set(); }
1149
+ var GenerateDrawExecutor = /** @class */ (function (_super) {
1150
+ __extends(GenerateDrawExecutor, _super);
1151
+ function GenerateDrawExecutor(layer, style, type) {
1074
1152
  var _this = _super.call(this) || this;
1075
- _this.area = area;
1076
- _this.ignore = ignore;
1153
+ _this.layer = layer;
1154
+ _this.style = style;
1155
+ _this.type = type;
1077
1156
  return _this;
1078
1157
  }
1079
- Object.defineProperty(GetFeaturesInAreaQuery.prototype, "id", {
1158
+ Object.defineProperty(GenerateDrawExecutor.prototype, "id", {
1080
1159
  get: function () {
1081
- return GetFeaturesInAreaQuery.ID;
1160
+ return GenerateDrawExecutor.ID;
1082
1161
  },
1083
1162
  enumerable: false,
1084
1163
  configurable: true
1085
1164
  });
1086
- return GetFeaturesInAreaQuery;
1087
- }(postboy.PostboyCallbackMessage));
1088
- GetFeaturesInAreaQuery.ID = 'efcf4271-a07a-40e0-9f02-d4dade40b8ac';
1165
+ return GenerateDrawExecutor;
1166
+ }(postboy.PostboyExecutor));
1167
+ GenerateDrawExecutor.ID = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';
1168
+
1169
+ var GenerateZoomControlExecutor = /** @class */ (function (_super) {
1170
+ __extends(GenerateZoomControlExecutor, _super);
1171
+ function GenerateZoomControlExecutor(settings) {
1172
+ var _this = _super.call(this) || this;
1173
+ _this.settings = settings;
1174
+ return _this;
1175
+ }
1176
+ Object.defineProperty(GenerateZoomControlExecutor.prototype, "id", {
1177
+ get: function () {
1178
+ return GenerateZoomControlExecutor.ID;
1179
+ },
1180
+ enumerable: false,
1181
+ configurable: true
1182
+ });
1183
+ return GenerateZoomControlExecutor;
1184
+ }(postboy.PostboyExecutor));
1185
+ GenerateZoomControlExecutor.ID = 'ff16a833-c68e-4b1a-bc23-c0d16b002810';
1186
+
1187
+ var ZoomControlFactory = /** @class */ (function () {
1188
+ function ZoomControlFactory() {
1189
+ }
1190
+ ZoomControlFactory.build = function (settings) {
1191
+ return new control.Zoom({
1192
+ zoomInTipLabel: settings.zoomInLabel,
1193
+ zoomOutTipLabel: settings.zoomOutLabel,
1194
+ zoomInClassName: settings.zoomInClass,
1195
+ zoomOutClassName: settings.zoomOutClass,
1196
+ className: settings.controlClass,
1197
+ });
1198
+ };
1199
+ return ZoomControlFactory;
1200
+ }());
1089
1201
 
1090
1202
  var MapPostboyService = /** @class */ (function (_super) {
1091
1203
  __extends(MapPostboyService, _super);
@@ -1178,8 +1290,6 @@
1178
1290
  var _this = this;
1179
1291
  this.postboy.subscribe(GetFeaturesInAreaQuery.ID).subscribe(function (qr) {
1180
1292
  var result = new Dictionary();
1181
- var queue = [];
1182
- var queries = [];
1183
1293
  _this.layers.forEach(function (l) {
1184
1294
  var _a, _b;
1185
1295
  var layerName = l.get('name');
@@ -1188,14 +1298,10 @@
1188
1298
  var source = l.getSource();
1189
1299
  if (!!source['getSource'])
1190
1300
  source = (_a = source) === null || _a === void 0 ? void 0 : _a.getSource();
1191
- var query = new FilterFeaturesInAreaQuery(qr.area, (_b = source === null || source === void 0 ? void 0 : source.getFeatures()) !== null && _b !== void 0 ? _b : []);
1192
- queue.push(query.result.pipe(operators.tap(function (r) {
1193
- result.put(l.get('name'), r.map(function (e) { return (Object.assign({ id: e.getId() }, e.get(MapConstants.FeatureInfo))); }));
1194
- })));
1195
- queries.push(query);
1301
+ var features = _this.postboy.execute(new FilterFeaturesInAreaExecutor(qr.area, (_b = source === null || source === void 0 ? void 0 : source.getFeatures()) !== null && _b !== void 0 ? _b : []));
1302
+ result.put(layerName, features.map(function (e) { return (Object.assign({ id: e.getId() }, e.get(MapConstants.FeatureInfo))); }));
1196
1303
  });
1197
- rxjs.forkJoin(queue).subscribe(function () { return qr.finish(result); });
1198
- queries.forEach(function (q) { return _this.postboy.fire(q); });
1304
+ qr.finish(result);
1199
1305
  });
1200
1306
  };
1201
1307
  return MapManagementService;
@@ -1349,22 +1455,18 @@
1349
1455
  var _this = this;
1350
1456
  this.postboy.subscribe(StartDrawingCommand.ID).subscribe(function (ev) {
1351
1457
  _this.draw(function (l) {
1458
+ var _a;
1352
1459
  if (!l || !_this.map) {
1353
1460
  _this.clearInteraction(l);
1354
1461
  return;
1355
1462
  }
1356
- var drawQuery = new GenerateDrawQuery(l, ev.style, ev.type);
1357
- drawQuery.result.subscribe(function (draw) {
1358
- var _a;
1359
- var cancelSub = _this.observeCancelation(ev, l);
1360
- _this.drawInteraction = draw;
1361
- (_a = _this.map) === null || _a === void 0 ? void 0 : _a.addInteraction(_this.drawInteraction);
1362
- _this.drawInteraction.on('drawend', function (evt) {
1363
- cancelSub.unsubscribe();
1364
- _this.onEnd(evt, ev, l);
1365
- });
1463
+ var cancelSub = _this.observeCancelation(ev, l);
1464
+ _this.drawInteraction = _this.postboy.execute(new GenerateDrawExecutor(l, ev.style, ev.type));
1465
+ (_a = _this.map) === null || _a === void 0 ? void 0 : _a.addInteraction(_this.drawInteraction);
1466
+ _this.drawInteraction.on('drawend', function (evt) {
1467
+ cancelSub.unsubscribe();
1468
+ _this.onEnd(evt, ev, l);
1366
1469
  });
1367
- _this.postboy.fire(drawQuery);
1368
1470
  });
1369
1471
  });
1370
1472
  };
@@ -1412,59 +1514,108 @@
1412
1514
  type: i0.Injectable
1413
1515
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
1414
1516
 
1415
- var DrawingGenerationService = /** @class */ (function () {
1416
- function DrawingGenerationService(postboy) {
1517
+ var FeatureModificationService = /** @class */ (function () {
1518
+ function FeatureModificationService(postboy) {
1417
1519
  this.postboy = postboy;
1418
1520
  }
1419
- DrawingGenerationService.prototype.up = function () {
1420
- this.postboy.subscribe(GenerateDrawQuery.ID).subscribe(function (ev) {
1421
- ev.finish(new interaction.Draw({
1422
- source: ev.layer.getSource(),
1423
- type: exports.DrawingType[ev.type],
1424
- style: ev.style,
1425
- geometryFunction: ev.type !== exports.DrawingType.Circle ? undefined : Draw.createRegularPolygon(32),
1426
- }));
1521
+ FeatureModificationService.prototype.up = function () {
1522
+ this.observeModification();
1523
+ this.observeMapRender();
1524
+ };
1525
+ FeatureModificationService.prototype.observeModification = function () {
1526
+ var _this = this;
1527
+ this.postboy.subscribe(ModifyFeatureCommand.ID).subscribe(function (ev) {
1528
+ _this.defineLayer(function (l) {
1529
+ if (!l || !_this.map) {
1530
+ _this.clearInteraction(l);
1531
+ return;
1532
+ }
1533
+ _this.observeCancelation(ev, l);
1534
+ _this.initFeature(l, ev.model.feature);
1535
+ _this.addModify(ev);
1536
+ _this.addDragging(ev);
1537
+ });
1427
1538
  });
1428
1539
  };
1429
- return DrawingGenerationService;
1430
- }());
1431
- DrawingGenerationService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawingGenerationService, deps: [{ token: MapPostboyService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1432
- DrawingGenerationService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawingGenerationService });
1433
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DrawingGenerationService, decorators: [{
1434
- type: i0.Injectable
1435
- }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
1436
-
1437
- var FeatureService = /** @class */ (function () {
1438
- function FeatureService(postboy) {
1439
- this.postboy = postboy;
1440
- }
1441
- FeatureService.prototype.up = function () {
1442
- this.postboy.subscribe(FilterFeaturesInAreaQuery.ID).subscribe(function (qr) {
1443
- qr.finish(qr.features.filter(function (f) { return FeatureService.booleanIntersects(qr.area, f.getGeometry()); }));
1540
+ FeatureModificationService.prototype.initFeature = function (layer, feature) {
1541
+ var _a, _b;
1542
+ (_a = layer.getSource()) === null || _a === void 0 ? void 0 : _a.clear();
1543
+ (_b = layer.getSource()) === null || _b === void 0 ? void 0 : _b.addFeature(feature);
1544
+ };
1545
+ FeatureModificationService.prototype.addModify = function (command) {
1546
+ var _this = this;
1547
+ var _a;
1548
+ this.modify = new interaction.Modify({
1549
+ features: new ol.Collection([command.model.feature]),
1550
+ style: command.style,
1444
1551
  });
1552
+ this.modify.on('modifyend', function () {
1553
+ _this.onModified(command);
1554
+ command.model.feature.changed();
1555
+ });
1556
+ (_a = this.map) === null || _a === void 0 ? void 0 : _a.addInteraction(this.modify);
1445
1557
  };
1446
- FeatureService.booleanIntersects = function (g1, g2) {
1447
- if (g2.getType() === 'Point')
1448
- return g1.intersectsCoordinate(g2.getCoordinates());
1449
- if (g2.getType() === 'Circle')
1450
- return g1.intersectsCoordinate(g2.getCenter());
1451
- if (g2.getType() === 'Polygon')
1452
- return g1.intersectsCoordinate(g2.getInteriorPoint().getCoordinates());
1453
- return false;
1558
+ FeatureModificationService.prototype.addDragging = function (command) {
1559
+ var _this = this;
1560
+ var _a;
1561
+ this.translate = new interaction.Translate({
1562
+ features: new ol.Collection([command.model.feature]),
1563
+ condition: function (ev) {
1564
+ var _a;
1565
+ var clone = command.model.feature.clone();
1566
+ (_a = clone.getGeometry()) === null || _a === void 0 ? void 0 : _a.scale(0.999);
1567
+ return clone.getGeometry().intersectsCoordinate(ev.coordinate);
1568
+ },
1569
+ });
1570
+ this.translate.on('translateend', function () { return _this.onModified(command); });
1571
+ (_a = this.map) === null || _a === void 0 ? void 0 : _a.addInteraction(this.translate);
1454
1572
  };
1455
- return FeatureService;
1573
+ FeatureModificationService.prototype.onModified = function (command) {
1574
+ command.next(command.format === exports.FeatureOutputFormat.GeoJson
1575
+ ? new format.GeoJSON().writeFeature(command.model.feature)
1576
+ : new format.WKT().writeFeature(command.model.feature));
1577
+ };
1578
+ FeatureModificationService.prototype.observeMapRender = function () {
1579
+ var _this = this;
1580
+ this.postboy.subscribe(MapRenderedEvent.ID).subscribe(function (m) {
1581
+ _this.map = m.map;
1582
+ });
1583
+ };
1584
+ FeatureModificationService.prototype.defineLayer = function (action) {
1585
+ var query = new GetLayerQuery(MapConstants.DrawingLayerId);
1586
+ query.result.subscribe(function (l) { return action(l); });
1587
+ this.postboy.fire(query);
1588
+ };
1589
+ FeatureModificationService.prototype.observeCancelation = function (ev, layer) {
1590
+ var _this = this;
1591
+ return this.postboy
1592
+ .subscribe(CancelFeatureModificationCommand.ID)
1593
+ .pipe(operators.first())
1594
+ .subscribe(function () {
1595
+ ev.finish(null);
1596
+ _this.clearInteraction(layer);
1597
+ });
1598
+ };
1599
+ FeatureModificationService.prototype.clearInteraction = function (layer) {
1600
+ var _a, _b;
1601
+ if (this.modify)
1602
+ (_a = this.map) === null || _a === void 0 ? void 0 : _a.removeInteraction(this.modify);
1603
+ if (this.translate)
1604
+ (_b = this.map) === null || _b === void 0 ? void 0 : _b.removeInteraction(this.translate);
1605
+ };
1606
+ return FeatureModificationService;
1456
1607
  }());
1457
- FeatureService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FeatureService, deps: [{ token: MapPostboyService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1458
- FeatureService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FeatureService });
1459
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FeatureService, decorators: [{
1608
+ FeatureModificationService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FeatureModificationService, deps: [{ token: MapPostboyService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1609
+ FeatureModificationService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FeatureModificationService });
1610
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FeatureModificationService, decorators: [{
1460
1611
  type: i0.Injectable
1461
1612
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
1462
1613
 
1463
1614
  var MessageRegistratorService = /** @class */ (function (_super) {
1464
1615
  __extends(MessageRegistratorService, _super);
1465
- function MessageRegistratorService(service, management, state, mapFeature, interaction, drawing, drawGenerator, feature) {
1616
+ function MessageRegistratorService(service, management, state, mapFeature, interaction, drawing, featureModification) {
1466
1617
  var _this = _super.call(this, service) || this;
1467
- _this.registerServices([management, state, interaction, mapFeature, drawing, drawGenerator, feature]);
1618
+ _this.registerServices([management, state, interaction, mapFeature, drawing, featureModification]);
1468
1619
  return _this;
1469
1620
  }
1470
1621
  MessageRegistratorService.prototype._up = function () {
@@ -1482,18 +1633,24 @@
1482
1633
  this.registerSubject(StartDrawingCommand.ID);
1483
1634
  this.registerSubject(GetLayerQuery.ID);
1484
1635
  this.registerSubject(DrawingFinishedEvent.ID);
1485
- this.registerSubject(GenerateDrawQuery.ID);
1486
- this.registerSubject(FilterFeaturesInAreaQuery.ID);
1487
1636
  this.registerSubject(GetFeaturesInAreaQuery.ID);
1488
1637
  this.registerSubject(DrawSelectionAreaCommand.ID);
1638
+ this.registerSubject(CancelFeatureModificationCommand.ID);
1639
+ this.registerSubject(ModifyFeatureCommand.ID);
1640
+ this.setExecutors();
1641
+ };
1642
+ MessageRegistratorService.prototype.setExecutors = function () {
1643
+ this.registerExecutor(FilterFeaturesInAreaExecutor.ID, function (e) { return FeatureService.filterFeaturesInArea(e); });
1644
+ this.registerExecutor(GenerateDrawExecutor.ID, function (e) { return DrawingGenerationService.getDraw(e); });
1645
+ this.registerExecutor(GenerateZoomControlExecutor.ID, function (e) { return ZoomControlFactory.build(e.settings); });
1489
1646
  };
1490
1647
  return MessageRegistratorService;
1491
1648
  }(postboy.PostboyAbstractRegistrator));
1492
- MessageRegistratorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }, { token: DrawingGenerationService }, { token: FeatureService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1649
+ MessageRegistratorService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }, { token: FeatureModificationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1493
1650
  MessageRegistratorService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService });
1494
1651
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MessageRegistratorService, decorators: [{
1495
1652
  type: i0.Injectable
1496
- }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }, { type: DrawingService }, { type: DrawingGenerationService }, { type: FeatureService }]; } });
1653
+ }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: MapManagementService }, { type: MapStateService }, { type: MapFeatureService }, { type: MapClickService }, { type: DrawingService }, { type: FeatureModificationService }]; } });
1497
1654
 
1498
1655
  var TileLayerSettings = /** @class */ (function () {
1499
1656
  function TileLayerSettings() {
@@ -2135,6 +2292,7 @@
2135
2292
  DrawingService,
2136
2293
  DrawingGenerationService,
2137
2294
  FeatureService,
2295
+ FeatureModificationService,
2138
2296
  ], usesInheritance: true, ngImport: i0__namespace, template: "<ng-content></ng-content>\r\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\r\n<lib-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></lib-feature-layer>\r\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], components: [{ type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }, { type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: ["settings"] }], directives: [{ type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2139
2297
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MapPlateComponent, decorators: [{
2140
2298
  type: i0.Component,
@@ -2152,6 +2310,7 @@
2152
2310
  DrawingService,
2153
2311
  DrawingGenerationService,
2154
2312
  FeatureService,
2313
+ FeatureModificationService,
2155
2314
  ],
2156
2315
  }]
2157
2316
  }], ctorParameters: function () { return [{ type: i0__namespace.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: MessageRegistratorService }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { settings: [{
@@ -2368,6 +2527,108 @@
2368
2527
  type: i0.Input
2369
2528
  }] } });
2370
2529
 
2530
+ var ZoomControlSettings = /** @class */ (function () {
2531
+ function ZoomControlSettings() {
2532
+ this.controlClass = 'ol-zoom';
2533
+ this.zoomInClass = 'ol-zoom-in';
2534
+ this.zoomOutClass = 'ol-zoom-out';
2535
+ this.zoomInLabel = 'Zoom In';
2536
+ this.zoomOutLabel = 'Zoom Out';
2537
+ }
2538
+ ZoomControlSettings.copy = function (model) {
2539
+ var result = new ZoomControlSettings();
2540
+ result.controlClass = model.controlClass;
2541
+ result.zoomInClass = model.zoomInClass;
2542
+ result.zoomOutClass = model.zoomOutClass;
2543
+ result.zoomInLabel = model.zoomInLabel;
2544
+ result.zoomOutLabel = model.zoomOutLabel;
2545
+ return result;
2546
+ };
2547
+ ZoomControlSettings.prototype.isSame = function (model) {
2548
+ if (this.zoomInClass !== model.zoomInClass)
2549
+ return false;
2550
+ if (this.zoomOutClass !== model.zoomOutClass)
2551
+ return false;
2552
+ if (this.zoomInLabel !== model.zoomInLabel)
2553
+ return false;
2554
+ if (this.controlClass !== model.controlClass)
2555
+ return false;
2556
+ if (this.zoomOutLabel !== model.zoomOutLabel)
2557
+ return false;
2558
+ return true;
2559
+ };
2560
+ ZoomControlSettings.prototype.setZoomInLabel = function (zoomInLabel) {
2561
+ return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomInLabel: zoomInLabel }));
2562
+ };
2563
+ ZoomControlSettings.prototype.setZoomOutClass = function (zoomOutClass) {
2564
+ return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomOutClass: zoomOutClass }));
2565
+ };
2566
+ ZoomControlSettings.prototype.setZoomInClass = function (zoomInClass) {
2567
+ return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomInClass: zoomInClass }));
2568
+ };
2569
+ ZoomControlSettings.prototype.setZoomOutLabel = function (zoomOutLabel) {
2570
+ return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { zoomOutLabel: zoomOutLabel }));
2571
+ };
2572
+ ZoomControlSettings.prototype.setControlClass = function (controlClass) {
2573
+ return ZoomControlSettings.copy(Object.assign(Object.assign({}, this), { controlClass: controlClass }));
2574
+ };
2575
+ return ZoomControlSettings;
2576
+ }());
2577
+
2578
+ var MapControlZoomComponent = /** @class */ (function (_super) {
2579
+ __extends(MapControlZoomComponent, _super);
2580
+ function MapControlZoomComponent(postboy) {
2581
+ var _this = _super.call(this) || this;
2582
+ _this.postboy = postboy;
2583
+ _this._settings = new ZoomControlSettings();
2584
+ _this.onDestroy = function () {
2585
+ _this.eliminate();
2586
+ };
2587
+ _this.eliminate = function () { return !!_this.map && !!_this.control && _this.map.removeControl(_this.control); };
2588
+ return _this;
2589
+ }
2590
+ Object.defineProperty(MapControlZoomComponent.prototype, "settings", {
2591
+ set: function (value) {
2592
+ if (!value || this._settings.isSame(value))
2593
+ return;
2594
+ this._settings = value;
2595
+ this.setControl();
2596
+ },
2597
+ enumerable: false,
2598
+ configurable: true
2599
+ });
2600
+ MapControlZoomComponent.prototype.ngOnInit = function () {
2601
+ var _this = this;
2602
+ this.postboy
2603
+ .subscribe(MapRenderedEvent.ID)
2604
+ .pipe(operators.filter(function (m) { return !!m; }), operators.first())
2605
+ .subscribe(function (m) {
2606
+ _this.map = m.map;
2607
+ _this.setControl();
2608
+ });
2609
+ };
2610
+ MapControlZoomComponent.prototype.setControl = function () {
2611
+ if (!this.map)
2612
+ return;
2613
+ this.control = this.postboy.execute(new GenerateZoomControlExecutor(this._settings));
2614
+ this.map.addControl(this.control);
2615
+ };
2616
+ return MapControlZoomComponent;
2617
+ }(DestructibleComponent));
2618
+ MapControlZoomComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MapControlZoomComponent, deps: [{ token: MapPostboyService }], target: i0__namespace.ɵɵFactoryTarget.Component });
2619
+ MapControlZoomComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MapControlZoomComponent, selector: "lib-map-control-zoom", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0__namespace, template: '', isInline: true, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2620
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MapControlZoomComponent, decorators: [{
2621
+ type: i0.Component,
2622
+ args: [{
2623
+ selector: 'lib-map-control-zoom',
2624
+ template: '',
2625
+ styleUrls: [],
2626
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2627
+ }]
2628
+ }], ctorParameters: function () { return [{ type: MapPostboyService }]; }, propDecorators: { settings: [{
2629
+ type: i0.Input
2630
+ }] } });
2631
+
2371
2632
  var MapModule = /** @class */ (function () {
2372
2633
  function MapModule() {
2373
2634
  }
@@ -2382,13 +2643,15 @@
2382
2643
  MarkersComponent,
2383
2644
  TooltipComponent,
2384
2645
  PolygonsComponent,
2385
- ClusterLayerComponent], imports: [i6.CommonModule], exports: [MapPlateComponent,
2646
+ ClusterLayerComponent,
2647
+ MapControlZoomComponent], imports: [i6.CommonModule], exports: [MapPlateComponent,
2386
2648
  FeatureLayerComponent,
2387
2649
  MarkersComponent,
2388
2650
  TileLayerComponent,
2389
2651
  TooltipComponent,
2390
2652
  PolygonsComponent,
2391
- ClusterLayerComponent] });
2653
+ ClusterLayerComponent,
2654
+ MapControlZoomComponent] });
2392
2655
  MapModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MapModule, imports: [[i6.CommonModule]] });
2393
2656
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: MapModule, decorators: [{
2394
2657
  type: i0.NgModule,
@@ -2404,6 +2667,7 @@
2404
2667
  TooltipComponent,
2405
2668
  PolygonsComponent,
2406
2669
  ClusterLayerComponent,
2670
+ MapControlZoomComponent,
2407
2671
  ],
2408
2672
  exports: [
2409
2673
  MapPlateComponent,
@@ -2413,6 +2677,7 @@
2413
2677
  TooltipComponent,
2414
2678
  PolygonsComponent,
2415
2679
  ClusterLayerComponent,
2680
+ MapControlZoomComponent,
2416
2681
  ],
2417
2682
  }]
2418
2683
  }] });
@@ -2465,6 +2730,25 @@
2465
2730
  }),
2466
2731
  });
2467
2732
  };
2733
+ PolygonStyleHelper.edit = function (fill, stroke, strokeWidth, pinRadius) {
2734
+ if (strokeWidth === void 0) { strokeWidth = 1; }
2735
+ if (pinRadius === void 0) { pinRadius = 5; }
2736
+ return new Style__default["default"]({
2737
+ image: new style.Circle({
2738
+ fill: new style.Fill({
2739
+ color: stroke,
2740
+ }),
2741
+ radius: pinRadius,
2742
+ }),
2743
+ fill: new style.Fill({
2744
+ color: fill,
2745
+ }),
2746
+ stroke: new style.Stroke({
2747
+ color: stroke,
2748
+ width: strokeWidth,
2749
+ }),
2750
+ });
2751
+ };
2468
2752
  return PolygonStyleHelper;
2469
2753
  }());
2470
2754
 
@@ -2546,6 +2830,7 @@
2546
2830
  */
2547
2831
 
2548
2832
  exports.CancelDrawingCommand = CancelDrawingCommand;
2833
+ exports.CancelFeatureModificationCommand = CancelFeatureModificationCommand;
2549
2834
  exports.CloseTooltipCommand = CloseTooltipCommand;
2550
2835
  exports.ClusterLayerComponent = ClusterLayerComponent;
2551
2836
  exports.ClusterLayerSettings = ClusterLayerSettings;
@@ -2554,6 +2839,7 @@
2554
2839
  exports.FeatureLayerComponent = FeatureLayerComponent;
2555
2840
  exports.FeatureLayerSettings = FeatureLayerSettings;
2556
2841
  exports.MapClickEvent = MapClickEvent;
2842
+ exports.MapControlZoomComponent = MapControlZoomComponent;
2557
2843
  exports.MapLyrsLabel = MapLyrsLabel;
2558
2844
  exports.MapModule = MapModule;
2559
2845
  exports.MapMoveEndEvent = MapMoveEndEvent;
@@ -2565,6 +2851,7 @@
2565
2851
  exports.MarkerStyleHelper = MarkerStyleHelper;
2566
2852
  exports.MarkersComponent = MarkersComponent;
2567
2853
  exports.MessageRegistratorService = MessageRegistratorService;
2854
+ exports.ModifyFeatureCommand = ModifyFeatureCommand;
2568
2855
  exports.OsmTileLayerComponent = OsmTileLayerComponent;
2569
2856
  exports.PolygonModel = PolygonModel;
2570
2857
  exports.PolygonStyleHelper = PolygonStyleHelper;
@@ -2576,6 +2863,7 @@
2576
2863
  exports.TileLayerSettings = TileLayerSettings;
2577
2864
  exports.TooltipComponent = TooltipComponent;
2578
2865
  exports.TooltipSettings = TooltipSettings;
2866
+ exports.ZoomControlSettings = ZoomControlSettings;
2579
2867
 
2580
2868
  Object.defineProperty(exports, '__esModule', { value: true });
2581
2869