@artstesh/maps 4.1.24 → 4.1.25

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.
@@ -0,0 +1,9 @@
1
+ import { PostboyGenericMessage } from '@artstesh/postboy';
2
+ export class PolygonSelfIntersectionExecutor extends PostboyGenericMessage {
3
+ constructor(polygon) {
4
+ super();
5
+ this.polygon = polygon;
6
+ }
7
+ }
8
+ PolygonSelfIntersectionExecutor.ID = 'a4ef116d-fe40-4e92-9d4a-653f8b398c62';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbi1zZWxmLWludGVyc2VjdGlvbi5leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21lc3NhZ2VzL2V4ZWN1dG9ycy9wb2x5Z29uLXNlbGYtaW50ZXJzZWN0aW9uLmV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxxQkFBcUI7SUFHeEUsWUFBbUIsT0FBcUI7UUFDdEMsS0FBSyxFQUFFLENBQUM7UUFEUyxZQUFPLEdBQVAsT0FBTyxDQUFjO0lBRXhDLENBQUM7O0FBSmUsa0NBQUUsR0FBRyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvc3Rib3lHZW5lcmljTWVzc2FnZSB9IGZyb20gJ0BhcnRzdGVzaC9wb3N0Ym95JztcbmltcG9ydCB7IFBvbHlnb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBQb2x5Z29uU2VsZkludGVyc2VjdGlvbkV4ZWN1dG9yIGV4dGVuZHMgUG9zdGJveUdlbmVyaWNNZXNzYWdlIHtcbiAgc3RhdGljIHJlYWRvbmx5IElEID0gJ2E0ZWYxMTZkLWZlNDAtNGU5Mi05ZDRhLTY1M2Y4YjM5OGM2Mic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBvbHlnb246IFBvbHlnb25Nb2RlbCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -17,7 +17,8 @@ export * from './executors/filter-features-in-point.executor';
17
17
  export * from './executors/filter-features-in-area.executor';
18
18
  export * from './executors/calculate-area.executor';
19
19
  export * from './executors/get-map-position.executor';
20
+ export * from './executors/polygon-self-intersection.executor';
20
21
  export * from './queries/get-features-in-area.query';
21
22
  export * from './queries/get-features-in-point.query';
22
23
  export * from './commands/fit-to-features.command';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tZXNzYWdlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9hZGQtY29udHJvbC5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvY2xvc2UtdG9vbHRpcC5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvc3RhcnQtZHJhd2luZy5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvY2FuY2VsLWRyYXdpbmcuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2RyYXctc2VsZWN0aW9uLWFyZWEuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL21vZGlmeS1mZWF0dXJlLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9jYW5jZWwtZmVhdHVyZS1tb2RpZmljYXRpb24uY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL3JlbW92ZS1jb250cm9sLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9zZXQtbWFwLWNlbnRlci5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvZml0LXRvLXBvbHlnb25zLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMvbWFwLXJlbmRlcmVkLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzL21hcC1jbGljay5ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtbW92ZS1lbmQuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMvbWFwLXBvaW50ZXItbW92ZS5ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtZmVhdHVyZS1ob3ZlcmVkLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1wb2ludC5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWN1dG9ycy9maWx0ZXItZmVhdHVyZXMtaW4tYXJlYS5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWN1dG9ycy9jYWxjdWxhdGUtYXJlYS5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWN1dG9ycy9nZXQtbWFwLXBvc2l0aW9uLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcmllcy9nZXQtZmVhdHVyZXMtaW4tYXJlYS5xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMvZ2V0LWZlYXR1cmVzLWluLXBvaW50LnF1ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvZml0LXRvLWZlYXR1cmVzLmNvbW1hbmQnO1xuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tZXNzYWdlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2FkZC1jb250cm9sLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9jbG9zZS10b29sdGlwLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9zdGFydC1kcmF3aW5nLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9jYW5jZWwtZHJhd2luZy5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvZHJhdy1zZWxlY3Rpb24tYXJlYS5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvbW9kaWZ5LWZlYXR1cmUuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2NhbmNlbC1mZWF0dXJlLW1vZGlmaWNhdGlvbi5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvcmVtb3ZlLWNvbnRyb2wuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL3NldC1tYXAtY2VudGVyLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9maXQtdG8tcG9seWdvbnMuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtcmVuZGVyZWQuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMvbWFwLWNsaWNrLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzL21hcC1tb3ZlLWVuZC5ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtcG9pbnRlci1tb3ZlLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzL21hcC1mZWF0dXJlLWhvdmVyZWQuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9leGVjdXRvcnMvZmlsdGVyLWZlYXR1cmVzLWluLXBvaW50LmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1hcmVhLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2NhbGN1bGF0ZS1hcmVhLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2dldC1tYXAtcG9zaXRpb24uZXhlY3V0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9leGVjdXRvcnMvcG9seWdvbi1zZWxmLWludGVyc2VjdGlvbi5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMvZ2V0LWZlYXR1cmVzLWluLWFyZWEucXVlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVzL2dldC1mZWF0dXJlcy1pbi1wb2ludC5xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2ZpdC10by1mZWF0dXJlcy5jb21tYW5kJztcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Point } from 'ol/geom';
1
+ import { LineString, Point } from 'ol/geom';
2
2
  import * as Sphere from 'ol/sphere';
