@inlog/inlog-maps 4.9.4 → 5.0.1

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 (40) hide show
  1. package/DOCUMENTATION.md +1 -1
  2. package/_bundles/inlog-maps.js +256 -77
  3. package/_bundles/inlog-maps.js.map +1 -1
  4. package/_bundles/inlog-maps.min.js +1 -1
  5. package/_bundles/inlog-maps.min.js.map +1 -1
  6. package/lib/models/apis/google/google-polygons.d.ts +10 -0
  7. package/lib/models/apis/google/google-polygons.js +102 -31
  8. package/lib/models/apis/google/google-polygons.js.map +1 -1
  9. package/lib/models/apis/google/google-polylines.d.ts +1 -0
  10. package/lib/models/apis/google/google-polylines.js +25 -10
  11. package/lib/models/apis/google/google-polylines.js.map +1 -1
  12. package/lib/models/apis/leaflet/leaflet-polygons.d.ts +5 -0
  13. package/lib/models/apis/leaflet/leaflet-polygons.js +97 -23
  14. package/lib/models/apis/leaflet/leaflet-polygons.js.map +1 -1
  15. package/lib/models/apis/leaflet/leaflet-polylines.d.ts +1 -0
  16. package/lib/models/apis/leaflet/leaflet-polylines.js +23 -7
  17. package/lib/models/apis/leaflet/leaflet-polylines.js.map +1 -1
  18. package/lib/models/dto/event-type.d.ts +8 -5
  19. package/lib/models/dto/event-type.js +7 -4
  20. package/lib/models/dto/event-type.js.map +1 -1
  21. package/lib/utils/maps-api-loader.service.js +2 -2
  22. package/lib/utils/maps-api-loader.service.js.map +1 -1
  23. package/lib-esm/models/apis/google/google-polygons.d.ts +10 -0
  24. package/lib-esm/models/apis/google/google-polygons.js +102 -31
  25. package/lib-esm/models/apis/google/google-polygons.js.map +1 -1
  26. package/lib-esm/models/apis/google/google-polylines.d.ts +1 -0
  27. package/lib-esm/models/apis/google/google-polylines.js +25 -10
  28. package/lib-esm/models/apis/google/google-polylines.js.map +1 -1
  29. package/lib-esm/models/apis/leaflet/leaflet-polygons.d.ts +5 -0
  30. package/lib-esm/models/apis/leaflet/leaflet-polygons.js +97 -23
  31. package/lib-esm/models/apis/leaflet/leaflet-polygons.js.map +1 -1
  32. package/lib-esm/models/apis/leaflet/leaflet-polylines.d.ts +1 -0
  33. package/lib-esm/models/apis/leaflet/leaflet-polylines.js +23 -7
  34. package/lib-esm/models/apis/leaflet/leaflet-polylines.js.map +1 -1
  35. package/lib-esm/models/dto/event-type.d.ts +8 -5
  36. package/lib-esm/models/dto/event-type.js +7 -4
  37. package/lib-esm/models/dto/event-type.js.map +1 -1
  38. package/lib-esm/utils/maps-api-loader.service.js +2 -2
  39. package/lib-esm/utils/maps-api-loader.service.js.map +1 -1
  40. package/package.json +1 -1
package/DOCUMENTATION.md CHANGED
@@ -1,4 +1,4 @@
1
- # [@inlog/inlog-maps](https://github.com/weareinlog/inlog-maps#readme) *4.9.4*
1
+ # [@inlog/inlog-maps](https://github.com/weareinlog/inlog-maps#readme) *5.0.1*
2
2
 
3
3
  > A library for using generic layer maps
4
4
 
@@ -120,15 +120,18 @@ var CircleEventType;
120
120
  })(CircleEventType = exports.CircleEventType || (exports.CircleEventType = {}));
121
121
  var PolygonEventType;
122
122
  (function (PolygonEventType) {
123
- PolygonEventType[PolygonEventType["InsertAt"] = 0] = "InsertAt";
124
- PolygonEventType[PolygonEventType["Move"] = 1] = "Move";
125
- PolygonEventType[PolygonEventType["Click"] = 2] = "Click";
123
+ PolygonEventType[PolygonEventType["SetAt"] = 0] = "SetAt";
124
+ PolygonEventType[PolygonEventType["InsertAt"] = 1] = "InsertAt";
125
+ PolygonEventType[PolygonEventType["RemoveAt"] = 2] = "RemoveAt";
126
+ PolygonEventType[PolygonEventType["DragPolygon"] = 3] = "DragPolygon";
127
+ PolygonEventType[PolygonEventType["Click"] = 4] = "Click";
126
128
  })(PolygonEventType = exports.PolygonEventType || (exports.PolygonEventType = {}));
127
129
  var PolylineEventType;