3
3
  export class FeatureService {
4
4
  constructor() { }
@@ -13,6 +13,20 @@ export class FeatureService {
13
13
  return 0;
14
14
  return Sphere.getArea(g, { projection: 'EPSG:4326' });
15
15
  }
16
+ static polygonSelfIntersects(feature) {
17
+ if (feature.getGeometry().getType() !== 'Polygon')
18
+ return false;
19
+ let intersections = 0;
20
+ const segments = FeatureService.getSegmentsFromCoordinates(feature.getGeometry());
21
+ for (let i = 0; i < segments.length; i++) {
22
+ for (let z = i + 1; z < segments.length; z++) {
23
+ if (!intersections && this.segmentIntersection(segments[i].getCoordinates(), segments[z].getCoordinates())) {
24
+ intersections++;
25
+ }
26
+ }
27
+ }
28
+ return intersections !== 0;
29
+ }
16
30
  static booleanIntersects(g1, g2) {
17
31
  if (g2.getType() === 'Point')
18
32
  return g1.intersectsCoordinate(g2.getCoordinates());
@@ -22,5 +36,42 @@ export class FeatureService {
22
36
  return g1.intersectsCoordinate(g2.getInteriorPoint().getCoordinates());
23
37
  return false;
24
38
  }
39
+ static getSegmentsFromCoordinates(geom) {
40
+ if (!geom)
41
+ return [];
42
+ const coords = geom.getCoordinates();
43
+ const line = new LineString(coords[0]);
44
+ const segments = [];
45
+ line.forEachSegment((s1, s2) => {
46
+ const l = new LineString([s1, s2]);
47
+ l.scale(0.999); // bug of the OL, as I see
48
+ segments.push(l);
49
+ });
50
+ return segments;
51
+ }
52
+ static segmentIntersection(s1, s2) {
53
+ const a = s1[0], b = s1[1], c = s2[0], d = s2[1];
54
+ const o1 = this.orientation(a, b, c);
55
+ const o2 = this.orientation(a, b, d);
56
+ const o3 = this.orientation(c, d, a);
57
+ const o4 = this.orientation(c, d, b);
58
+ return ((o1 != o2 && o3 != o4) ||
59
+ (o1 == 0 && this.onSegment(a, d, b)) ||
60
+ (o2 == 0 && this.onSegment(a, d, b)) ||
61
+ (o3 == 0 && this.onSegment(d, a, d)) ||
62
+ (o4 == 0 && this.onSegment(d, b, d)));
63
+ }
64
+ static orientation(p, q, r) {
65
+ const val = (q[1] - p[1]) * (r[0] - q[0]) - (q[0] - p[0]) * (r[1] - q[1]);
66
+ if (val == 0)
67
+ return 0; // collinear
68
+ return val > 0 ? 1 : 2; // clock or counterclock wise
69
+ }
70
+ static onSegment(p, q, r) {
71
+ return (q[0] <= (p[0] > r[0] ? p[0] : r[0]) &&
72
+ q[0] >= (p[0] < r[0] ? p[0] : r[0]) &&
73
+ q[1] <= (p[1] > r[1] ? p[1] : r[1]) &&
74
+ q[1] >= (p[1] < r[1] ? p[1] : r[1]));
75
+ }
25
76
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvZmVhdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2xELE9BQU8sS0FBSyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBSXBDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLGdCQUFlLENBQUM7SUFFVCxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBbUM7UUFDcEUsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQW9DO1FBQ3RFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNqQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRyxFQUFFLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUN0RixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBdUI7UUFDakQsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFZLEVBQUUsRUFBWTtRQUN6RCxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUUsRUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDN0YsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFFLEVBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFNBQVM7WUFBRSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBRSxFQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2lyY2xlLCBHZW9tZXRyeSwgUG9pbnQgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBQb2x5Z29uIGZyb20gJ29sL2dlb20vUG9seWdvbic7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnb2wnO1xuaW1wb3J0ICogYXMgU3BoZXJlIGZyb20gJ29sL3NwaGVyZSc7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luQXJlYUV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1hcmVhLmV4ZWN1dG9yJztcbmltcG9ydCB7IEZpbHRlckZlYXR1cmVzSW5Qb2ludEV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuXG5leHBvcnQgY2xhc3MgRmVhdHVyZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJGZWF0dXJlc0luQXJlYShxdWVyeTogRmlsdGVyRmVhdHVyZXNJbkFyZWFFeGVjdXRvcik6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIHJldHVybiBxdWVyeS5mZWF0dXJlcy5maWx0ZXIoKGYpID0+IEZlYXR1cmVTZXJ2aWNlLmJvb2xlYW5JbnRlcnNlY3RzKHF1ZXJ5LmFyZWEsIGYuZ2V0R2VvbWV0cnkoKSEpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRmVhdHVyZXNJblBvaW50KHF1ZXJ5OiBGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvcik6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIHJldHVybiBxdWVyeS5mZWF0dXJlcy5maWx0ZXIoKGYpID0+XG4gICAgICBGZWF0dXJlU2VydmljZS5ib29sZWFuSW50ZXJzZWN0cyhmLmdldEdlb21ldHJ5KCkhLCBuZXcgUG9pbnQoW3F1ZXJ5LmxuZywgcXVlcnkubGF0XSkpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNhbGN1bGF0ZUFyZWEoZzogR2VvbWV0cnkgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICAgIGlmICghZykgcmV0dXJuIDA7XG4gICAgcmV0dXJuIFNwaGVyZS5nZXRBcmVhKGcsIHsgcHJvamVjdGlvbjogJ0VQU0c6NDMyNicgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBib29sZWFuSW50ZXJzZWN0cyhnMTogR2VvbWV0cnksIGcyOiBHZW9tZXRyeSk6IGJvb2xlYW4ge1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2ludCcpIHJldHVybiBnMS5pbnRlcnNlY3RzQ29vcmRpbmF0ZSgoZzIgYXMgUG9pbnQpLmdldENvb3JkaW5hdGVzKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdDaXJjbGUnKSByZXR1cm4gZzEuaW50ZXJzZWN0c0Nvb3JkaW5hdGUoKGcyIGFzIENpcmNsZSkuZ2V0Q2VudGVyKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2x5Z29uJykgcmV0dXJuIGcxLmludGVyc2VjdHNDb29yZGluYXRlKChnMiBhcyBQb2x5Z29uKS5nZXRJbnRlcmlvclBvaW50KCkuZ2V0Q29vcmRpbmF0ZXMoKSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvZmVhdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0MsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdsRixPQUFPLEtBQUssTUFBTSxNQUFNLFdBQVcsQ0FBQztBQUlwQyxNQUFNLE9BQU8sY0FBYztJQUN6QixnQkFBZSxDQUFDO0lBRVQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQW1DO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFvQztRQUN0RSxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDakMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdEYsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQXVCO1FBQ2pELElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDakIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENB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QUMsQ0FBQztRQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FDTCxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFXLEVBQUUsQ0FBVyxFQUFFLENBQVc7UUFDOUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxHQUFHLElBQUksQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUNwQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO0lBQ3ZELENBQUM7SUFFTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQVcsRUFBRSxDQUFXLEVBQUUsQ0FBVztRQUM1RCxPQUFPLENBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENpcmNsZSwgR2VvbWV0cnksIEdlb21ldHJ5Q29sbGVjdGlvbiwgTGluZVN0cmluZywgUG9pbnQgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBQb2x5Z29uLCB7IGZyb21DaXJjbGUgfSBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ29sJztcbmltcG9ydCAqIGFzIFNwaGVyZSBmcm9tICdvbC9zcGhlcmUnO1xuaW1wb3J0IHsgRmlsdGVyRmVhdHVyZXNJbkFyZWFFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9maWx0ZXItZmVhdHVyZXMtaW4tYXJlYS5leGVjdXRvcic7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzJztcblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRmVhdHVyZXNJbkFyZWEocXVlcnk6IEZpbHRlckZlYXR1cmVzSW5BcmVhRXhlY3V0b3IpOiBGZWF0dXJlPEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gcXVlcnkuZmVhdHVyZXMuZmlsdGVyKChmKSA9PiBGZWF0dXJlU2VydmljZS5ib29sZWFuSW50ZXJzZWN0cyhxdWVyeS5hcmVhLCBmLmdldEdlb21ldHJ5KCkhKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZpbHRlckZlYXR1cmVzSW5Qb2ludChxdWVyeTogRmlsdGVyRmVhdHVyZXNJblBvaW50RXhlY3V0b3IpOiBGZWF0dXJlPEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gcXVlcnkuZmVhdHVyZXMuZmlsdGVyKChmKSA9PlxuICAgICAgRmVhdHVyZVNlcnZpY2UuYm9vbGVhbkludGVyc2VjdHMoZi5nZXRHZW9tZXRyeSgpISwgbmV3IFBvaW50KFtxdWVyeS5sbmcsIHF1ZXJ5LmxhdF0pKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjYWxjdWxhdGVBcmVhKGc6IEdlb21ldHJ5IHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICBpZiAoIWcpIHJldHVybiAwO1xuICAgIHJldHVybiBTcGhlcmUuZ2V0QXJlYShnLCB7IHByb2plY3Rpb246ICdFUFNHOjQzMjYnIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwb2x5Z29uU2VsZkludGVyc2VjdHMoZmVhdHVyZTogRmVhdHVyZTxHZW9tZXRyeT4pOiBib29sZWFuIHtcbiAgICBpZiAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpIS5nZXRUeXBlKCkgIT09ICdQb2x5Z29uJykgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gMDtcbiAgICBjb25zdCBzZWdtZW50cyA9IEZlYXR1cmVTZXJ2aWNlLmdldFNlZ21lbnRzRnJvbUNvb3JkaW5hdGVzKGZlYXR1cmUuZ2V0R2VvbWV0cnkoKSEpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAobGV0IHogPSBpICsgMTsgeiA8IHNlZ21lbnRzLmxlbmd0aDsgeisrKSB7XG4gICAgICAgIGlmICghaW50ZXJzZWN0aW9ucyAmJiB0aGlzLnNlZ21lbnRJbnRlcnNlY3Rpb24oc2VnbWVudHNbaV0uZ2V0Q29vcmRpbmF0ZXMoKSwgc2VnbWVudHNbel0uZ2V0Q29vcmRpbmF0ZXMoKSkpIHtcbiAgICAgICAgICBpbnRlcnNlY3Rpb25zKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnMgIT09IDA7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBib29sZWFuSW50ZXJzZWN0cyhnMTogR2VvbWV0cnksIGcyOiBHZW9tZXRyeSk6IGJvb2xlYW4ge1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2ludCcpIHJldHVybiBnMS5pbnRlcnNlY3RzQ29vcmRpbmF0ZSgoZzIgYXMgUG9pbnQpLmdldENvb3JkaW5hdGVzKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdDaXJjbGUnKSByZXR1cm4gZzEuaW50ZXJzZWN0c0Nvb3JkaW5hdGUoKGcyIGFzIENpcmNsZSkuZ2V0Q2VudGVyKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2x5Z29uJykgcmV0dXJuIGcxLmludGVyc2VjdHNDb29yZGluYXRlKChnMiBhcyBQb2x5Z29uKS5nZXRJbnRlcmlvclBvaW50KCkuZ2V0Q29vcmRpbmF0ZXMoKSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0U2VnbWVudHNGcm9tQ29vcmRpbmF0ZXMoZ2VvbTogR2VvbWV0cnkpOiBMaW5lU3RyaW5nW10ge1xuICAgIGlmICghZ2VvbSkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGNvb3JkcyA9IChnZW9tIGFzIGFueSkuZ2V0Q29vcmRpbmF0ZXMoKTtcbiAgICBjb25zdCBsaW5lID0gbmV3IExpbmVTdHJpbmcoY29vcmRzWzBdKTtcbiAgICBjb25zdCBzZWdtZW50czogTGluZVN0cmluZ1tdID0gW107XG4gICAgbGluZS5mb3JFYWNoU2VnbWVudCgoczEsIHMyKSA9PiB7XG4gICAgICBjb25zdCBsID0gbmV3IExpbmVTdHJpbmcoW3MxLCBzMl0pO1xuICAgICAgbC5zY2FsZSgwLjk5OSk7IC8vIGJ1ZyBvZiB0aGUgT0wsIGFzIEkgc2VlXG4gICAgICBzZWdtZW50cy5wdXNoKGwpO1xuICAgIH0pO1xuICAgIHJldHVybiBzZWdtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNlZ21lbnRJbnRlcnNlY3Rpb24oczE6IG51bWJlcltdW10sIHMyOiBudW1iZXJbXVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYSA9IHMxWzBdLFxuICAgICAgYiA9IHMxWzFdLFxuICAgICAgYyA9IHMyWzBdLFxuICAgICAgZCA9IHMyWzFdO1xuICAgIGNvbnN0IG8xID0gdGhpcy5vcmllbnRhdGlvbihhLCBiLCBjKTtcbiAgICBjb25zdCBvMiA9IHRoaXMub3JpZW50YXRpb24oYSwgYiwgZCk7XG4gICAgY29uc3QgbzMgPSB0aGlzLm9yaWVudGF0aW9uKGMsIGQsIGEpO1xuICAgIGNvbnN0IG80ID0gdGhpcy5vcmllbnRhdGlvbihjLCBkLCBiKTtcbiAgICByZXR1cm4gKFxuICAgICAgKG8xICE9IG8yICYmIG8zICE9IG80KSB8fFxuICAgICAgKG8xID09IDAgJiYgdGhpcy5vblNlZ21lbnQoYSwgZCwgYikpIHx8XG4gICAgICAobzIgPT0gMCAmJiB0aGlzLm9uU2VnbWVudChhLCBkLCBiKSkgfHxcbiAgICAgIChvMyA9PSAwICYmIHRoaXMub25TZWdtZW50KGQsIGEsIGQpKSB8fFxuICAgICAgKG80ID09IDAgJiYgdGhpcy5vblNlZ21lbnQoZCwgYiwgZCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9yaWVudGF0aW9uKHA6IG51bWJlcltdLCBxOiBudW1iZXJbXSwgcjogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbCA9IChxWzFdIC0gcFsxXSkgKiAoclswXSAtIHFbMF0pIC0gKHFbMF0gLSBwWzBdKSAqIChyWzFdIC0gcVsxXSk7XG4gICAgaWYgKHZhbCA9PSAwKSByZXR1cm4gMDsgLy8gY29sbGluZWFyXG4gICAgcmV0dXJuIHZhbCA+IDAgPyAxIDogMjsgLy8gY2xvY2sgb3IgY291bnRlcmNsb2NrIHdpc2VcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9uU2VnbWVudChwOiBudW1iZXJbXSwgcTogbnVtYmVyW10sIHI6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHFbMF0gPD0gKHBbMF0gPiByWzBdID8gcFswXSA6IHJbMF0pICYmXG4gICAgICBxWzBdID49IChwWzBdIDwgclswXSA/IHBbMF0gOiByWzBdKSAmJlxuICAgICAgcVsxXSA8PSAocFsxXSA+IHJbMV0gPyBwWzFdIDogclsxXSkgJiZcbiAgICAgIHFbMV0gPj0gKHBbMV0gPCByWzFdID8gcFsxXSA6IHJbMV0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { FitToPolygonsCommand, GetFeaturesInPointQuery, MapPointerMoveEvent, MapRenderedEvent } from '../messages';
2
+ import { FitToPolygonsCommand, GetFeaturesInPointQuery, MapPointerMoveEvent, MapRenderedEvent, PolygonSelfIntersectionExecutor, } from '../messages';
3
3
  import { AddLayerCommand } from '../messages/commands/add-layer.command';
4
4
  import { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';
5
5
  import { RemoveLayerCommand } from '../messages/commands/remove-layer.command';
@@ -80,6 +80,7 @@ export class MessageRegistratorService extends PostboyAbstractRegistrator {
80
80
  this.recordExecutor(FilterFeaturesInAreaExecutor, (e) => FeatureService.filterFeaturesInArea(e));
81
81
  this.recordExecutor(FilterFeaturesInPointExecutor, (e) => FeatureService.filterFeaturesInPoint(e));
82
82
  this.recordExecutor(CalculateAreaExecutor, (e) => FeatureService.calculateArea(e.polygon?.feature?.getGeometry()));
83
+ this.recordExecutor(PolygonSelfIntersectionExecutor, (e) => FeatureService.polygonSelfIntersects(e.polygon.feature));
83
84
  this.recordExecutor(GenerateDrawExecutor, (e) => DrawingGenerationService.getDraw(e));
84
85
  this.recordExecutor(GenerateZoomControlExecutor, (e) => ZoomControlFactory.build(e.settings));
85
86
  this.recordExecutor(GetMapPositionExecutor, () => this.state.getMapPosition());
@@ -90,4 +91,4 @@ MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
90
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
91
92
  type: Injectable
92
93
  }], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.MapManagementService }, { type: i3.MapStateService }, { type: i4.MapFeatureService }, { type: i5.MapClickService }, { type: i6.DrawingService }, { type: i7.FeatureModificationService }, { type: i8.ControlsService }]; } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvbWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFF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Y0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7O3VIQW5EVSx5QkFBeUI7MkhBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuL21hcC1wb3N0Ym95LnNlcnZpY2UnO1xuaW1wb3J0IHsgRml0VG9Qb2x5Z29uc0NvbW1hbmQsIEdldEZlYXR1cmVzSW5Qb2ludFF1ZXJ5LCBNYXBQb2ludGVyTW92ZUV2ZW50LCBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgQWRkTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgUmVtb3ZlTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgeyBQb3N0Ym95QWJzdHJhY3RSZWdpc3RyYXRvciB9IGZyb20gJ0BhcnRzdGVzaC9wb3N0Ym95JztcbmltcG9ydCB7IE1hcE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFN0YXRlU2VydmljZSB9IGZyb20gJy4vbWFwLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtY2xpY2suc2VydmljZSc7XG5pbXBvcnQgeyBNYXBDbGlja0V2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL21hcC1jbGljay5ldmVudCc7XG5pbXBvcnQgeyBDbG9zZVRvb2x0aXBDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvY2xvc2UtdG9vbHRpcC5jb21tYW5kJztcbmltcG9ydCB7IE1hcEZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtZmVhdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpdFRvRmVhdHVyZXNDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvZml0LXRvLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgTWFwTW92ZUVuZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL21hcC1tb3ZlLWVuZC5ldmVudCc7XG5pbXBvcnQgeyBDYW5jZWxEcmF3aW5nQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2NhbmNlbC1kcmF3aW5nLmNvbW1hbmQnO1xuaW1wb3J0IHsgU3RhcnREcmF3aW5nQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3N0YXJ0LWRyYXdpbmcuY29tbWFuZCc7XG5pbXBvcnQgeyBEcmF3aW5nU2VydmljZSB9IGZyb20gJy4vZHJhd2luZy9kcmF3aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2V0TGF5ZXJRdWVyeSB9IGZyb20gJy4uL21lc3NhZ2VzL3F1ZXJpZXMvZ2V0LWxheWVyLnF1ZXJ5JztcbmltcG9ydCB7IERyYXdpbmdGaW5pc2hlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL2RyYXdpbmctZmluaXNoZWQuZXZlbnQnO1xuaW1wb3J0IHsgRHJhd2luZ0dlbmVyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9kcmF3aW5nL2RyYXdpbmctZ2VuZXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi9mZWF0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2V0RmVhdHVyZXNJbkFyZWFRdWVyeSB9IGZyb20gJy4uL21lc3NhZ2VzL3F1ZXJpZXMvZ2V0LWZlYXR1cmVzLWluLWFyZWEucXVlcnknO1xuaW1wb3J0IHsgRHJhd1NlbGVjdGlvbkFyZWFDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvZHJhdy1zZWxlY3Rpb24tYXJlYS5jb21tYW5kJztcbmltcG9ydCB7IEZpbHRlckZlYXR1cmVzSW5BcmVhRXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZmlsdGVyLWZlYXR1cmVzLWluLWFyZWEuZXhlY3V0b3InO1xuaW1wb3J0IHsgR2VuZXJhdGVEcmF3RXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZ2VuZXJhdGUtZHJhdy5leGVjdXRvcic7XG5pbXBvcnQgeyBGZWF0dXJlTW9kaWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vZHJhd2luZy9mZWF0dXJlLW1vZGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENhbmNlbEZlYXR1cmVNb2RpZmljYXRpb25Db21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvY2FuY2VsLWZlYXR1cmUtbW9kaWZpY2F0aW9uLmNvbW1hbmQnO1xuaW1wb3J0IHsgTW9kaWZ5RmVhdHVyZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9tb2RpZnktZmVhdHVyZS5jb21tYW5kJztcbmltcG9ydCB7IEdlbmVyYXRlWm9vbUNvbnRyb2xFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9nZW5lcmF0ZS16b29tLWNvbnRyb2wuZXhlY3V0b3InO1xuaW1wb3J0IHsgWm9vbUNvbnRyb2xGYWN0b3J5IH0gZnJvbSAnLi4vbWFwLXBsYXRlL2NvbnRyb2xzL21hcC1jb250cm9sLXpvb20vem9vbS1jb250cm9sLmZhY3RvcnknO1xuaW1wb3J0IHsgUmVtb3ZlQ29udHJvbENvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9yZW1vdmUtY29udHJvbC5jb21tYW5kJztcbmltcG9ydCB7IEFkZENvbnRyb2xDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLWNvbnRyb2wuY29tbWFuZCc7XG5pbXBvcnQgeyBDb250cm9sc1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyb2xzL2NvbnRyb2xzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2V0TWFwQ2VudGVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3NldC1tYXAtY2VudGVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQXJlYUV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2NhbGN1bGF0ZS1hcmVhLmV4ZWN1dG9yJztcbmltcG9ydCB7IEdldE1hcFBvc2l0aW9uRXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZ2V0LW1hcC1wb3NpdGlvbi5leGVjdXRvcic7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9maWx0ZXItZmVhdHVyZXMtaW4tcG9pbnQuZXhlY3V0b3InO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWFwRmVhdHVyZUhvdmVyZWRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9tYXAtZmVhdHVyZS1ob3ZlcmVkLmV2ZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VSZWdpc3RyYXRvclNlcnZpY2UgZXh0ZW5kcyBQb3N0Ym95QWJzdHJhY3RSZWdpc3RyYXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlcnZpY2U6IE1hcFBvc3Rib3lTZXJ2aWNlLFxuICAgIG1hbmFnZW1lbnQ6IE1hcE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RhdGU6IE1hcFN0YXRlU2VydmljZSxcbiAgICBtYXBGZWF0dXJlOiBNYXBGZWF0dXJlU2VydmljZSxcbiAgICBpbnRlcmFjdGlvbjogTWFwQ2xpY2tTZXJ2aWNlLFxuICAgIGRyYXdpbmc6IERyYXdpbmdTZXJ2aWNlLFxuICAgIGZlYXR1cmVNb2RpZmljYXRpb246IEZlYXR1cmVNb2RpZmljYXRpb25TZXJ2aWNlLFxuICAgIGNvbnRyb2xzOiBDb250cm9sc1NlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKHNlcnZpY2UpO1xuICAgIHRoaXMucmVnaXN0ZXJTZXJ2aWNlcyhbbWFuYWdlbWVudCwgc3RhdGUsIGludGVyYWN0aW9uLCBtYXBGZWF0dXJlLCBkcmF3aW5nLCBmZWF0dXJlTW9kaWZpY2F0aW9uLCBjb250cm9sc10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF91cCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29yZFJlcGxheShNYXBSZW5kZXJlZEV2ZW50KTtcbiAgICB0aGlzLnJlY29yZFJlcGxheShQbGFjZUxheWVyRmVhdHVyZXNDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFJlcGxheShSZW1vdmVDb250cm9sQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoQWRkQ29udHJvbENvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkUmVwbGF5KFNldE1hcENlbnRlckNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChBZGRMYXllckNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChSZW1vdmVMYXllckNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChBZGRUaWxlQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KFJlbW92ZVRpbGVDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoTWFwQ2xpY2tFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KENsb3NlVG9vbHRpcENvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChGaXRUb0ZlYXR1cmVzQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEZpdFRvUG9seWdvbnNDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoTWFwTW92ZUVuZEV2ZW50KTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQ2FuY2VsRHJhd2luZ0NvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChTdGFydERyYXdpbmdDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoR2V0TGF5ZXJRdWVyeSk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1hcEZlYXR1cmVIb3ZlcmVkRXZlbnQpO1xuICAgIHRoaXMucmVjb3JkV2l0aFBpcGUoTWFwUG9pbnRlck1vdmVFdmVudCwgbmV3IFN1YmplY3QoKSwgKHMpID0+IHMucGlwZShkZWJvdW5jZVRpbWUoMTUwKSkpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChEcmF3aW5nRmluaXNoZWRFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEdldEZlYXR1cmVzSW5BcmVhUXVlcnkpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChEcmF3U2VsZWN0aW9uQXJlYUNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChDYW5jZWxGZWF0dXJlTW9kaWZpY2F0aW9uQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1vZGlmeUZlYXR1cmVDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoR2V0RmVhdHVyZXNJblBvaW50UXVlcnkpO1xuICAgIHRoaXMuc2V0RXhlY3V0b3JzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldEV4ZWN1dG9ycygpIHtcbiAgICB0aGlzLnJlY29yZEV4ZWN1dG9yKEZpbHRlckZlYXR1cmVzSW5BcmVhRXhlY3V0b3IsIChlKSA9PiBGZWF0dXJlU2VydmljZS5maWx0ZXJGZWF0dXJlc0luQXJlYShlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvciwgKGUpID0+IEZlYXR1cmVTZXJ2aWNlLmZpbHRlckZlYXR1cmVzSW5Qb2ludChlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihDYWxjdWxhdGVBcmVhRXhlY3V0b3IsIChlKSA9PiBGZWF0dXJlU2VydmljZS5jYWxjdWxhdGVBcmVhKGUucG9seWdvbj8uZmVhdHVyZT8uZ2V0R2VvbWV0cnkoKSkpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2VuZXJhdGVEcmF3RXhlY3V0b3IsIChlKSA9PiBEcmF3aW5nR2VuZXJhdGlvblNlcnZpY2UuZ2V0RHJhdyhlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihHZW5lcmF0ZVpvb21Db250cm9sRXhlY3V0b3IsIChlKSA9PiBab29tQ29udHJvbEZhY3RvcnkuYnVpbGQoZS5zZXR0aW5ncykpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2V0TWFwUG9zaXRpb25FeGVjdXRvciwgKCkgPT4gdGhpcy5zdGF0ZS5nZXRNYXBQb3NpdGlvbigpKTtcbiAgfVxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvbWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUNMLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQiwrQkFBK0IsR0FDaEMsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FB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QyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsY0FBYyxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDekQsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQ3hELENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQzs7dUhBdERVLHlCQUF5QjsySEFBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4vbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQge1xuICBGaXRUb1BvbHlnb25zQ29tbWFuZCxcbiAgR2V0RmVhdHVyZXNJblBvaW50UXVlcnksXG4gIE1hcFBvaW50ZXJNb3ZlRXZlbnQsXG4gIE1hcFJlbmRlcmVkRXZlbnQsXG4gIFBvbHlnb25TZWxmSW50ZXJzZWN0aW9uRXhlY3V0b3IsXG59IGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB7IEFkZExheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9wbGFjZS1sYXllci1mZWF0dXJlcy5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZUxheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IEFkZFRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgeyBSZW1vdmVUaWxlQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS10aWxlLmNvbW1hbmQnO1xuaW1wb3J0IHsgUG9zdGJveUFic3RyYWN0UmVnaXN0cmF0b3IgfSBmcm9tICdAYXJ0c3Rlc2gvcG9zdGJveSc7XG5pbXBvcnQgeyBNYXBNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4vbWFwLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL21hcC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcENsaWNrU2VydmljZSB9IGZyb20gJy4vbWFwLWNsaWNrLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQ2xpY2tFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9tYXAtY2xpY2suZXZlbnQnO1xuaW1wb3J0IHsgQ2xvc2VUb29sdGlwQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2Nsb3NlLXRvb2x0aXAuY29tbWFuZCc7XG5pbXBvcnQgeyBNYXBGZWF0dXJlU2VydmljZSB9IGZyb20gJy4vbWFwLWZlYXR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBGaXRUb0ZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2ZpdC10by1mZWF0dXJlcy5jb21tYW5kJztcbmltcG9ydCB7IE1hcE1vdmVFbmRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9tYXAtbW92ZS1lbmQuZXZlbnQnO1xuaW1wb3J0IHsgQ2FuY2VsRHJhd2luZ0NvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9jYW5jZWwtZHJhd2luZy5jb21tYW5kJztcbmltcG9ydCB7IFN0YXJ0RHJhd2luZ0NvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9zdGFydC1kcmF3aW5nLmNvbW1hbmQnO1xuaW1wb3J0IHsgRHJhd2luZ1NlcnZpY2UgfSBmcm9tICcuL2RyYXdpbmcvZHJhd2luZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdldExheWVyUXVlcnkgfSBmcm9tICcuLi9tZXNzYWdlcy9xdWVyaWVzL2dldC1sYXllci5xdWVyeSc7XG5pbXBvcnQgeyBEcmF3aW5nRmluaXNoZWRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9kcmF3aW5nLWZpbmlzaGVkLmV2ZW50JztcbmltcG9ydCB7IERyYXdpbmdHZW5lcmF0aW9uU2VydmljZSB9IGZyb20gJy4vZHJhd2luZy9kcmF3aW5nLWdlbmVyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdldEZlYXR1cmVzSW5BcmVhUXVlcnkgfSBmcm9tICcuLi9tZXNzYWdlcy9xdWVyaWVzL2dldC1mZWF0dXJlcy1pbi1hcmVhLnF1ZXJ5JztcbmltcG9ydCB7IERyYXdTZWxlY3Rpb25BcmVhQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2RyYXctc2VsZWN0aW9uLWFyZWEuY29tbWFuZCc7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luQXJlYUV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1hcmVhLmV4ZWN1dG9yJztcbmltcG9ydCB7IEdlbmVyYXRlRHJhd0V4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2dlbmVyYXRlLWRyYXcuZXhlY3V0b3InO1xuaW1wb3J0IHsgRmVhdHVyZU1vZGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2RyYXdpbmcvZmVhdHVyZS1tb2RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYW5jZWxGZWF0dXJlTW9kaWZpY2F0aW9uQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2NhbmNlbC1mZWF0dXJlLW1vZGlmaWNhdGlvbi5jb21tYW5kJztcbmltcG9ydCB7IE1vZGlmeUZlYXR1cmVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvbW9kaWZ5LWZlYXR1cmUuY29tbWFuZCc7XG5pbXBvcnQgeyBHZW5lcmF0ZVpvb21Db250cm9sRXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZ2VuZXJhdGUtem9vbS1jb250cm9sLmV4ZWN1dG9yJztcbmltcG9ydCB7IFpvb21Db250cm9sRmFjdG9yeSB9IGZyb20gJy4uL21hcC1wbGF0ZS9jb250cm9scy9tYXAtY29udHJvbC16b29tL3pvb20tY29udHJvbC5mYWN0b3J5JztcbmltcG9ydCB7IFJlbW92ZUNvbnRyb2xDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLWNvbnRyb2wuY29tbWFuZCc7XG5pbXBvcnQgeyBBZGRDb250cm9sQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1jb250cm9sLmNvbW1hbmQnO1xuaW1wb3J0IHsgQ29udHJvbHNTZXJ2aWNlIH0gZnJvbSAnLi9jb250cm9scy9jb250cm9scy5zZXJ2aWNlJztcbmltcG9ydCB7IFNldE1hcENlbnRlckNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9zZXQtbWFwLWNlbnRlci5jb21tYW5kJztcbmltcG9ydCB7IENhbGN1bGF0ZUFyZWFFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9jYWxjdWxhdGUtYXJlYS5leGVjdXRvcic7XG5pbXBvcnQgeyBHZXRNYXBQb3NpdGlvbkV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2dldC1tYXAtcG9zaXRpb24uZXhlY3V0b3InO1xuaW1wb3J0IHsgRmlsdGVyRmVhdHVyZXNJblBvaW50RXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZmlsdGVyLWZlYXR1cmVzLWluLXBvaW50LmV4ZWN1dG9yJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hcEZlYXR1cmVIb3ZlcmVkRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcy9ldmVudHMvbWFwLWZlYXR1cmUtaG92ZXJlZC5ldmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZXNzYWdlUmVnaXN0cmF0b3JTZXJ2aWNlIGV4dGVuZHMgUG9zdGJveUFic3RyYWN0UmVnaXN0cmF0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBzZXJ2aWNlOiBNYXBQb3N0Ym95U2VydmljZSxcbiAgICBtYW5hZ2VtZW50OiBNYXBNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0YXRlOiBNYXBTdGF0ZVNlcnZpY2UsXG4gICAgbWFwRmVhdHVyZTogTWFwRmVhdHVyZVNlcnZpY2UsXG4gICAgaW50ZXJhY3Rpb246IE1hcENsaWNrU2VydmljZSxcbiAgICBkcmF3aW5nOiBEcmF3aW5nU2VydmljZSxcbiAgICBmZWF0dXJlTW9kaWZpY2F0aW9uOiBGZWF0dXJlTW9kaWZpY2F0aW9uU2VydmljZSxcbiAgICBjb250cm9sczogQ29udHJvbHNTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgICB0aGlzLnJlZ2lzdGVyU2VydmljZXMoW21hbmFnZW1lbnQsIHN0YXRlLCBpbnRlcmFjdGlvbiwgbWFwRmVhdHVyZSwgZHJhd2luZywgZmVhdHVyZU1vZGlmaWNhdGlvbiwgY29udHJvbHNdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdXAoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoTWFwUmVuZGVyZWRFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoUmVtb3ZlQ29udHJvbENvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkUmVwbGF5KEFkZENvbnRyb2xDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFJlcGxheShTZXRNYXBDZW50ZXJDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQWRkTGF5ZXJDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoUmVtb3ZlTGF5ZXJDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQWRkVGlsZUNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChSZW1vdmVUaWxlQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1hcENsaWNrRXZlbnQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChDbG9zZVRvb2x0aXBDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoRml0VG9GZWF0dXJlc0NvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChGaXRUb1BvbHlnb25zQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1hcE1vdmVFbmRFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KENhbmNlbERyYXdpbmdDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoU3RhcnREcmF3aW5nQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEdldExheWVyUXVlcnkpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChNYXBGZWF0dXJlSG92ZXJlZEV2ZW50KTtcbiAgICB0aGlzLnJlY29yZFdpdGhQaXBlKE1hcFBvaW50ZXJNb3ZlRXZlbnQsIG5ldyBTdWJqZWN0KCksIChzKSA9PiBzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoRHJhd2luZ0ZpbmlzaGVkRXZlbnQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChHZXRGZWF0dXJlc0luQXJlYVF1ZXJ5KTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoRHJhd1NlbGVjdGlvbkFyZWFDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQ2FuY2VsRmVhdHVyZU1vZGlmaWNhdGlvbkNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChNb2RpZnlGZWF0dXJlQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEdldEZlYXR1cmVzSW5Qb2ludFF1ZXJ5KTtcbiAgICB0aGlzLnNldEV4ZWN1dG9ycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFeGVjdXRvcnMoKSB7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihGaWx0ZXJGZWF0dXJlc0luQXJlYUV4ZWN1dG9yLCAoZSkgPT4gRmVhdHVyZVNlcnZpY2UuZmlsdGVyRmVhdHVyZXNJbkFyZWEoZSkpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoRmlsdGVyRmVhdHVyZXNJblBvaW50RXhlY3V0b3IsIChlKSA9PiBGZWF0dXJlU2VydmljZS5maWx0ZXJGZWF0dXJlc0luUG9pbnQoZSkpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoQ2FsY3VsYXRlQXJlYUV4ZWN1dG9yLCAoZSkgPT4gRmVhdHVyZVNlcnZpY2UuY2FsY3VsYXRlQXJlYShlLnBvbHlnb24/LmZlYXR1cmU/LmdldEdlb21ldHJ5KCkpKTtcbiAgICB0aGlzLnJlY29yZEV4ZWN1dG9yKFBvbHlnb25TZWxmSW50ZXJzZWN0aW9uRXhlY3V0b3IsIChlKSA9PlxuICAgICAgRmVhdHVyZVNlcnZpY2UucG9seWdvblNlbGZJbnRlcnNlY3RzKGUucG9seWdvbi5mZWF0dXJlKSxcbiAgICApO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2VuZXJhdGVEcmF3RXhlY3V0b3IsIChlKSA9PiBEcmF3aW5nR2VuZXJhdGlvblNlcnZpY2UuZ2V0RHJhdyhlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihHZW5lcmF0ZVpvb21Db250cm9sRXhlY3V0b3IsIChlKSA9PiBab29tQ29udHJvbEZhY3RvcnkuYnVpbGQoZS5zZXR0aW5ncykpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2V0TWFwUG9zaXRpb25FeGVjdXRvciwgKCkgPT4gdGhpcy5zdGF0ZS5nZXRNYXBQb3NpdGlvbigpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { PostboyGenericMessage } from '@artstesh/postboy';
2
+ export class PolygonSelfIntersectionExecutor extends PostboyGenericMessage {
3
+ constructor(polygon) {
4
+ super();
5
+ this.polygon = polygon;
6
+ }
7
+ }
8
+ PolygonSelfIntersectionExecutor.ID = 'a4ef116d-fe40-4e92-9d4a-653f8b398c62';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWdvbi1zZWxmLWludGVyc2VjdGlvbi5leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21lc3NhZ2VzL2V4ZWN1dG9ycy9wb2x5Z29uLXNlbGYtaW50ZXJzZWN0aW9uLmV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxxQkFBcUI7SUFHeEUsWUFBbUIsT0FBcUI7UUFDdEMsS0FBSyxFQUFFLENBQUM7UUFEUyxZQUFPLEdBQVAsT0FBTyxDQUFjO0lBRXhDLENBQUM7O0FBSmUsa0NBQUUsR0FBRyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvc3Rib3lHZW5lcmljTWVzc2FnZSB9IGZyb20gJ0BhcnRzdGVzaC9wb3N0Ym95JztcbmltcG9ydCB7IFBvbHlnb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBQb2x5Z29uU2VsZkludGVyc2VjdGlvbkV4ZWN1dG9yIGV4dGVuZHMgUG9zdGJveUdlbmVyaWNNZXNzYWdlIHtcbiAgc3RhdGljIHJlYWRvbmx5IElEID0gJ2E0ZWYxMTZkLWZlNDAtNGU5Mi05ZDRhLTY1M2Y4YjM5OGM2Mic7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBvbHlnb246IFBvbHlnb25Nb2RlbCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -17,7 +17,8 @@ export * from './executors/filter-features-in-point.executor';
17
17
  export * from './executors/filter-features-in-area.executor';