128
130
  (function (PolylineEventType) {
129
- PolylineEventType[PolylineEventType["Move"] = 0] = "Move";
131
+ PolylineEventType[PolylineEventType["SetAt"] = 0] = "SetAt";
130
132
  PolylineEventType[PolylineEventType["InsertAt"] = 1] = "InsertAt";
131
133
  PolylineEventType[PolylineEventType["RemoveAt"] = 2] = "RemoveAt";
134
+ PolylineEventType[PolylineEventType["DragPolyline"] = 3] = "DragPolyline";
132
135
  })(PolylineEventType = exports.PolylineEventType || (exports.PolylineEventType = {}));
133
136
 
134
137
 
@@ -238,14 +241,14 @@ var MapsApiLoaderService = /** @class */ (function () {
238
241
  MapsApiLoaderService.loadLeafletAPI = function (params) {
239
242
  var link = document.createElement('link');
240
243
  link.rel = 'stylesheet';
241
- link.href = 'https://unpkg.com/leaflet@1.4.0/dist/leaflet.css';
244
+ link.href = 'https://desenvolvimentoweb.blob.core.windows.net/inlog-leaflet/leaflet.css';
242
245
  // link.integrity = params.cssIntegrity;
243
246
  // link.setAttribute('crossorigin', params.crossorigin);
244
247
  document.querySelector('head').appendChild(link);
245
248
  var script = document.createElement('script');
246
249
  script.type = 'text/javascript';
247
250
  script.src = url_builder_1.urlBuilder({
248
- base: 'https://unpkg.com/leaflet@1.4.0/dist/leaflet.js',
251
+ base: 'https://desenvolvimentoweb.blob.core.windows.net/inlog-leaflet/leaflet.js',
249
252
  callback: 'mapsAPILoadCallback',
250
253
  });
251
254
  document.querySelector('head').appendChild(script);
@@ -4110,13 +4113,8 @@ var GooglePolygons = /** @class */ (function () {
4110
4113
  }
4111
4114
  GooglePolygons.prototype.drawPolygon = function (options, eventClick) {
4112
4115
  var self = this;
4113
- var paths = [];
4114
- options.path.forEach(function (path) {
4115
- paths.push({
4116
- lat: path[0],
4117
- lng: path[1]
4118
- });
4119
- });
4116
+ var paths = this.getPathRecursiveArray(options.path);
4117
+ paths = this.getPathPolylineArray(paths);
4120
4118
  var newOptions = {
4121
4119
  draggable: options.draggable,
4122
4120
  editable: options.editable,
@@ -4184,31 +4182,26 @@ var GooglePolygons = /** @class */ (function () {
4184
4182
  return !!polygon.map;
4185
4183
  };
4186
4184
  GooglePolygons.prototype.getPolygonPath = function (polygon) {
4187
- return polygon.getPath().getArray().map(function (x) { return [x.lat(), x.lng()]; });
4185
+ return polygon.getPaths().getArray().map(function (x) { return x.getArray().map(function (y) { return new event_return_1.default([y.lat(), y.lng()]); }); });
4188
4186
  };
4189
4187
  GooglePolygons.prototype.addPolygonEvent = function (polygons, eventType, eventFunction) {
4190
4188
  var _this = this;
4191
4189
  polygons.forEach(function (polygon) {
4192
4190
  switch (eventType) {
4193
- case event_type_1.PolygonEventType.Move:
4194
- _this.google.maps.event.addListener(polygon.getPath(), 'set_at', function (event) {
4195
- var param = new event_return_1.default([polygon.getPath()
4196
- .getAt(event).lat(), polygon.getPath().getAt(event).lng()]);
4197
- eventFunction(param, polygon.getPath().getArray().map(function (x) { return [x.lat(), x.lng()]; }), polygon.object);
4198
- });
4191
+ case event_type_1.PolygonEventType.SetAt:
4192
+ _this.addPolygonEventMove(polygon, eventFunction);
4199
4193
  break;
4200
4194
  case event_type_1.PolygonEventType.InsertAt:
4201
- _this.google.maps.event.addListener(polygon.getPath(), 'insert_at', function (event) {
4202
- var param = new event_return_1.default([polygon.getPath()
4203
- .getAt(event).lat(), polygon.getPath().getAt(event).lng()]);
4204
- eventFunction(param, polygon.getPath().getArray().map(function (x) { return [x.lat(), x.lng()]; }), polygon.object);
4205
- });
4195
+ _this.addPolygonEventInsertAt(polygon, eventFunction);
4196
+ break;
4197
+ case event_type_1.PolygonEventType.RemoveAt:
4198
+ _this.addPolygonEventRemoveAt(polygon, eventFunction);
4199
+ break;
4200
+ case event_type_1.PolygonEventType.DragPolygon:
4201
+ _this.addPolygonEventDragPolygon(polygon, eventFunction);
4206
4202
  break;
4207
4203
  case event_type_1.PolygonEventType.Click:
4208
- _this.google.maps.event.addListener(polygon, 'click', function (event) {
4209
- var param = new event_return_1.default([event.latLng.lat(), event.latLng.lng()]);
4210
- eventFunction(param, polygon.object);
4211
- });
4204
+ _this.addPolygonEventClick(polygon, eventFunction);
4212
4205
  break;
4213
4206
  default:
4214
4207
  break;
@@ -4219,11 +4212,18 @@ var GooglePolygons = /** @class */ (function () {
4219
4212
  var _this = this;
4220
4213
  polygons.forEach(function (polygon) {
4221
4214
  switch (event) {
4222
- case event_type_1.PolygonEventType.Move:
4223
- _this.google.maps.event.clearListeners(polygon.getPath(), 'set_at');
4215
+ case event_type_1.PolygonEventType.SetAt:
4216
+ _this.google.maps.event.clearListeners(polygon.getPaths(), 'set_at');
4224
4217
  break;
4225
4218
  case event_type_1.PolygonEventType.InsertAt:
4226
- _this.google.maps.event.clearListeners(polygon.getPath(), 'insert_at');
4219
+ _this.google.maps.event.clearListeners(polygon.getPaths(), 'insert_at');
4220
+ break;
4221
+ case event_type_1.PolygonEventType.RemoveAt:
4222
+ _this.google.maps.event.clearListeners(polygon.getPaths(), 'remove_at');
4223
+ break;
4224
+ case event_type_1.PolygonEventType.DragPolygon:
4225
+ _this.google.maps.event.clearListeners(polygon, 'dragstart');
4226
+ _this.google.maps.event.clearListeners(polygon, 'dragend');
4227
4227
  break;
4228
4228
  case event_type_1.PolygonEventType.Click:
4229
4229
  _this.google.maps.event.clearListeners(polygon, 'click');
@@ -4237,19 +4237,93 @@ var GooglePolygons = /** @class */ (function () {
4237
4237
  var bounds = new this.google.maps.LatLngBounds();
4238
4238
  polygons.forEach(function (polygon) {
4239
4239
  var paths = polygon.getPaths().getArray();
4240
- paths.forEach(function (path) { return path.getArray()
4241
- .forEach(function (x) { return bounds.extend(x); }); });
4240
+ paths.forEach(function (path) { return path.getArray().forEach(function (x) { return bounds.extend(x); }); });
4242
4241
  });
4243
4242
  return bounds;
4244
4243
  };
4245
4244
  GooglePolygons.prototype.getPolygonBounds = function (polygon) {
4246
4245
  var bounds = new this.google.maps.LatLngBounds();
4247
4246
  var paths = polygon.getPaths().getArray();
4248
- paths.forEach(function (path) {
4249
- path.getArray().forEach(function (x) { return bounds.extend(x); });
4250
- });
4247
+ paths.forEach(function (path) { return path.getArray().forEach(function (x) { return bounds.extend(x); }); });
4251
4248
  return bounds;
4252
4249
  };
4250
+ GooglePolygons.prototype.addPolygonEventMove = function (polygon, eventFunction) {
4251
+ var polygonPathIdx = polygon.getPaths().getLength();
4252
+ for (var index = 0; index < polygonPathIdx; index++) {
4253
+ this.addPolygonEventMoveAllPaths(polygon, polygon.getPaths().getAt(index), eventFunction);
4254
+ }
4255
+ };
4256
+ GooglePolygons.prototype.addPolygonEventMoveAllPaths = function (polygon, innerPolygon, eventFunction) {
4257
+ this.google.maps.event.addListener(innerPolygon, 'set_at', function (newEvent, lastEvent) {
4258
+ if (polygon.dragging)
4259
+ return;
4260
+ var path = innerPolygon.getAt(newEvent);
4261
+ var newPosition = new event_return_1.default([path.lat(), path.lng()]);
4262
+ var lastPosition = new event_return_1.default([lastEvent.lat(), lastEvent.lng()]);
4263
+ eventFunction(newPosition, lastPosition, polygon.object, newEvent, polygon.getPaths().getArray().map(function (x) { return x.getArray().map(function (y) { return new event_return_1.default([y.lat(), y.lng()]); }); }));
4264
+ });
4265
+ };
4266
+ GooglePolygons.prototype.addPolygonEventInsertAt = function (polygon, eventFunction) {
4267
+ var polygonPathIdx = polygon.getPaths().getLength();
4268
+ for (var index = 0; index < polygonPathIdx; index++) {
4269
+ this.addPolygonEventInsertAtAllPaths(polygon, polygon.getPaths().getAt(index), eventFunction);
4270
+ }
4271
+ };
4272
+ GooglePolygons.prototype.addPolygonEventInsertAtAllPaths = function (polygon, innerPolygon, eventFunction) {
4273
+ this.google.maps.event.addListener(innerPolygon, 'insert_at', function (event) {
4274
+ var newPath = innerPolygon.getAt(event);
4275
+ var newPoint = new event_return_1.default([newPath.lat(), newPath.lng()]);
4276
+ var previousPath = innerPolygon.getAt(event - 1);
4277
+ var previousPoint = previousPath ? new event_return_1.default([previousPath.lat(), previousPath.lng()]) : null;
4278
+ eventFunction(newPoint, previousPoint, polygon.object, event, polygon.getPaths().getArray().map(function (x) { return x.getArray().map(function (y) { return new event_return_1.default([y.lat(), y.lng()]); }); }));
4279
+ });
4280
+ };
4281
+ GooglePolygons.prototype.addPolygonEventRemoveAt = function (polygon, eventFunction) {
4282
+ var polygonPathIdx = polygon.getPaths().getLength();
4283
+ for (var index = 0; index < polygonPathIdx; index++) {
4284
+ this.addPolygonEventRemoveAtAllPaths(polygon, polygon.getPaths().getAt(index), eventFunction);
4285
+ }
4286
+ };
4287
+ GooglePolygons.prototype.addPolygonEventRemoveAtAllPaths = function (polygon, innerPolygon, eventFunction) {
4288
+ this.google.maps.event.addListener(innerPolygon, 'remove_at', function (event) {
4289
+ var param = new event_return_1.default([innerPolygon.getAt(event).lat(), innerPolygon.getAt(event).lng()]);
4290
+ eventFunction(param, polygon.getPaths().getArray().map(function (x) { return x.getArray().map(function (y) { return new event_return_1.default([y.lat(), y.lng()]); }); }), polygon.object);
4291
+ });
4292
+ };
4293
+ GooglePolygons.prototype.addPolygonEventDragPolygon = function (polygon, eventFunction) {
4294
+ this.google.maps.event.addListener(polygon, 'dragstart', function (event) {
4295
+ polygon.dragging = true;
4296
+ });
4297
+ this.google.maps.event.addListener(polygon, 'dragend', function (event) {
4298
+ polygon.dragging = false;
4299
+ eventFunction(polygon.getPaths().getArray().map(function (x) { return x.getArray().map(function (y) { return new event_return_1.default([y.lat(), y.lng()]); }); }), polygon.object);
4300
+ });
4301
+ };
4302
+ GooglePolygons.prototype.addPolygonEventClick = function (polygon, eventFunction) {
4303
+ this.google.maps.event.addListener(polygon, 'click', function (event) {
4304
+ var param = new event_return_1.default([event.latLng.lat(), event.latLng.lng()]);
4305
+ eventFunction(param, polygon.object);
4306
+ });
4307
+ };
4308
+ GooglePolygons.prototype.getPathRecursiveArray = function (path) {
4309
+ var _this = this;
4310
+ if (Array.isArray(path) && typeof path[0] !== 'number') {
4311
+ return path.map(function (x) { return _this.getPathRecursiveArray(x); });
4312
+ }
4313
+ else
4314
+ return { lat: path[0], lng: path[1] };
4315
+ };
4316
+ GooglePolygons.prototype.getPathPolylineArray = function (path) {
4317
+ if (typeof path[0].lat === 'number') {
4318
+ return path;
4319
+ }
4320
+ else if (typeof path[0][0].lat !== 'number') {
4321
+ path = path[0];
4322
+ return this.getPathPolylineArray(path);
4323
+ }
4324
+ else
4325
+ return path;
4326
+ };
4253
4327
  return GooglePolygons;
4254
4328
  }());
4255
4329
  exports.default = GooglePolygons;
@@ -4447,7 +4521,7 @@ var GooglePolylines = /** @class */ (function () {
4447
4521
  var _this = this;
4448
4522
  polylines.forEach(function (polyline) {
4449
4523
  switch (eventType) {
4450
- case event_type_1.PolylineEventType.Move:
4524
+ case event_type_1.PolylineEventType.SetAt:
4451
4525
  _this.addPolylineEventMove(polyline, eventFunction);
4452
4526
  break;
4453
4527
  case event_type_1.PolylineEventType.InsertAt:
@@ -4456,6 +4530,9 @@ var GooglePolylines = /** @class */ (function () {
4456
4530
  case event_type_1.PolylineEventType.RemoveAt:
4457
4531
  _this.addPolylineEventRemoveAt(polyline, eventFunction);
4458
4532
  break;
4533
+ case event_type_1.PolylineEventType.DragPolyline:
4534
+ _this.addPolylineEventDragPolyline(polyline, eventFunction);
4535
+ break;
4459
4536
  default:
4460
4537
  break;
4461
4538
  }
@@ -4463,12 +4540,10 @@ var GooglePolylines = /** @class */ (function () {
4463
4540
  };
4464
4541
  GooglePolylines.prototype.removePolylineEvent = function (polylines, event) {
4465
4542
  var _this = this;
4466
- polylines.forEach(function (polyline) {
4467
- return _this.google.maps.event.clearListeners(polyline, 'click');
4468
- });
4543
+ polylines.forEach(function (polyline) { return _this.google.maps.event.clearListeners(polyline, 'click'); });
4469
4544
  polylines.forEach(function (polyline) {
4470
4545
  switch (event) {
4471
- case event_type_1.PolylineEventType.Move:
4546
+ case event_type_1.PolylineEventType.SetAt:
4472
4547
  _this.google.maps.event.clearListeners(polyline.getPath(), 'set_at');
4473
4548
  break;
4474
4549
  case event_type_1.PolylineEventType.InsertAt:
@@ -4477,6 +4552,10 @@ var GooglePolylines = /** @class */ (function () {
4477
4552
  case event_type_1.PolylineEventType.RemoveAt:
4478
4553
  _this.google.maps.event.clearListeners(polyline.getPath(), 'remove_at');
4479
4554
  break;
4555
+ case event_type_1.PolylineEventType.DragPolyline:
4556
+ _this.google.maps.event.clearListeners(polyline, 'dragstart');
4557
+ _this.google.maps.event.clearListeners(polyline, 'dragend');
4558
+ break;
4480
4559
  default:
4481
4560
  break;
4482
4561
  }
@@ -4669,10 +4748,12 @@ var GooglePolylines = /** @class */ (function () {
4669
4748
  };
4670
4749
  GooglePolylines.prototype.addPolylineEventMove = function (polyline, eventFunction) {
4671
4750
  polyline.moveListener = function (newEvent, lastEvent) {
4751
+ if (polyline.dragging)
4752
+ return;
4672
4753
  var path = polyline.getPath().getAt(newEvent);
4673
4754
  var newPosition = new event_return_1.default([path.lat(), path.lng()]);
4674
4755
  var lastPosition = new event_return_1.default([lastEvent.lat(), lastEvent.lng()]);
4675
- eventFunction(newPosition, lastPosition, polyline.object, newEvent);
4756
+ eventFunction(newPosition, lastPosition, polyline.object, newEvent, polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); }));
4676
4757
  };
4677
4758
  this.google.maps.event.addListener(polyline.getPath(), 'set_at', polyline.moveListener);
4678
4759
  };
@@ -4683,18 +4764,26 @@ var GooglePolylines = /** @class */ (function () {
4683
4764
  var newPoint = new event_return_1.default([newPath.lat(), newPath.lng()]);
4684
4765
  var previousPath = path.getAt(event - 1);
4685
4766
  var previousPoint = previousPath ? new event_return_1.default([previousPath.lat(), previousPath.lng()]) : null;
4686
- eventFunction(newPoint, previousPoint, polyline.object, event);
4767
+ eventFunction(newPoint, previousPoint, polyline.object, event, polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); }));
4687
4768
  };
4688
4769
  this.google.maps.event.addListener(polyline.getPath(), 'insert_at', polyline.insertAtListener);
4689
4770
  };
4690
4771
  GooglePolylines.prototype.addPolylineEventRemoveAt = function (polyline, eventFunction) {
4691
4772
  polyline.removeAtListener = function (event) {
4692
- var param = new event_return_1.default([polyline.getPath().getAt(event).lat(),
4693
- polyline.getPath().getAt(event).lng()]);
4694
- eventFunction(param);
4773
+ var param = new event_return_1.default([polyline.getPath().getAt(event).lat(), polyline.getPath().getAt(event).lng()]);
4774
+ eventFunction(param, polyline.object, polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); }));
4695
4775
  };
4696
4776
  this.google.maps.event.addListener(polyline.getPath(), 'remove_at', polyline.removeAtListener);
4697
4777
  };
4778
+ GooglePolylines.prototype.addPolylineEventDragPolyline = function (polyline, eventFunction) {
4779
+ polyline.dragPolylineListener = function () {
4780
+ polyline.dragging = false;
4781
+ var param = polyline.getPath().getArray().map(function (x) { return new event_return_1.default([x.lat(), x.lng()]); });
4782
+ eventFunction(param, polyline.object);
4783
+ };
4784
+ this.google.maps.event.addListener(polyline, 'dragend', polyline.dragPolylineListener);
4785
+ this.google.maps.event.addListener(polyline, 'dragstart', function () { return polyline.dragging = true; });
4786
+ };
4698
4787
  GooglePolylines.prototype.updateSelectedPathListeners = function () {
4699
4788
  if (this.selectedPath.moveListener) {
4700
4789
  this.google.maps.event.clearListeners(this.selectedPath.getPath(), 'set_at');
@@ -5910,12 +5999,10 @@ var LeafletPolygons = /** @class */ (function () {
5910
5999
  }
5911
6000
  polygon.setStyle(style);
5912
6001
  if (options.editable !== null && options.editable !== undefined) {
6002
+ polygon.disableEdit();
5913
6003
  if (options.editable) {
5914
6004
  polygon.enableEdit();
5915
6005
  }
5916
- else {
5917
- polygon.disableEdit();
5918
- }
5919
6006
  }
5920
6007
  if (options.object) {
5921
6008
  polygon.object = options.object;
@@ -5935,31 +6022,26 @@ var LeafletPolygons = /** @class */ (function () {
5935
6022
  return polygon.getLatLngs()[0].map(function (x) { return [x.lat, x.lng]; });
5936
6023
  };
5937
6024
  LeafletPolygons.prototype.addPolygonEvent = function (polygons, eventType, eventFunction) {
6025
+ var _this = this;
5938
6026
  var self = this;
5939
6027
  polygons.forEach(function (polygon) {
5940
6028
  switch (eventType) {
5941
- case event_type_1.PolygonEventType.Move:
5942
- polygon.on('dragend', function (event) {
5943
- var param = new event_return_1.default([event.target.getCenter().lat, event.target.getCenter().lng]);
5944
- eventFunction(param, event.target.getLatLngs()[0].map(function (x) { return [x.lat, x.lng]; }, event.target.object));
5945
- });
6029
+ case event_type_1.PolygonEventType.SetAt:
6030
+ _this.addPolygonEventMove(polygon, eventFunction);
5946
6031
  break;
5947
6032
  case event_type_1.PolygonEventType.InsertAt:
5948
- polygon.on('editable:vertex:dragend', function (event) {
5949
- var param = new event_return_1.default([event.vertex.latlng.lat, event.vertex.latlng.lng]);
5950
- eventFunction(param, event.vertex.latlngs.map(function (x) { return [x.lat, x.lng]; }), event.target.object);
5951
- });
5952
- polygon.on('editable:vertex:clicked', function (event) {
5953
- var param = new event_return_1.default([event.vertex.latlng.lat, event.vertex.latlng.lng]);
5954
- eventFunction(param, event.vertex.latlngs.map(function (x) { return [x.lat, x.lng]; }), event.target.object);
5955
- });
6033
+ _this.addPolygonEventInsertAt(polygon, eventFunction);
6034
+ break;
6035
+ case event_type_1.PolygonEventType.RemoveAt:
6036
+ _this.addPolygonEventRemoveAt(polygon, eventFunction);
6037
+ break;
6038
+ case event_type_1.PolygonEventType.DragPolygon:
6039
+ _this.addPolygonEventDragPolygon(polygon, eventFunction);
5956
6040
  break;
5957
6041
  case event_type_1.PolygonEventType.Click:
5958
- polygon.on('click', function (event) {
5959
- self.leaflet.DomEvent.stopPropagation(event);
5960
- var param = new event_return_1.default([event.latlng.lat, event.latlng.lng]);
5961
- eventFunction(param, event.target.object);
5962
- });
6042
+ _this.addPolygonEventClick(polygon, eventFunction, self);
6043
+ break;
6044
+ default:
5963
6045
  break;
5964
6046
  }
5965
6047
  });
@@ -5967,11 +6049,18 @@ var LeafletPolygons = /** @class */ (function () {
5967
6049
  LeafletPolygons.prototype.removePolygonEvent = function (polygons, event) {
5968
6050
  polygons.forEach(function (polygon) {
5969
6051
  switch (event) {
5970
- case event_type_1.PolygonEventType.Move:
6052
+ case event_type_1.PolygonEventType.SetAt:
5971
6053
  polygon.off('editable:vertex:dragstart');
5972
6054
  break;
5973
6055
  case event_type_1.PolygonEventType.InsertAt:
5974
- polygon.off('editable:vertex:dragend');
6056
+ polygon.off('editable:vertex:new');
6057
+ break;
6058
+ case event_type_1.PolygonEventType.RemoveAt:
6059
+ polygon.off('editable:vertex:clicked');
6060
+ polygon.off('editable:vertex:deleted');
6061
+ break;
6062
+ case event_type_1.PolygonEventType.DragPolygon:
6063
+ polygon.off('dragend');
5975
6064
  break;
5976
6065
  case event_type_1.PolygonEventType.Click:
5977
6066
  polygon.off('click');
@@ -5983,6 +6072,80 @@ var LeafletPolygons = /** @class */ (function () {
5983
6072
  var group = new this.leaflet.FeatureGroup(polygons);
5984
6073
  return group.getBounds();
5985
6074
  };
6075
+ LeafletPolygons.prototype.addPolygonEventMove = function (polygon, eventFunction) {
6076
+ polygon.on('editable:vertex:dragstart', function (eventStart) {
6077
+ var lastPosition = new event_return_1.default([eventStart.vertex.latlng.lat, eventStart.vertex.latlng.lng]);
6078
+ polygon.on('editable:vertex:dragend', function (eventEnd) {
6079
+ var newPosition = new event_return_1.default([eventEnd.vertex.latlng.lat, eventEnd.vertex.latlng.lng]);
6080
+ var path = polygon.getLatLngs().map(function (x) {
6081
+ if (Array.isArray(x[0])) {
6082
+ return x.map(function (y) { return y.map(function (z) { return new event_return_1.default([z.lat, z.lng]); }); });
6083
+ }
6084
+ else {
6085
+ return [x.map(function (y) { return new event_return_1.default([y.lat, y.lng]); })];
6086
+ }
6087
+ });
6088
+ eventFunction(newPosition, lastPosition, eventEnd.target.object, eventEnd.vertex.getIndex(), path[0]);
6089
+ polygon.off('editable:vertex:dragend');
6090
+ });
6091
+ });
6092
+ };
6093
+ LeafletPolygons.prototype.addPolygonEventInsertAt = function (polygon, eventFunction) {
6094
+ polygon.on('editable:vertex:new', function (eventNew) {
6095
+ var latlngs = eventNew.vertex.latlngs;
6096
+ var previous = latlngs[latlngs.findIndex(function (x) { return x === eventNew.vertex.latlng; }) - 1];
6097
+ if (previous) {
6098
+ var previousPoint_1 = new event_return_1.default([previous.lat, previous.lng]);
6099
+ polygon.on('editable:vertex:dragend', function (event) {
6100
+ var newPoint = new event_return_1.default([event.vertex.latlng.lat, event.vertex.latlng.lng]);
6101
+ var path = polygon.getLatLngs().map(function (x) {
6102
+ if (Array.isArray(x[0])) {
6103
+ return x.map(function (y) { return y.map(function (z) { return new event_return_1.default([z.lat, z.lng]); }); });
6104
+ }
6105
+ else {
6106
+ return [x.map(function (y) { return new event_return_1.default([y.lat, y.lng]); })];
6107
+ }
6108
+ });
6109
+ eventFunction(newPoint, previousPoint_1, event.target.object, event.vertex.getIndex(), path[0]);
6110
+ polygon.off('editable:vertex:dragend');
6111
+ });
6112
+ }
6113
+ });
6114
+ };
6115
+ LeafletPolygons.prototype.addPolygonEventRemoveAt = function (polygon, eventFunction) {
6116
+ polygon.on('editable:vertex:deleted', function (event) {
6117
+ var param = new event_return_1.default([event.vertex.latlng.lat, event.vertex.latlng.lng]);
6118
+ var path = polygon.getLatLngs().map(function (x) {
6119
+ if (Array.isArray(x[0])) {
6120
+ return x.map(function (y) { return y.map(function (z) { return new event_return_1.default([z.lat, z.lng]); }); });
6121
+ }
6122
+ else {
6123
+ return [x.map(function (y) { return new event_return_1.default([y.lat, y.lng]); })];
6124
+ }
6125
+ });
6126
+ eventFunction(param, path[0], event.target.object);
6127
+ });
6128
+ };
6129
+ LeafletPolygons.prototype.addPolygonEventDragPolygon = function (polygon, eventFunction) {
6130
+ polygon.on('dragend', function (event) {
6131
+ var path = polygon.getLatLngs().map(function (x) {
6132
+ if (Array.isArray(x[0])) {
6133
+ return x.map(function (y) { return y.map(function (z) { return new event_return_1.default([z.lat, z.lng]); }); });
6134
+ }
6135
+ else {
6136
+ return [x.map(function (y) { return new event_return_1.default([y.lat, y.lng]); })];
6137
+ }
6138
+ });
6139
+ eventFunction(path[0], event.target.object);
6140
+ });
6141
+ };
6142
+ LeafletPolygons.prototype.addPolygonEventClick = function (polygon, eventFunction, self) {
6143
+ polygon.on('click', function (event) {
6144
+ self.leaflet.DomEvent.stopPropagation(event);
6145
+ var param = new event_return_1.default([event.latlng.lat, event.latlng.lng]);
6146
+ eventFunction(param, event.target.object);
6147
+ });
6148
+ };
5986
6149
  return LeafletPolygons;
5987
6150
  }());
5988
6151
  exports.default = LeafletPolygons;
@@ -6044,6 +6207,11 @@ var LeafletPolylines = /** @class */ (function () {
6044
6207
  var param = new event_return_1.default([event.latlng.lat, event.latlng.lng]);
6045
6208
  eventClick(param, event.target.object);
6046
6209
  });
6210
+ polyline.on('editable:vertex:rawclick', function (event) {
6211
+ event.cancel();
6212
+ var param = new event_return_1.default([event.latlng.lat, event.latlng.lng]);
6213
+ eventClick(param, event.target.object);
6214
+ });
6047
6215
  }
6048
6216
  if (options.style && options.style === polyline_type_1.PolylineType.Arrow) {
6049
6217
  var pathOptions = { fillOpacity: 1, weight: 0, color: polyline.options.color };
@@ -6200,7 +6368,7 @@ var LeafletPolylines = /** @class */ (function () {
6200
6368
  var _this = this;
6201
6369
  polylines.forEach(function (polyline) {
6202
6370
  switch (eventType) {
6203
- case event_type_1.PolylineEventType.Move:
6371
+ case event_type_1.PolylineEventType.SetAt:
6204
6372
  _this.addPolylineEventMove(polyline, eventFunction);
6205
6373
  break;
6206
6374
  case event_type_1.PolylineEventType.InsertAt:
@@ -6209,6 +6377,9 @@ var LeafletPolylines = /** @class */ (function () {
6209
6377
  case event_type_1.PolylineEventType.RemoveAt:
6210
6378
  _this.addPolylineEventRemoveAt(polyline, eventFunction);
6211
6379
  break;
6380
+ case event_type_1.PolylineEventType.DragPolyline:
6381
+ _this.addPolylineEventDragPolyline(polyline, eventFunction);
6382
+ break;
6212
6383
  default:
6213
6384
  break;
6214
6385
  }
@@ -6217,16 +6388,18 @@ var LeafletPolylines = /** @class */ (function () {
6217
6388
  LeafletPolylines.prototype.removePolylineEvent = function (polylines, event) {
6218
6389
  polylines.forEach(function (polyline) {
6219
6390
  switch (event) {
6220
- case event_type_1.PolylineEventType.Move:
6221
- polyline.off('editable:vertex:dragend');
6391
+ case event_type_1.PolylineEventType.SetAt:
6392
+ polyline.off('editable:vertex:dragstart');
6222
6393
  break;
6223
6394
  case event_type_1.PolylineEventType.InsertAt:
6224
6395
  polyline.off('editable:vertex:new');
6225
- polyline.off('editable:vertex:dragend');
6226
6396
  break;
6227
6397
  case event_type_1.PolylineEventType.RemoveAt:
6228
6398
  polyline.off('editable:vertex:deleted');
6229
6399
  break;
6400
+ case event_type_1.PolylineEventType.DragPolyline:
6401
+ polyline.off('dragend');
6402
+ break;
6230
6403
  default:
6231
6404
  break;
6232
6405
  }
@@ -6495,7 +6668,7 @@ var LeafletPolylines = /** @class */ (function () {
6495
6668
  self.setArrowSelectedPath();
6496
6669
  }
6497
6670
  var newPosition = new event_return_1.default([eventEnd.vertex.latlng.lat, eventEnd.vertex.latlng.lng]);
6498
- eventFunction(newPosition, lastPosition, eventEnd.target.object, eventEnd.vertex.getIndex());
6671
+ eventFunction(newPosition, lastPosition, eventEnd.target.object, eventEnd.vertex.getIndex(), polyline.getLatLngs().map(function (x) { return new event_return_1.default([x.lat, x.lng]); }));
6499
6672
  polyline.off('editable:vertex:dragend');
6500
6673
  });
6501
6674
  });
@@ -6512,7 +6685,7 @@ var LeafletPolylines = /** @class */ (function () {
6512
6685
  self.setArrowSelectedPath();
6513
6686
  }
6514
6687
  var newPoint = new event_return_1.default([event.vertex.latlng.lat, event.vertex.latlng.lng]);
6515
- eventFunction(newPoint, previousPoint, event.target.object, event.vertex.getIndex());
6688
+ eventFunction(newPoint, previousPoint, event.target.object, event.vertex.getIndex(), polyline.getLatLngs().map(function (x) { return new event_return_1.default([x.lat, x.lng]); }));
6516
6689
  polyline.off('editable:vertex:dragend');
6517
6690
  });
6518
6691
  });
@@ -6520,7 +6693,13 @@ var LeafletPolylines = /** @class */ (function () {
6520
6693
  LeafletPolylines.prototype.addPolylineEventRemoveAt = function (polyline, eventFunction) {
6521
6694
  polyline.on('editable:vertex:deleted', function (event) {
6522
6695
  var param = new event_return_1.default([event.vertex.latlng.lat, event.vertex.latlng.lng]);
6523
- eventFunction(param);
6696
+ eventFunction(param, event.target.object, polyline.getLatLngs().map(function (x) { return new event_return_1.default([x.lat, x.lng]); }));
6697
+ });
6698
+ };
6699
+ LeafletPolylines.prototype.addPolylineEventDragPolyline = function (polyline, eventFunction) {
6700
+ polyline.on('dragend', function (event) {
6701
+ var param = event.target.getLatLngs().map(function (x) { return new event_return_1.default([x.lat, x.lng]); });
6702
+ eventFunction(param, event.target.object);
6524
6703
  });
6525
6704
  };
6526
6705
  return LeafletPolylines;