18
18
  export * from './executors/calculate-area.executor';
19
19
  export * from './executors/get-map-position.executor';
20
+ export * from './executors/polygon-self-intersection.executor';
20
21
  export * from './queries/get-features-in-area.query';
21
22
  export * from './queries/get-features-in-point.query';
22
23
  export * from './commands/fit-to-features.command';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tZXNzYWdlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9hZGQtY29udHJvbC5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvY2xvc2UtdG9vbHRpcC5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvc3RhcnQtZHJhd2luZy5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvY2FuY2VsLWRyYXdpbmcuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2RyYXctc2VsZWN0aW9uLWFyZWEuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL21vZGlmeS1mZWF0dXJlLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9jYW5jZWwtZmVhdHVyZS1tb2RpZmljYXRpb24uY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL3JlbW92ZS1jb250cm9sLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9zZXQtbWFwLWNlbnRlci5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvZml0LXRvLXBvbHlnb25zLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMvbWFwLXJlbmRlcmVkLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzL21hcC1jbGljay5ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtbW92ZS1lbmQuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMvbWFwLXBvaW50ZXItbW92ZS5ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtZmVhdHVyZS1ob3ZlcmVkLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1wb2ludC5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWN1dG9ycy9maWx0ZXItZmVhdHVyZXMtaW4tYXJlYS5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWN1dG9ycy9jYWxjdWxhdGUtYXJlYS5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2V4ZWN1dG9ycy9nZXQtbWFwLXBvc2l0aW9uLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcmllcy9nZXQtZmVhdHVyZXMtaW4tYXJlYS5xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMvZ2V0LWZlYXR1cmVzLWluLXBvaW50LnF1ZXJ5JztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvZml0LXRvLWZlYXR1cmVzLmNvbW1hbmQnO1xuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tZXNzYWdlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2FkZC1jb250cm9sLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9jbG9zZS10b29sdGlwLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9zdGFydC1kcmF3aW5nLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9jYW5jZWwtZHJhd2luZy5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvZHJhdy1zZWxlY3Rpb24tYXJlYS5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvbW9kaWZ5LWZlYXR1cmUuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2NhbmNlbC1mZWF0dXJlLW1vZGlmaWNhdGlvbi5jb21tYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZHMvcmVtb3ZlLWNvbnRyb2wuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL3NldC1tYXAtY2VudGVyLmNvbW1hbmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tYW5kcy9maXQtdG8tcG9seWdvbnMuY29tbWFuZCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtcmVuZGVyZWQuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMvbWFwLWNsaWNrLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzL21hcC1tb3ZlLWVuZC5ldmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy9tYXAtcG9pbnRlci1tb3ZlLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzL21hcC1mZWF0dXJlLWhvdmVyZWQuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9leGVjdXRvcnMvZmlsdGVyLWZlYXR1cmVzLWluLXBvaW50LmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1hcmVhLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2NhbGN1bGF0ZS1hcmVhLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0b3JzL2dldC1tYXAtcG9zaXRpb24uZXhlY3V0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9leGVjdXRvcnMvcG9seWdvbi1zZWxmLWludGVyc2VjdGlvbi5leGVjdXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMvZ2V0LWZlYXR1cmVzLWluLWFyZWEucXVlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVzL2dldC1mZWF0dXJlcy1pbi1wb2ludC5xdWVyeSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbW1hbmRzL2ZpdC10by1mZWF0dXJlcy5jb21tYW5kJztcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Point } from 'ol/geom';
1
+ import { LineString, Point } from 'ol/geom';
2
2
  import * as Sphere from 'ol/sphere';
3
3
  export class FeatureService {
4
4
  constructor() { }
@@ -13,6 +13,20 @@ export class FeatureService {
13
13
  return 0;
14
14
  return Sphere.getArea(g, { projection: 'EPSG:4326' });
15
15
  }
16
+ static polygonSelfIntersects(feature) {
17
+ if (feature.getGeometry().getType() !== 'Polygon')
18
+ return false;
19
+ let intersections = 0;
20
+ const segments = FeatureService.getSegmentsFromCoordinates(feature.getGeometry());
21
+ for (let i = 0; i < segments.length; i++) {
22
+ for (let z = i + 1; z < segments.length; z++) {
23
+ if (!intersections && this.segmentIntersection(segments[i].getCoordinates(), segments[z].getCoordinates())) {
24
+ intersections++;
25
+ }
26
+ }
27
+ }
28
+ return intersections !== 0;
29
+ }
16
30
  static booleanIntersects(g1, g2) {
17
31
  if (g2.getType() === 'Point')
18
32
  return g1.intersectsCoordinate(g2.getCoordinates());
@@ -22,5 +36,42 @@ export class FeatureService {
22
36
  return g1.intersectsCoordinate(g2.getInteriorPoint().getCoordinates());
23
37
  return false;
24
38
  }
39
+ static getSegmentsFromCoordinates(geom) {
40
+ if (!geom)
41
+ return [];
42
+ const coords = geom.getCoordinates();
43
+ const line = new LineString(coords[0]);
44
+ const segments = [];
45
+ line.forEachSegment((s1, s2) => {
46
+ const l = new LineString([s1, s2]);
47
+ l.scale(0.999); // bug of the OL, as I see
48
+ segments.push(l);
49
+ });
50
+ return segments;
51
+ }
52
+ static segmentIntersection(s1, s2) {
53
+ const a = s1[0], b = s1[1], c = s2[0], d = s2[1];
54
+ const o1 = this.orientation(a, b, c);
55
+ const o2 = this.orientation(a, b, d);
56
+ const o3 = this.orientation(c, d, a);
57
+ const o4 = this.orientation(c, d, b);
58
+ return ((o1 != o2 && o3 != o4) ||
59
+ (o1 == 0 && this.onSegment(a, d, b)) ||
60
+ (o2 == 0 && this.onSegment(a, d, b)) ||
61
+ (o3 == 0 && this.onSegment(d, a, d)) ||
62
+ (o4 == 0 && this.onSegment(d, b, d)));
63
+ }
64
+ static orientation(p, q, r) {
65
+ const val = (q[1] - p[1]) * (r[0] - q[0]) - (q[0] - p[0]) * (r[1] - q[1]);
66
+ if (val == 0)
67
+ return 0; // collinear
68
+ return val > 0 ? 1 : 2; // clock or counterclock wise
69
+ }
70
+ static onSegment(p, q, r) {
71
+ return (q[0] <= (p[0] > r[0] ? p[0] : r[0]) &&
72
+ q[0] >= (p[0] < r[0] ? p[0] : r[0]) &&
73
+ q[1] <= (p[1] > r[1] ? p[1] : r[1]) &&
74
+ q[1] >= (p[1] < r[1] ? p[1] : r[1]));
75
+ }
25
76
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvZmVhdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2xELE9BQU8sS0FBSyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBSXBDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLGdCQUFlLENBQUM7SUFFVCxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBbUM7UUFDcEUsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQW9DO1FBQ3RFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNqQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRyxFQUFFLElBQUksS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUN0RixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBdUI7UUFDakQsSUFBSSxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFZLEVBQUUsRUFBWTtRQUN6RCxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUUsRUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDN0YsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFFLEVBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLFNBQVM7WUFBRSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBRSxFQUFjLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ3BILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2lyY2xlLCBHZW9tZXRyeSwgUG9pbnQgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBQb2x5Z29uIGZyb20gJ29sL2dlb20vUG9seWdvbic7XG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnb2wnO1xuaW1wb3J0ICogYXMgU3BoZXJlIGZyb20gJ29sL3NwaGVyZSc7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luQXJlYUV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1hcmVhLmV4ZWN1dG9yJztcbmltcG9ydCB7IEZpbHRlckZlYXR1cmVzSW5Qb2ludEV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuXG5leHBvcnQgY2xhc3MgRmVhdHVyZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJGZWF0dXJlc0luQXJlYShxdWVyeTogRmlsdGVyRmVhdHVyZXNJbkFyZWFFeGVjdXRvcik6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIHJldHVybiBxdWVyeS5mZWF0dXJlcy5maWx0ZXIoKGYpID0+IEZlYXR1cmVTZXJ2aWNlLmJvb2xlYW5JbnRlcnNlY3RzKHF1ZXJ5LmFyZWEsIGYuZ2V0R2VvbWV0cnkoKSEpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRmVhdHVyZXNJblBvaW50KHF1ZXJ5OiBGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvcik6IEZlYXR1cmU8R2VvbWV0cnk+W10ge1xuICAgIHJldHVybiBxdWVyeS5mZWF0dXJlcy5maWx0ZXIoKGYpID0+XG4gICAgICBGZWF0dXJlU2VydmljZS5ib29sZWFuSW50ZXJzZWN0cyhmLmdldEdlb21ldHJ5KCkhLCBuZXcgUG9pbnQoW3F1ZXJ5LmxuZywgcXVlcnkubGF0XSkpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNhbGN1bGF0ZUFyZWEoZzogR2VvbWV0cnkgfCB1bmRlZmluZWQpOiBudW1iZXIge1xuICAgIGlmICghZykgcmV0dXJuIDA7XG4gICAgcmV0dXJuIFNwaGVyZS5nZXRBcmVhKGcsIHsgcHJvamVjdGlvbjogJ0VQU0c6NDMyNicgfSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBib29sZWFuSW50ZXJzZWN0cyhnMTogR2VvbWV0cnksIGcyOiBHZW9tZXRyeSk6IGJvb2xlYW4ge1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2ludCcpIHJldHVybiBnMS5pbnRlcnNlY3RzQ29vcmRpbmF0ZSgoZzIgYXMgUG9pbnQpLmdldENvb3JkaW5hdGVzKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdDaXJjbGUnKSByZXR1cm4gZzEuaW50ZXJzZWN0c0Nvb3JkaW5hdGUoKGcyIGFzIENpcmNsZSkuZ2V0Q2VudGVyKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2x5Z29uJykgcmV0dXJuIGcxLmludGVyc2VjdHNDb29yZGluYXRlKChnMiBhcyBQb2x5Z29uKS5nZXRJbnRlcmlvclBvaW50KCkuZ2V0Q29vcmRpbmF0ZXMoKSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvZmVhdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0MsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdsRixPQUFPLEtBQUssTUFBTSxNQUFNLFdBQVcsQ0FBQztBQUlwQyxNQUFNLE9BQU8sY0FBYztJQUN6QixnQkFBZSxDQUFDO0lBRVQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQW1DO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFvQztRQUN0RSxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDakMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUcsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdEYsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQXVCO1FBQ2pELElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDakIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFC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LENBQUMsQ0FBQztRQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FDTCxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFXLEVBQUUsQ0FBVyxFQUFFLENBQVc7UUFDOUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxHQUFHLElBQUksQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUNwQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCO0lBQ3ZELENBQUM7SUFFTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQVcsRUFBRSxDQUFXLEVBQUUsQ0FBVztRQUM1RCxPQUFPLENBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENpcmNsZSwgR2VvbWV0cnksIEdlb21ldHJ5Q29sbGVjdGlvbiwgTGluZVN0cmluZywgUG9pbnQgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBQb2x5Z29uLCB7IGZyb21DaXJjbGUgfSBmcm9tICdvbC9nZW9tL1BvbHlnb24nO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ29sJztcbmltcG9ydCAqIGFzIFNwaGVyZSBmcm9tICdvbC9zcGhlcmUnO1xuaW1wb3J0IHsgRmlsdGVyRmVhdHVyZXNJbkFyZWFFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9maWx0ZXItZmVhdHVyZXMtaW4tYXJlYS5leGVjdXRvcic7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzJztcblxuZXhwb3J0IGNsYXNzIEZlYXR1cmVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRmVhdHVyZXNJbkFyZWEocXVlcnk6IEZpbHRlckZlYXR1cmVzSW5BcmVhRXhlY3V0b3IpOiBGZWF0dXJlPEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gcXVlcnkuZmVhdHVyZXMuZmlsdGVyKChmKSA9PiBGZWF0dXJlU2VydmljZS5ib29sZWFuSW50ZXJzZWN0cyhxdWVyeS5hcmVhLCBmLmdldEdlb21ldHJ5KCkhKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZpbHRlckZlYXR1cmVzSW5Qb2ludChxdWVyeTogRmlsdGVyRmVhdHVyZXNJblBvaW50RXhlY3V0b3IpOiBGZWF0dXJlPEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gcXVlcnkuZmVhdHVyZXMuZmlsdGVyKChmKSA9PlxuICAgICAgRmVhdHVyZVNlcnZpY2UuYm9vbGVhbkludGVyc2VjdHMoZi5nZXRHZW9tZXRyeSgpISwgbmV3IFBvaW50KFtxdWVyeS5sbmcsIHF1ZXJ5LmxhdF0pKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjYWxjdWxhdGVBcmVhKGc6IEdlb21ldHJ5IHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICBpZiAoIWcpIHJldHVybiAwO1xuICAgIHJldHVybiBTcGhlcmUuZ2V0QXJlYShnLCB7IHByb2plY3Rpb246ICdFUFNHOjQzMjYnIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwb2x5Z29uU2VsZkludGVyc2VjdHMoZmVhdHVyZTogRmVhdHVyZTxHZW9tZXRyeT4pOiBib29sZWFuIHtcbiAgICBpZiAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpIS5nZXRUeXBlKCkgIT09ICdQb2x5Z29uJykgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBpbnRlcnNlY3Rpb25zID0gMDtcbiAgICBjb25zdCBzZWdtZW50cyA9IEZlYXR1cmVTZXJ2aWNlLmdldFNlZ21lbnRzRnJvbUNvb3JkaW5hdGVzKGZlYXR1cmUuZ2V0R2VvbWV0cnkoKSEpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAobGV0IHogPSBpICsgMTsgeiA8IHNlZ21lbnRzLmxlbmd0aDsgeisrKSB7XG4gICAgICAgIGlmICghaW50ZXJzZWN0aW9ucyAmJiB0aGlzLnNlZ21lbnRJbnRlcnNlY3Rpb24oc2VnbWVudHNbaV0uZ2V0Q29vcmRpbmF0ZXMoKSwgc2VnbWVudHNbel0uZ2V0Q29vcmRpbmF0ZXMoKSkpIHtcbiAgICAgICAgICBpbnRlcnNlY3Rpb25zKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGludGVyc2VjdGlvbnMgIT09IDA7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBib29sZWFuSW50ZXJzZWN0cyhnMTogR2VvbWV0cnksIGcyOiBHZW9tZXRyeSk6IGJvb2xlYW4ge1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2ludCcpIHJldHVybiBnMS5pbnRlcnNlY3RzQ29vcmRpbmF0ZSgoZzIgYXMgUG9pbnQpLmdldENvb3JkaW5hdGVzKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdDaXJjbGUnKSByZXR1cm4gZzEuaW50ZXJzZWN0c0Nvb3JkaW5hdGUoKGcyIGFzIENpcmNsZSkuZ2V0Q2VudGVyKCkpO1xuICAgIGlmIChnMi5nZXRUeXBlKCkgPT09ICdQb2x5Z29uJykgcmV0dXJuIGcxLmludGVyc2VjdHNDb29yZGluYXRlKChnMiBhcyBQb2x5Z29uKS5nZXRJbnRlcmlvclBvaW50KCkuZ2V0Q29vcmRpbmF0ZXMoKSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0U2VnbWVudHNGcm9tQ29vcmRpbmF0ZXMoZ2VvbTogR2VvbWV0cnkpOiBMaW5lU3RyaW5nW10ge1xuICAgIGlmICghZ2VvbSkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGNvb3JkcyA9IChnZW9tIGFzIGFueSkuZ2V0Q29vcmRpbmF0ZXMoKTtcbiAgICBjb25zdCBsaW5lID0gbmV3IExpbmVTdHJpbmcoY29vcmRzWzBdKTtcbiAgICBjb25zdCBzZWdtZW50czogTGluZVN0cmluZ1tdID0gW107XG4gICAgbGluZS5mb3JFYWNoU2VnbWVudCgoczEsIHMyKSA9PiB7XG4gICAgICBjb25zdCBsID0gbmV3IExpbmVTdHJpbmcoW3MxLCBzMl0pO1xuICAgICAgbC5zY2FsZSgwLjk5OSk7IC8vIGJ1ZyBvZiB0aGUgT0wsIGFzIEkgc2VlXG4gICAgICBzZWdtZW50cy5wdXNoKGwpO1xuICAgIH0pO1xuICAgIHJldHVybiBzZWdtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNlZ21lbnRJbnRlcnNlY3Rpb24oczE6IG51bWJlcltdW10sIHMyOiBudW1iZXJbXVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYSA9IHMxWzBdLFxuICAgICAgYiA9IHMxWzFdLFxuICAgICAgYyA9IHMyWzBdLFxuICAgICAgZCA9IHMyWzFdO1xuICAgIGNvbnN0IG8xID0gdGhpcy5vcmllbnRhdGlvbihhLCBiLCBjKTtcbiAgICBjb25zdCBvMiA9IHRoaXMub3JpZW50YXRpb24oYSwgYiwgZCk7XG4gICAgY29uc3QgbzMgPSB0aGlzLm9yaWVudGF0aW9uKGMsIGQsIGEpO1xuICAgIGNvbnN0IG80ID0gdGhpcy5vcmllbnRhdGlvbihjLCBkLCBiKTtcbiAgICByZXR1cm4gKFxuICAgICAgKG8xICE9IG8yICYmIG8zICE9IG80KSB8fFxuICAgICAgKG8xID09IDAgJiYgdGhpcy5vblNlZ21lbnQoYSwgZCwgYikpIHx8XG4gICAgICAobzIgPT0gMCAmJiB0aGlzLm9uU2VnbWVudChhLCBkLCBiKSkgfHxcbiAgICAgIChvMyA9PSAwICYmIHRoaXMub25TZWdtZW50KGQsIGEsIGQpKSB8fFxuICAgICAgKG80ID09IDAgJiYgdGhpcy5vblNlZ21lbnQoZCwgYiwgZCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9yaWVudGF0aW9uKHA6IG51bWJlcltdLCBxOiBudW1iZXJbXSwgcjogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGNvbnN0IHZhbCA9IChxWzFdIC0gcFsxXSkgKiAoclswXSAtIHFbMF0pIC0gKHFbMF0gLSBwWzBdKSAqIChyWzFdIC0gcVsxXSk7XG4gICAgaWYgKHZhbCA9PSAwKSByZXR1cm4gMDsgLy8gY29sbGluZWFyXG4gICAgcmV0dXJuIHZhbCA+IDAgPyAxIDogMjsgLy8gY2xvY2sgb3IgY291bnRlcmNsb2NrIHdpc2VcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9uU2VnbWVudChwOiBudW1iZXJbXSwgcTogbnVtYmVyW10sIHI6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHFbMF0gPD0gKHBbMF0gPiByWzBdID8gcFswXSA6IHJbMF0pICYmXG4gICAgICBxWzBdID49IChwWzBdIDwgclswXSA/IHBbMF0gOiByWzBdKSAmJlxuICAgICAgcVsxXSA8PSAocFsxXSA+IHJbMV0gPyBwWzFdIDogclsxXSkgJiZcbiAgICAgIHFbMV0gPj0gKHBbMV0gPCByWzFdID8gcFsxXSA6IHJbMV0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { FitToPolygonsCommand, GetFeaturesInPointQuery, MapPointerMoveEvent, MapRenderedEvent } from '../messages';
2
+ import { FitToPolygonsCommand, GetFeaturesInPointQuery, MapPointerMoveEvent, MapRenderedEvent, PolygonSelfIntersectionExecutor, } from '../messages';
3
3
  import { AddLayerCommand } from '../messages/commands/add-layer.command';
4
4
  import { PlaceLayerFeaturesCommand } from '../messages/commands/place-layer-features.command';
5
5
  import { RemoveLayerCommand } from '../messages/commands/remove-layer.command';
@@ -80,6 +80,7 @@ export class MessageRegistratorService extends PostboyAbstractRegistrator {
80
80
  this.recordExecutor(FilterFeaturesInAreaExecutor, (e) => FeatureService.filterFeaturesInArea(e));
81
81
  this.recordExecutor(FilterFeaturesInPointExecutor, (e) => FeatureService.filterFeaturesInPoint(e));
82
82
  this.recordExecutor(CalculateAreaExecutor, (e) => FeatureService.calculateArea(e.polygon?.feature?.getGeometry()));
83
+ this.recordExecutor(PolygonSelfIntersectionExecutor, (e) => FeatureService.polygonSelfIntersects(e.polygon.feature));
83
84
  this.recordExecutor(GenerateDrawExecutor, (e) => DrawingGenerationService.getDraw(e));
84
85
  this.recordExecutor(GenerateZoomControlExecutor, (e) => ZoomControlFactory.build(e.settings));
85
86
  this.recordExecutor(GetMapPositionExecutor, () => this.state.getMapPosition());
@@ -90,4 +91,4 @@ MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.
90
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
91
92
  type: Injectable
92
93
  }], ctorParameters: function () { return [{ type: i1.MapPostboyService }, { type: i2.MapManagementService }, { type: i3.MapStateService }, { type: i4.MapFeatureService }, { type: i5.MapClickService }, { type: i6.DrawingService }, { type: i7.FeatureModificationService }, { type: i8.ControlsService }]; } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvbWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxF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QUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7O3VIQW5EVSx5QkFBeUI7MkhBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWFwUG9zdGJveVNlcnZpY2UgfSBmcm9tICcuL21hcC1wb3N0Ym95LnNlcnZpY2UnO1xuaW1wb3J0IHsgRml0VG9Qb2x5Z29uc0NvbW1hbmQsIEdldEZlYXR1cmVzSW5Qb2ludFF1ZXJ5LCBNYXBQb2ludGVyTW92ZUV2ZW50LCBNYXBSZW5kZXJlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMnO1xuaW1wb3J0IHsgQWRkTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3BsYWNlLWxheWVyLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgUmVtb3ZlTGF5ZXJDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLWxheWVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgeyBQb3N0Ym95QWJzdHJhY3RSZWdpc3RyYXRvciB9IGZyb20gJ0BhcnRzdGVzaC9wb3N0Ym95JztcbmltcG9ydCB7IE1hcE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFN0YXRlU2VydmljZSB9IGZyb20gJy4vbWFwLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtY2xpY2suc2VydmljZSc7XG5pbXBvcnQgeyBNYXBDbGlja0V2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL21hcC1jbGljay5ldmVudCc7XG5pbXBvcnQgeyBDbG9zZVRvb2x0aXBDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvY2xvc2UtdG9vbHRpcC5jb21tYW5kJztcbmltcG9ydCB7IE1hcEZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi9tYXAtZmVhdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpdFRvRmVhdHVyZXNDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvZml0LXRvLWZlYXR1cmVzLmNvbW1hbmQnO1xuaW1wb3J0IHsgTWFwTW92ZUVuZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL21hcC1tb3ZlLWVuZC5ldmVudCc7XG5pbXBvcnQgeyBDYW5jZWxEcmF3aW5nQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2NhbmNlbC1kcmF3aW5nLmNvbW1hbmQnO1xuaW1wb3J0IHsgU3RhcnREcmF3aW5nQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3N0YXJ0LWRyYXdpbmcuY29tbWFuZCc7XG5pbXBvcnQgeyBEcmF3aW5nU2VydmljZSB9IGZyb20gJy4vZHJhd2luZy9kcmF3aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2V0TGF5ZXJRdWVyeSB9IGZyb20gJy4uL21lc3NhZ2VzL3F1ZXJpZXMvZ2V0LWxheWVyLnF1ZXJ5JztcbmltcG9ydCB7IERyYXdpbmdGaW5pc2hlZEV2ZW50IH0gZnJvbSAnLi4vbWVzc2FnZXMvZXZlbnRzL2RyYXdpbmctZmluaXNoZWQuZXZlbnQnO1xuaW1wb3J0IHsgRHJhd2luZ0dlbmVyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9kcmF3aW5nL2RyYXdpbmctZ2VuZXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi9mZWF0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2V0RmVhdHVyZXNJbkFyZWFRdWVyeSB9IGZyb20gJy4uL21lc3NhZ2VzL3F1ZXJpZXMvZ2V0LWZlYXR1cmVzLWluLWFyZWEucXVlcnknO1xuaW1wb3J0IHsgRHJhd1NlbGVjdGlvbkFyZWFDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvZHJhdy1zZWxlY3Rpb24tYXJlYS5jb21tYW5kJztcbmltcG9ydCB7IEZpbHRlckZlYXR1cmVzSW5BcmVhRXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZmlsdGVyLWZlYXR1cmVzLWluLWFyZWEuZXhlY3V0b3InO1xuaW1wb3J0IHsgR2VuZXJhdGVEcmF3RXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZ2VuZXJhdGUtZHJhdy5leGVjdXRvcic7XG5pbXBvcnQgeyBGZWF0dXJlTW9kaWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vZHJhd2luZy9mZWF0dXJlLW1vZGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENhbmNlbEZlYXR1cmVNb2RpZmljYXRpb25Db21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvY2FuY2VsLWZlYXR1cmUtbW9kaWZpY2F0aW9uLmNvbW1hbmQnO1xuaW1wb3J0IHsgTW9kaWZ5RmVhdHVyZUNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9tb2RpZnktZmVhdHVyZS5jb21tYW5kJztcbmltcG9ydCB7IEdlbmVyYXRlWm9vbUNvbnRyb2xFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9nZW5lcmF0ZS16b29tLWNvbnRyb2wuZXhlY3V0b3InO1xuaW1wb3J0IHsgWm9vbUNvbnRyb2xGYWN0b3J5IH0gZnJvbSAnLi4vbWFwLXBsYXRlL2NvbnRyb2xzL21hcC1jb250cm9sLXpvb20vem9vbS1jb250cm9sLmZhY3RvcnknO1xuaW1wb3J0IHsgUmVtb3ZlQ29udHJvbENvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9yZW1vdmUtY29udHJvbC5jb21tYW5kJztcbmltcG9ydCB7IEFkZENvbnRyb2xDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLWNvbnRyb2wuY29tbWFuZCc7XG5pbXBvcnQgeyBDb250cm9sc1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyb2xzL2NvbnRyb2xzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2V0TWFwQ2VudGVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3NldC1tYXAtY2VudGVyLmNvbW1hbmQnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQXJlYUV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2NhbGN1bGF0ZS1hcmVhLmV4ZWN1dG9yJztcbmltcG9ydCB7IEdldE1hcFBvc2l0aW9uRXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZ2V0LW1hcC1wb3NpdGlvbi5leGVjdXRvcic7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9maWx0ZXItZmVhdHVyZXMtaW4tcG9pbnQuZXhlY3V0b3InO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWFwRmVhdHVyZUhvdmVyZWRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9tYXAtZmVhdHVyZS1ob3ZlcmVkLmV2ZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VSZWdpc3RyYXRvclNlcnZpY2UgZXh0ZW5kcyBQb3N0Ym95QWJzdHJhY3RSZWdpc3RyYXRvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlcnZpY2U6IE1hcFBvc3Rib3lTZXJ2aWNlLFxuICAgIG1hbmFnZW1lbnQ6IE1hcE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RhdGU6IE1hcFN0YXRlU2VydmljZSxcbiAgICBtYXBGZWF0dXJlOiBNYXBGZWF0dXJlU2VydmljZSxcbiAgICBpbnRlcmFjdGlvbjogTWFwQ2xpY2tTZXJ2aWNlLFxuICAgIGRyYXdpbmc6IERyYXdpbmdTZXJ2aWNlLFxuICAgIGZlYXR1cmVNb2RpZmljYXRpb246IEZlYXR1cmVNb2RpZmljYXRpb25TZXJ2aWNlLFxuICAgIGNvbnRyb2xzOiBDb250cm9sc1NlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKHNlcnZpY2UpO1xuICAgIHRoaXMucmVnaXN0ZXJTZXJ2aWNlcyhbbWFuYWdlbWVudCwgc3RhdGUsIGludGVyYWN0aW9uLCBtYXBGZWF0dXJlLCBkcmF3aW5nLCBmZWF0dXJlTW9kaWZpY2F0aW9uLCBjb250cm9sc10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF91cCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlY29yZFJlcGxheShNYXBSZW5kZXJlZEV2ZW50KTtcbiAgICB0aGlzLnJlY29yZFJlcGxheShQbGFjZUxheWVyRmVhdHVyZXNDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFJlcGxheShSZW1vdmVDb250cm9sQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoQWRkQ29udHJvbENvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkUmVwbGF5KFNldE1hcENlbnRlckNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChBZGRMYXllckNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChSZW1vdmVMYXllckNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChBZGRUaWxlQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KFJlbW92ZVRpbGVDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoTWFwQ2xpY2tFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KENsb3NlVG9vbHRpcENvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChGaXRUb0ZlYXR1cmVzQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEZpdFRvUG9seWdvbnNDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoTWFwTW92ZUVuZEV2ZW50KTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQ2FuY2VsRHJhd2luZ0NvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChTdGFydERyYXdpbmdDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoR2V0TGF5ZXJRdWVyeSk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1hcEZlYXR1cmVIb3ZlcmVkRXZlbnQpO1xuICAgIHRoaXMucmVjb3JkV2l0aFBpcGUoTWFwUG9pbnRlck1vdmVFdmVudCwgbmV3IFN1YmplY3QoKSwgKHMpID0+IHMucGlwZShkZWJvdW5jZVRpbWUoMTUwKSkpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChEcmF3aW5nRmluaXNoZWRFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEdldEZlYXR1cmVzSW5BcmVhUXVlcnkpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChEcmF3U2VsZWN0aW9uQXJlYUNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChDYW5jZWxGZWF0dXJlTW9kaWZpY2F0aW9uQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1vZGlmeUZlYXR1cmVDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoR2V0RmVhdHVyZXNJblBvaW50UXVlcnkpO1xuICAgIHRoaXMuc2V0RXhlY3V0b3JzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldEV4ZWN1dG9ycygpIHtcbiAgICB0aGlzLnJlY29yZEV4ZWN1dG9yKEZpbHRlckZlYXR1cmVzSW5BcmVhRXhlY3V0b3IsIChlKSA9PiBGZWF0dXJlU2VydmljZS5maWx0ZXJGZWF0dXJlc0luQXJlYShlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihGaWx0ZXJGZWF0dXJlc0luUG9pbnRFeGVjdXRvciwgKGUpID0+IEZlYXR1cmVTZXJ2aWNlLmZpbHRlckZlYXR1cmVzSW5Qb2ludChlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihDYWxjdWxhdGVBcmVhRXhlY3V0b3IsIChlKSA9PiBGZWF0dXJlU2VydmljZS5jYWxjdWxhdGVBcmVhKGUucG9seWdvbj8uZmVhdHVyZT8uZ2V0R2VvbWV0cnkoKSkpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2VuZXJhdGVEcmF3RXhlY3V0b3IsIChlKSA9PiBEcmF3aW5nR2VuZXJhdGlvblNlcnZpY2UuZ2V0RHJhdyhlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihHZW5lcmF0ZVpvb21Db250cm9sRXhlY3V0b3IsIChlKSA9PiBab29tQ29udHJvbEZhY3RvcnkuYnVpbGQoZS5zZXR0aW5ncykpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2V0TWFwUG9zaXRpb25FeGVjdXRvciwgKCkgPT4gdGhpcy5zdGF0ZS5nZXRNYXBQb3NpdGlvbigpKTtcbiAgfVxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvc2VydmljZXMvbWVzc2FnZS1yZWdpc3RyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUNMLG9CQUFvQixFQUNwQix1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQiwrQkFBK0IsR0FDaEMsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMs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Q0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsY0FBYyxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDekQsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQ3hELENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQzs7dUhBdERVLHlCQUF5QjsySEFBekIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4vbWFwLXBvc3Rib3kuc2VydmljZSc7XG5pbXBvcnQge1xuICBGaXRUb1BvbHlnb25zQ29tbWFuZCxcbiAgR2V0RmVhdHVyZXNJblBvaW50UXVlcnksXG4gIE1hcFBvaW50ZXJNb3ZlRXZlbnQsXG4gIE1hcFJlbmRlcmVkRXZlbnQsXG4gIFBvbHlnb25TZWxmSW50ZXJzZWN0aW9uRXhlY3V0b3IsXG59IGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB7IEFkZExheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IFBsYWNlTGF5ZXJGZWF0dXJlc0NvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9wbGFjZS1sYXllci1mZWF0dXJlcy5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZUxheWVyQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS1sYXllci5jb21tYW5kJztcbmltcG9ydCB7IEFkZFRpbGVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvYWRkLXRpbGUuY29tbWFuZCc7XG5pbXBvcnQgeyBSZW1vdmVUaWxlQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL3JlbW92ZS10aWxlLmNvbW1hbmQnO1xuaW1wb3J0IHsgUG9zdGJveUFic3RyYWN0UmVnaXN0cmF0b3IgfSBmcm9tICdAYXJ0c3Rlc2gvcG9zdGJveSc7XG5pbXBvcnQgeyBNYXBNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4vbWFwLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL21hcC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcENsaWNrU2VydmljZSB9IGZyb20gJy4vbWFwLWNsaWNrLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQ2xpY2tFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9tYXAtY2xpY2suZXZlbnQnO1xuaW1wb3J0IHsgQ2xvc2VUb29sdGlwQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2Nsb3NlLXRvb2x0aXAuY29tbWFuZCc7XG5pbXBvcnQgeyBNYXBGZWF0dXJlU2VydmljZSB9IGZyb20gJy4vbWFwLWZlYXR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBGaXRUb0ZlYXR1cmVzQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2ZpdC10by1mZWF0dXJlcy5jb21tYW5kJztcbmltcG9ydCB7IE1hcE1vdmVFbmRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9tYXAtbW92ZS1lbmQuZXZlbnQnO1xuaW1wb3J0IHsgQ2FuY2VsRHJhd2luZ0NvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9jYW5jZWwtZHJhd2luZy5jb21tYW5kJztcbmltcG9ydCB7IFN0YXJ0RHJhd2luZ0NvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9zdGFydC1kcmF3aW5nLmNvbW1hbmQnO1xuaW1wb3J0IHsgRHJhd2luZ1NlcnZpY2UgfSBmcm9tICcuL2RyYXdpbmcvZHJhd2luZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdldExheWVyUXVlcnkgfSBmcm9tICcuLi9tZXNzYWdlcy9xdWVyaWVzL2dldC1sYXllci5xdWVyeSc7XG5pbXBvcnQgeyBEcmF3aW5nRmluaXNoZWRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzL2V2ZW50cy9kcmF3aW5nLWZpbmlzaGVkLmV2ZW50JztcbmltcG9ydCB7IERyYXdpbmdHZW5lcmF0aW9uU2VydmljZSB9IGZyb20gJy4vZHJhd2luZy9kcmF3aW5nLWdlbmVyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdldEZlYXR1cmVzSW5BcmVhUXVlcnkgfSBmcm9tICcuLi9tZXNzYWdlcy9xdWVyaWVzL2dldC1mZWF0dXJlcy1pbi1hcmVhLnF1ZXJ5JztcbmltcG9ydCB7IERyYXdTZWxlY3Rpb25BcmVhQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2RyYXctc2VsZWN0aW9uLWFyZWEuY29tbWFuZCc7XG5pbXBvcnQgeyBGaWx0ZXJGZWF0dXJlc0luQXJlYUV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2ZpbHRlci1mZWF0dXJlcy1pbi1hcmVhLmV4ZWN1dG9yJztcbmltcG9ydCB7IEdlbmVyYXRlRHJhd0V4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2dlbmVyYXRlLWRyYXcuZXhlY3V0b3InO1xuaW1wb3J0IHsgRmVhdHVyZU1vZGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2RyYXdpbmcvZmVhdHVyZS1tb2RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYW5jZWxGZWF0dXJlTW9kaWZpY2F0aW9uQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2NhbmNlbC1mZWF0dXJlLW1vZGlmaWNhdGlvbi5jb21tYW5kJztcbmltcG9ydCB7IE1vZGlmeUZlYXR1cmVDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvbW9kaWZ5LWZlYXR1cmUuY29tbWFuZCc7XG5pbXBvcnQgeyBHZW5lcmF0ZVpvb21Db250cm9sRXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZ2VuZXJhdGUtem9vbS1jb250cm9sLmV4ZWN1dG9yJztcbmltcG9ydCB7IFpvb21Db250cm9sRmFjdG9yeSB9IGZyb20gJy4uL21hcC1wbGF0ZS9jb250cm9scy9tYXAtY29udHJvbC16b29tL3pvb20tY29udHJvbC5mYWN0b3J5JztcbmltcG9ydCB7IFJlbW92ZUNvbnRyb2xDb21tYW5kIH0gZnJvbSAnLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLWNvbnRyb2wuY29tbWFuZCc7XG5pbXBvcnQgeyBBZGRDb250cm9sQ29tbWFuZCB9IGZyb20gJy4uL21lc3NhZ2VzL2NvbW1hbmRzL2FkZC1jb250cm9sLmNvbW1hbmQnO1xuaW1wb3J0IHsgQ29udHJvbHNTZXJ2aWNlIH0gZnJvbSAnLi9jb250cm9scy9jb250cm9scy5zZXJ2aWNlJztcbmltcG9ydCB7IFNldE1hcENlbnRlckNvbW1hbmQgfSBmcm9tICcuLi9tZXNzYWdlcy9jb21tYW5kcy9zZXQtbWFwLWNlbnRlci5jb21tYW5kJztcbmltcG9ydCB7IENhbGN1bGF0ZUFyZWFFeGVjdXRvciB9IGZyb20gJy4uL21lc3NhZ2VzL2V4ZWN1dG9ycy9jYWxjdWxhdGUtYXJlYS5leGVjdXRvcic7XG5pbXBvcnQgeyBHZXRNYXBQb3NpdGlvbkV4ZWN1dG9yIH0gZnJvbSAnLi4vbWVzc2FnZXMvZXhlY3V0b3JzL2dldC1tYXAtcG9zaXRpb24uZXhlY3V0b3InO1xuaW1wb3J0IHsgRmlsdGVyRmVhdHVyZXNJblBvaW50RXhlY3V0b3IgfSBmcm9tICcuLi9tZXNzYWdlcy9leGVjdXRvcnMvZmlsdGVyLWZlYXR1cmVzLWluLXBvaW50LmV4ZWN1dG9yJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hcEZlYXR1cmVIb3ZlcmVkRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcy9ldmVudHMvbWFwLWZlYXR1cmUtaG92ZXJlZC5ldmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZXNzYWdlUmVnaXN0cmF0b3JTZXJ2aWNlIGV4dGVuZHMgUG9zdGJveUFic3RyYWN0UmVnaXN0cmF0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBzZXJ2aWNlOiBNYXBQb3N0Ym95U2VydmljZSxcbiAgICBtYW5hZ2VtZW50OiBNYXBNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHN0YXRlOiBNYXBTdGF0ZVNlcnZpY2UsXG4gICAgbWFwRmVhdHVyZTogTWFwRmVhdHVyZVNlcnZpY2UsXG4gICAgaW50ZXJhY3Rpb246IE1hcENsaWNrU2VydmljZSxcbiAgICBkcmF3aW5nOiBEcmF3aW5nU2VydmljZSxcbiAgICBmZWF0dXJlTW9kaWZpY2F0aW9uOiBGZWF0dXJlTW9kaWZpY2F0aW9uU2VydmljZSxcbiAgICBjb250cm9sczogQ29udHJvbHNTZXJ2aWNlLFxuICApIHtcbiAgICBzdXBlcihzZXJ2aWNlKTtcbiAgICB0aGlzLnJlZ2lzdGVyU2VydmljZXMoW21hbmFnZW1lbnQsIHN0YXRlLCBpbnRlcmFjdGlvbiwgbWFwRmVhdHVyZSwgZHJhd2luZywgZmVhdHVyZU1vZGlmaWNhdGlvbiwgY29udHJvbHNdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdXAoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoTWFwUmVuZGVyZWRFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoUGxhY2VMYXllckZlYXR1cmVzQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRSZXBsYXkoUmVtb3ZlQ29udHJvbENvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkUmVwbGF5KEFkZENvbnRyb2xDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFJlcGxheShTZXRNYXBDZW50ZXJDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQWRkTGF5ZXJDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoUmVtb3ZlTGF5ZXJDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQWRkVGlsZUNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChSZW1vdmVUaWxlQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1hcENsaWNrRXZlbnQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChDbG9zZVRvb2x0aXBDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoRml0VG9GZWF0dXJlc0NvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChGaXRUb1BvbHlnb25zQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KE1hcE1vdmVFbmRFdmVudCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KENhbmNlbERyYXdpbmdDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoU3RhcnREcmF3aW5nQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEdldExheWVyUXVlcnkpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChNYXBGZWF0dXJlSG92ZXJlZEV2ZW50KTtcbiAgICB0aGlzLnJlY29yZFdpdGhQaXBlKE1hcFBvaW50ZXJNb3ZlRXZlbnQsIG5ldyBTdWJqZWN0KCksIChzKSA9PiBzLnBpcGUoZGVib3VuY2VUaW1lKDE1MCkpKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoRHJhd2luZ0ZpbmlzaGVkRXZlbnQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChHZXRGZWF0dXJlc0luQXJlYVF1ZXJ5KTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoRHJhd1NlbGVjdGlvbkFyZWFDb21tYW5kKTtcbiAgICB0aGlzLnJlY29yZFN1YmplY3QoQ2FuY2VsRmVhdHVyZU1vZGlmaWNhdGlvbkNvbW1hbmQpO1xuICAgIHRoaXMucmVjb3JkU3ViamVjdChNb2RpZnlGZWF0dXJlQ29tbWFuZCk7XG4gICAgdGhpcy5yZWNvcmRTdWJqZWN0KEdldEZlYXR1cmVzSW5Qb2ludFF1ZXJ5KTtcbiAgICB0aGlzLnNldEV4ZWN1dG9ycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFeGVjdXRvcnMoKSB7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihGaWx0ZXJGZWF0dXJlc0luQXJlYUV4ZWN1dG9yLCAoZSkgPT4gRmVhdHVyZVNlcnZpY2UuZmlsdGVyRmVhdHVyZXNJbkFyZWEoZSkpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoRmlsdGVyRmVhdHVyZXNJblBvaW50RXhlY3V0b3IsIChlKSA9PiBGZWF0dXJlU2VydmljZS5maWx0ZXJGZWF0dXJlc0luUG9pbnQoZSkpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoQ2FsY3VsYXRlQXJlYUV4ZWN1dG9yLCAoZSkgPT4gRmVhdHVyZVNlcnZpY2UuY2FsY3VsYXRlQXJlYShlLnBvbHlnb24/LmZlYXR1cmU/LmdldEdlb21ldHJ5KCkpKTtcbiAgICB0aGlzLnJlY29yZEV4ZWN1dG9yKFBvbHlnb25TZWxmSW50ZXJzZWN0aW9uRXhlY3V0b3IsIChlKSA9PlxuICAgICAgRmVhdHVyZVNlcnZpY2UucG9seWdvblNlbGZJbnRlcnNlY3RzKGUucG9seWdvbi5mZWF0dXJlKSxcbiAgICApO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2VuZXJhdGVEcmF3RXhlY3V0b3IsIChlKSA9PiBEcmF3aW5nR2VuZXJhdGlvblNlcnZpY2UuZ2V0RHJhdyhlKSk7XG4gICAgdGhpcy5yZWNvcmRFeGVjdXRvcihHZW5lcmF0ZVpvb21Db250cm9sRXhlY3V0b3IsIChlKSA9PiBab29tQ29udHJvbEZhY3RvcnkuYnVpbGQoZS5zZXR0aW5ncykpO1xuICAgIHRoaXMucmVjb3JkRXhlY3V0b3IoR2V0TWFwUG9zaXRpb25FeGVjdXRvciwgKCkgPT4gdGhpcy5zdGF0ZS5nZXRNYXBQb3NpdGlvbigpKTtcbiAgfVxufVxuIl19
@@ -3,7 +3,7 @@ import { Component, Injectable, ChangeDetectionStrategy, Input, ViewChild, NgMod
3
3
  import * as i4 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { Feature, Collection } from 'ol';
6
- import { Point } from 'ol/geom';
6
+ import { Point, LineString } from 'ol/geom';
7
7
  import { GeoJSON, WKT } from 'ol/format';
8
8
  import { getCenter, createEmpty, extend } from 'ol/extent';
9
9
  import Polygon, { circular, fromExtent } from 'ol/geom/Polygon';
@@ -627,6 +627,14 @@ class GetMapPositionExecutor extends PostboyExecutor {
627
627
  }
628
628
  GetMapPositionExecutor.ID = '52c95689-d09b-4082-ba58-9183ea96a213';
629
629
 
630
+ class PolygonSelfIntersectionExecutor extends PostboyGenericMessage {
631
+ constructor(polygon) {
632
+ super();
633
+ this.polygon = polygon;
634
+ }
635
+ }
636
+ PolygonSelfIntersectionExecutor.ID = 'a4ef116d-fe40-4e92-9d4a-653f8b398c62';
637
+
630
638
  /**
631
639
  * Class representing a query to get features within a specified geographical area.
632
640
  * The query optionally takes a set of layer names to ignore during the operation.
@@ -764,6 +772,20 @@ class FeatureService {
764
772
  return 0;
765
773
  return Sphere.getArea(g, { projection: 'EPSG:4326' });
766
774
  }
775
+ static polygonSelfIntersects(feature) {
776
+ if (feature.getGeometry().getType() !== 'Polygon')
777
+ return false;
778
+ let intersections = 0;
779
+ const segments = FeatureService.getSegmentsFromCoordinates(feature.getGeometry());
780
+ for (let i = 0; i < segments.length; i++) {
781
+ for (let z = i + 1; z < segments.length; z++) {
782
+ if (!intersections && this.segmentIntersection(segments[i].getCoordinates(), segments[z].getCoordinates())) {
783
+ intersections++;
784
+ }
785
+ }
786
+ }
787
+ return intersections !== 0;
788
+ }
767
789
  static booleanIntersects(g1, g2) {
768
790
  if (g2.getType() === 'Point')
769
791
  return g1.intersectsCoordinate(g2.getCoordinates());
@@ -773,6 +795,43 @@ class FeatureService {
773
795
  return g1.intersectsCoordinate(g2.getInteriorPoint().getCoordinates());
774
796
  return false;
775
797
  }
798
+ static getSegmentsFromCoordinates(geom) {
799
+ if (!geom)
800
+ return [];
801
+ const coords = geom.getCoordinates();
802
+ const line = new LineString(coords[0]);
803
+ const segments = [];
804
+ line.forEachSegment((s1, s2) => {
805
+ const l = new LineString([s1, s2]);
806
+ l.scale(0.999); // bug of the OL, as I see
807
+ segments.push(l);
808
+ });
809
+ return segments;
810
+ }
811
+ static segmentIntersection(s1, s2) {
812
+ const a = s1[0], b = s1[1], c = s2[0], d = s2[1];
813
+ const o1 = this.orientation(a, b, c);
814
+ const o2 = this.orientation(a, b, d);
815
+ const o3 = this.orientation(c, d, a);
816
+ const o4 = this.orientation(c, d, b);
817
+ return ((o1 != o2 && o3 != o4) ||
818
+ (o1 == 0 && this.onSegment(a, d, b)) ||
819
+ (o2 == 0 && this.onSegment(a, d, b)) ||
820
+ (o3 == 0 && this.onSegment(d, a, d)) ||
821
+ (o4 == 0 && this.onSegment(d, b, d)));
822
+ }
823
+ static orientation(p, q, r) {
824
+ const val = (q[1] - p[1]) * (r[0] - q[0]) - (q[0] - p[0]) * (r[1] - q[1]);
825
+ if (val == 0)
826
+ return 0; // collinear
827
+ return val > 0 ? 1 : 2; // clock or counterclock wise
828
+ }
829
+ static onSegment(p, q, r) {
830
+ return (q[0] <= (p[0] > r[0] ? p[0] : r[0]) &&
831
+ q[0] >= (p[0] < r[0] ? p[0] : r[0]) &&
832
+ q[1] <= (p[1] > r[1] ? p[1] : r[1]) &&
833
+ q[1] >= (p[1] < r[1] ? p[1] : r[1]));
834
+ }
776
835
  }
777
836
 
778
837
  class GenerateDrawExecutor extends PostboyExecutor {
@@ -1320,6 +1379,7 @@ class MessageRegistratorService extends PostboyAbstractRegistrator {
1320
1379
  this.recordExecutor(FilterFeaturesInAreaExecutor, (e) => FeatureService.filterFeaturesInArea(e));
1321
1380
  this.recordExecutor(FilterFeaturesInPointExecutor, (e) => FeatureService.filterFeaturesInPoint(e));
1322
1381
  this.recordExecutor(CalculateAreaExecutor, (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()); });
1382
+ this.recordExecutor(PolygonSelfIntersectionExecutor, (e) => FeatureService.polygonSelfIntersects(e.polygon.feature));
1323
1383
  this.recordExecutor(GenerateDrawExecutor, (e) => DrawingGenerationService.getDraw(e));
1324
1384
  this.recordExecutor(GenerateZoomControlExecutor, (e) => ZoomControlFactory.build(e.settings));
1325
1385
  this.recordExecutor(GetMapPositionExecutor, () => this.state.getMapPosition());
@@ -2794,5 +2854,5 @@ class StringifyFeatureHelper {
2794
2854
  * Generated bundle index. Do not edit.
2795
2855
  */
2796
2856
 
2797
- export { AddControlCommand, CalculateAreaExecutor, CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, FilterFeaturesInAreaExecutor, FilterFeaturesInPointExecutor, FitToFeaturesCommand, FitToPolygonsCommand, GetFeaturesInAreaQuery, GetFeaturesInPointQuery, GetMapPositionExecutor, MapClickEvent, MapConstants, MapControl, MapControlZoomComponent, MapFeatureHoveredEvent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPointerMoveEvent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, RemoveControlCommand, SetMapCenterCommand, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings, ZoomControlSettings };
2857
+ export { AddControlCommand, CalculateAreaExecutor, CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, FilterFeaturesInAreaExecutor, FilterFeaturesInPointExecutor, FitToFeaturesCommand, FitToPolygonsCommand, GetFeaturesInAreaQuery, GetFeaturesInPointQuery, GetMapPositionExecutor, MapClickEvent, MapConstants, MapControl, MapControlZoomComponent, MapFeatureHoveredEvent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPointerMoveEvent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonSelfIntersectionExecutor, PolygonStyleHelper, PolygonsComponent, RemoveControlCommand, SetMapCenterCommand, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings, ZoomControlSettings };
2798
2858
  //# sourceMappingURL=maps-components-src-map.mjs.map