@acorex/cdk 18.10.8 → 18.10.10

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.
@@ -1,3 +1,2 @@
1
1
  export * from './map.class';
2
- export * from './map.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9tYXAvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXAuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAuc2VydmljZSc7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9tYXAvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXAuY2xhc3MnO1xuIl19
@@ -1,22 +1,40 @@
1
- import { EventEmitter } from '@angular/core';
2
- import * as L from 'leaflet';
3
- import 'leaflet-draw';
4
- import 'leaflet.locatecontrol';
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
5
3
  export class AXLeafletService {
6
- constructor(mapElement, location, zoom = 13) {
7
- this.drawnItems = new L.FeatureGroup();
8
- this.eventHandlers = {};
4
+ constructor() {
9
5
  this.onMarkerChanged = new EventEmitter();
10
6
  this.onMarkerAdded = new EventEmitter();
11
7
  this.onLocationFound = new EventEmitter();
12
- L.Icon.Default.imagePath = 'https://unpkg.com/leaflet@1.7.1/dist/images/';
13
- const map = L.map(mapElement).setView([location.latitude, location.longitude], zoom);
14
- L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
8
+ }
9
+ async loadLeaflet() {
10
+ this.L = await import('leaflet');
11
+ await import('leaflet-draw');
12
+ await import('leaflet.locatecontrol');
13
+ }
14
+ async initMap(mapElement, location, zoom = 13) {
15
+ await this.loadLeaflet();
16
+ this.L.Icon.Default.imagePath = 'https://unpkg.com/leaflet@1.7.1/dist/images/';
17
+ const map = this.L.map(mapElement).setView([location.latitude, location.longitude], zoom);
18
+ this.L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
15
19
  maxZoom: 18,
16
20
  attribution: '© ACoreX',
17
21
  }).addTo(map);
22
+ this.drawnItems = new this.L.FeatureGroup();
18
23
  this.drawnItems.addTo(map);
19
24
  this.map = map;
25
+ // let holdTimer;
26
+ // const holdDuration = 1000;
27
+ // map.on('mousedown', (e) => {
28
+ // holdTimer = setTimeout(() => {
29
+ // this.L.marker(e.latlng).addTo(map);
30
+ // }, holdDuration);
31
+ // });
32
+ // map.on('mouseup', function () {
33
+ // clearTimeout(holdTimer);
34
+ // });
35
+ // map.on('mouseleave', function () {
36
+ // clearTimeout(holdTimer);
37
+ // });
20
38
  }
21
39
  getMap() {
22
40
  return this.map;
@@ -45,14 +63,14 @@ export class AXLeafletService {
45
63
  addMarker(locations) {
46
64
  const locationsArray = Array.isArray(locations) ? locations : [locations];
47
65
  locationsArray.forEach((location) => {
48
- L.marker([location.latitude, location.longitude]).addTo(this.drawnItems);
66
+ this.L.marker([location.latitude, location.longitude]).addTo(this.drawnItems);
49
67
  this.onMarkerAdded.emit(location);
50
68
  });
51
69
  }
52
70
  getMarkers() {
53
71
  return this.drawnItems
54
72
  .getLayers()
55
- .filter((layer) => layer instanceof L.Marker)
73
+ .filter((layer) => layer instanceof this.L.Marker)
56
74
  .map((marker) => {
57
75
  const latLng = marker.getLatLng();
58
76
  return {
@@ -61,43 +79,79 @@ export class AXLeafletService {
61
79
  };
62
80
  });
63
81
  }
64
- addDrawControl(position = 'topleft') {
82
+ addDrawControl(position = 'topleft', maxMarkers = 1) {
83
+ if (this.drawControl) {
84
+ this.map.removeControl(this.drawControl);
85
+ this.drawnItems.clearLayers();
86
+ this.drawControl = undefined;
87
+ }
65
88
  if (this.map) {
66
- const drawControl = new L.Control.Draw({
67
- position: position,
68
- edit: {
69
- featureGroup: this.drawnItems,
70
- },
71
- draw: {
72
- polygon: false,
73
- polyline: false,
74
- rectangle: false,
75
- circle: false,
76
- circlemarker: false,
77
- },
78
- });
79
- this.drawControl = drawControl;
80
- this.map.addControl(drawControl);
89
+ const createDrawControl = () => {
90
+ return new this.L.Control.Draw({
91
+ position: position,
92
+ edit: {
93
+ featureGroup: this.drawnItems,
94
+ },
95
+ draw: {
96
+ marker: this.drawnItems.getLayers().length < maxMarkers,
97
+ polygon: false,
98
+ polyline: false,
99
+ rectangle: false,
100
+ circle: false,
101
+ circlemarker: false,
102
+ },
103
+ });
104
+ };
105
+ this.drawControl = createDrawControl();
106
+ this.map.addControl(this.drawControl);
81
107
  const onCreated = (event) => {
82
108
  const layer = event.layer;
83
109
  this.drawnItems.addLayer(layer);
84
110
  const latLng = layer.getLatLng();
85
111
  this.onMarkerAdded.emit({ latitude: latLng.lat, longitude: latLng.lng });
112
+ if (this.drawnItems.getLayers().length >= maxMarkers) {
113
+ this.map.removeControl(this.drawControl);
114
+ this.drawControl = new this.L.Control.Draw({
115
+ position: position,
116
+ edit: {
117
+ featureGroup: this.drawnItems,
118
+ },
119
+ draw: {
120
+ marker: false,
121
+ polygon: false,
122
+ polyline: false,
123
+ rectangle: false,
124
+ circle: false,
125
+ circlemarker: false,
126
+ },
127
+ });
128
+ this.map.addControl(this.drawControl);
129
+ }
130
+ };
131
+ const onDeleted = () => {
132
+ this.onMarkerChanged.emit(this.getMarkers());
133
+ if (this.drawnItems.getLayers().length < maxMarkers) {
134
+ this.map.removeControl(this.drawControl);
135
+ this.drawControl = createDrawControl();
136
+ this.map.addControl(this.drawControl);
137
+ }
86
138
  };
87
- const onDeleted = () => this.onMarkerChanged.emit(this.getMarkers());
88
139
  const onEdited = () => this.onMarkerChanged.emit(this.getMarkers());
89
- // Save handlers for later removal
90
- this.eventHandlers[L.Draw.Event.CREATED] = [onCreated];
91
- this.eventHandlers[L.Draw.Event.DELETED] = [onDeleted];
92
- this.eventHandlers[L.Draw.Event.EDITED] = [onEdited];
93
- this.map.on(L.Draw.Event.CREATED, onCreated);
94
- this.map.on(L.Draw.Event.DELETED, onDeleted);
95
- this.map.on(L.Draw.Event.EDITED, onEdited);
140
+ this.map.off('draw:created');
141
+ this.map.off('draw:deleted');
142
+ this.map.off('draw:edited');
143
+ this.map.on('draw:created', onCreated);
144
+ this.map.on('draw:deleted', onDeleted);
145
+ this.map.on('draw:edited', onEdited);
96
146
  }
97
147
  }
98
148
  addLocateControl(position = 'bottomright') {
149
+ if (this.locateControl) {
150
+ this.map.removeControl(this.locateControl);
151
+ this.locateControl = undefined;
152
+ }
99
153
  if (this.map) {
100
- const locateControl = L.control
154
+ const locateControl = this.L.control
101
155
  .locate({
102
156
  position: position,
103
157
  flyTo: true,
@@ -124,41 +178,35 @@ export class AXLeafletService {
124
178
  };
125
179
  this.onLocationFound.emit(location);
126
180
  };
127
- this.eventHandlers['locationfound'] = [onLocationFound];
128
181
  this.map.on('locationfound', onLocationFound);
129
182
  }
130
183
  }
131
184
  removeDrawControl() {
132
- if (this.map && this.drawControl) {
185
+ if (this.drawControl) {
133
186
  this.map.removeControl(this.drawControl);
134
- this.drawnItems.clearLayers();
135
- this.removeEventHandlers([L.Draw.Event.CREATED, L.Draw.Event.DELETED, L.Draw.Event.EDITED]);
136
187
  this.drawControl = undefined;
137
188
  }
189
+ if (this.drawnItems) {
190
+ this.drawnItems.clearLayers();
191
+ }
138
192
  }
139
193
  removeLocateControl() {
140
194
  if (this.map && this.locateControl) {
141
195
  this.map.removeControl(this.locateControl);
142
- this.removeEventHandlers(['locationfound']);
143
196
  this.locateControl = undefined;
144
197
  }
145
198
  }
146
- removeEventHandlers(events) {
147
- events.forEach((event) => {
148
- const handlers = this.eventHandlers[event];
149
- if (handlers && this.map) {
150
- handlers.forEach((handler) => this.map?.off(event, handler));
151
- delete this.eventHandlers[event];
152
- }
153
- });
154
- }
155
199
  destroyMap() {
156
200
  if (this.map) {
157
201
  this.map.off();
158
- this.removeEventHandlers(Object.keys(this.eventHandlers));
159
202
  this.map.remove();
160
203
  this.map = undefined;
161
204
  }
162
205
  }
206
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
207
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletService }); }
163
208
  }
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvbWFwL3NyYy9tYXAuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLGNBQWMsQ0FBQztBQUN0QixPQUFPLHVCQUF1QixDQUFDO0FBVS9CLE1BQU0sT0FBTyxnQkFBZ0I7SUFXM0IsWUFBWSxVQUF1QixFQUFFLFFBQXVCLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFQL0QsZUFBVSxHQUFtQixJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRCxrQkFBYSxHQUE2QixFQUFFLENBQUM7UUFFckQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ2xELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFHbEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLDhDQUE4QyxDQUFDO1FBRTFFLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckYsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxvREFBb0QsRUFBRTtZQUNoRSxPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsRUFBRSxVQUFVO1NBQ3hCLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFZCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxHQUFHLEdB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LENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBZ0I7UUFDMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN6QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDN0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdsZWFmbGV0LWRyYXcnO1xuaW1wb3J0ICdsZWFmbGV0LmxvY2F0ZWNvbnRyb2wnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYTWFwTG9jYXRpb24ge1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xuICB0aXRsZT86IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIEFYTWFwQ29udHJvbFBsYWNlID0gJ3RvcGxlZnQnIHwgJ3RvcHJpZ2h0JyB8ICdib3R0b21sZWZ0JyB8ICdib3R0b21yaWdodCc7XG5cbmV4cG9ydCBjbGFzcyBBWExlYWZsZXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtYXA/OiBMLk1hcDtcbiAgcHJpdmF0ZSBkcmF3Q29udHJvbD86IEwuQ29udHJvbC5EcmF3O1xuICBwcml2YXRlIGxvY2F0ZUNvbnRyb2w/OiBMLkNvbnRyb2wuTG9jYXRlO1xuICBwcml2YXRlIGRyYXduSXRlbXM6IEwuRmVhdHVyZUdyb3VwID0gbmV3IEwuRmVhdHVyZUdyb3VwKCk7XG4gIHByaXZhdGUgZXZlbnRIYW5kbGVyczogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB9ID0ge307XG5cbiAgb25NYXJrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxBWE1hcExvY2F0aW9uW10+KCk7XG4gIG9uTWFya2VyQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFYTWFwTG9jYXRpb24+KCk7XG4gIG9uTG9jYXRpb25Gb3VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8QVhNYXBMb2NhdGlvbj4oKTtcblxuICBjb25zdHJ1Y3RvcihtYXBFbGVtZW50OiBIVE1MRWxlbWVudCwgbG9jYXRpb246IEFYTWFwTG9jYXRpb24sIHpvb20gPSAxMykge1xuICAgIEwuSWNvbi5EZWZhdWx0LmltYWdlUGF0aCA9ICdodHRwczovL3VucGtnLmNvbS9sZWFmbGV0QDEuNy4xL2Rpc3QvaW1hZ2VzLyc7XG5cbiAgICBjb25zdCBtYXAgPSBMLm1hcChtYXBFbGVtZW50KS5zZXRWaWV3KFtsb2NhdGlvbi5sYXRpdHVkZSwgbG9jYXRpb24ubG9uZ2l0dWRlXSwgem9vbSk7XG4gICAgTC50aWxlTGF5ZXIoJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywge1xuICAgICAgbWF4Wm9vbTogMTgsXG4gICAgICBhdHRyaWJ1dGlvbjogJ8KpIEFDb3JlWCcsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIHRoaXMuZHJhd25JdGVtcy5hZGRUbyhtYXApO1xuICAgIHRoaXMubWFwID0gbWFwO1xuICB9XG5cbiAgZ2V0TWFwKCk6IEwuTWFwIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5tYXA7XG4gIH1cblxuICBzZXRab29tTGV2ZWwoem9vbTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5tYXA/LnNldFpvb20oem9vbSk7XG4gIH1cblxuICBzZXRDZW50ZXIobG9jYXRpb246IEFYTWFwTG9jYXRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXAgJiYgbG9jYXRpb24pIHtcbiAgICAgIHRoaXMubWFwLnNldFZpZXcoW2xvY2F0aW9uLmxhdGl0dWRlLCBsb2NhdGlvbi5sb25naXR1ZGVdLCB0aGlzLm1hcC5nZXRab29tKCkpO1xuICAgIH1cbiAgfVxuXG4gIGZseVRvKGxvY2F0aW9uOiBBWE1hcExvY2F0aW9uLCB6b29tPzogbnVtYmVyLCBzZXRNYXJrZXIgPSBmYWxzZSwgZHVyYXRpb24gPSAxLjApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXAgJiYgbG9jYXRpb24pIHtcbiAgICAgIHRoaXMubWFwLmZseVRvKFtsb2NhdGlvbi5sYXRpdHVkZSwgbG9jYXRpb24ubG9uZ2l0dWRlXSwgem9vbSB8fCB0aGlzLm1hcC5nZXRab29tKCksIHtcbiAgICAgICAgYW5pbWF0ZTogdHJ1ZSxcbiAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm1hcC5vbmNlKCdtb3ZlZW5kJywgKCkgPT4ge1xuICAgICAgICBpZiAoc2V0TWFya2VyKSB7XG4gICAgICAgICAgdGhpcy5hZGRNYXJrZXIobG9jYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhZGRNYXJrZXIobG9jYXRpb25zOiBBWE1hcExvY2F0aW9uIHwgQVhNYXBMb2NhdGlvbltdKTogdm9pZCB7XG4gICAgY29uc3QgbG9jYXRpb25zQXJyYXkgPSBBcnJheS5pc0FycmF5KGxvY2F0aW9ucykgPyBsb2NhdGlvbnMgOiBbbG9jYXRpb25zXTtcbiAgICBsb2NhdGlvbnNBcnJheS5mb3JFYWNoKChsb2NhdGlvbikgPT4ge1xuICAgICAgTC5tYXJrZXIoW2xvY2F0aW9uLmxhdGl0dWRlLCBsb2NhdGlvbi5sb25naXR1ZGVdKS5hZGRUbyh0aGlzLmRyYXduSXRlbXMpO1xuICAgICAgdGhpcy5vbk1hcmtlckFkZGVkLmVtaXQobG9jYXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWFya2VycygpOiBBWE1hcExvY2F0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmRyYXduSXRlbXNcbiAgICAgIC5nZXRMYXllcnMoKVxuICAgICAgLmZpbHRlcigobGF5ZXIpID0+IGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIpXG4gICAgICAubWFwKChtYXJrZXIpID0+IHtcbiAgICAgICAgY29uc3QgbGF0TG5nID0gKG1hcmtlciBhcyBMLk1hcmtlcikuZ2V0TGF0TG5nKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGF0aXR1ZGU6IGxhdExuZy5sYXQsXG4gICAgICAgICAgbG9uZ2l0dWRlOiBsYXRMbmcubG5nLFxuICAgICAgICB9IGFzIEFYTWFwTG9jYXRpb247XG4gICAgICB9KTtcbiAgfVxuXG4gIGFkZERyYXdDb250cm9sKHBvc2l0aW9uOiBBWE1hcENvbnRyb2xQbGFjZSA9ICd0b3BsZWZ0Jyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgY29uc3QgZHJhd0NvbnRyb2wgPSBuZXcgTC5Db250cm9sLkRyYXcoe1xuICAgICAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgIGVkaXQ6IHtcbiAgICAgICAgICBmZWF0dXJlR3JvdXA6IHRoaXMuZHJhd25JdGVtcyxcbiAgICAgICAgfSxcbiAgICAgICAgZHJhdzoge1xuICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgIHBvbHlsaW5lOiBmYWxzZSxcbiAgICAgICAgICByZWN0YW5nbGU6IGZhbHNlLFxuICAgICAgICAgIGNpcmNsZTogZmFsc2UsXG4gICAgICAgICAgY2lyY2xlbWFya2VyOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmRyYXdDb250cm9sID0gZHJhd0NvbnRyb2w7XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKGRyYXdDb250cm9sKTtcblxuICAgICAgY29uc3Qgb25DcmVhdGVkID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgbGF5ZXIgPSBldmVudC5sYXllcjtcbiAgICAgICAgdGhpcy5kcmF3bkl0ZW1zLmFkZExheWVyKGxheWVyKTtcbiAgICAgICAgY29uc3QgbGF0TG5nID0gKGxheWVyIGFzIEwuTWFya2VyKS5nZXRMYXRMbmcoKTtcbiAgICAgICAgdGhpcy5vbk1hcmtlckFkZGVkLmVtaXQoeyBsYXRpdHVkZTogbGF0TG5nLmxhdCwgbG9uZ2l0dWRlOiBsYXRMbmcubG5nIH0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25EZWxldGVkID0gKCkgPT4gdGhpcy5vbk1hcmtlckNoYW5nZWQuZW1pdCh0aGlzLmdldE1hcmtlcnMoKSk7XG4gICAgICBjb25zdCBvbkVkaXRlZCA9ICgpID0+IHRoaXMub25NYXJrZXJDaGFuZ2VkLmVtaXQodGhpcy5nZXRNYXJrZXJzKCkpO1xuXG4gICAgICAvLyBTYXZlIGhhbmRsZXJzIGZvciBsYXRlciByZW1vdmFsXG4gICAgICB0aGlzLmV2ZW50SGFuZGxlcnNbTC5EcmF3LkV2ZW50LkNSRUFURURdID0gW29uQ3JlYXRlZF07XG4gICAgICB0aGlzLmV2ZW50SGFuZGxlcnNbTC5EcmF3LkV2ZW50LkRFTEVURURdID0gW29uRGVsZXRlZF07XG4gICAgICB0aGlzLmV2ZW50SGFuZGxlcnNbTC5EcmF3LkV2ZW50LkVESVRFRF0gPSBbb25FZGl0ZWRdO1xuXG4gICAgICB0aGlzLm1hcC5vbihMLkRyYXcuRXZlbnQuQ1JFQVRFRCwgb25DcmVhdGVkKTtcbiAgICAgIHRoaXMubWFwLm9uKEwuRHJhdy5FdmVudC5ERUxFVEVELCBvbkRlbGV0ZWQpO1xuICAgICAgdGhpcy5tYXAub24oTC5EcmF3LkV2ZW50LkVESVRFRCwgb25FZGl0ZWQpO1xuICAgIH1cbiAgfVxuXG4gIGFkZExvY2F0ZUNvbnRyb2wocG9zaXRpb246IEFYTWFwQ29udHJvbFBsYWNlID0gJ2JvdHRvbXJpZ2h0Jyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgY29uc3QgbG9jYXRlQ29udHJvbCA9IEwuY29udHJvbFxuICAgICAgICAubG9jYXRlKHtcbiAgICAgICAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgICAgZmx5VG86IHRydWUsXG4gICAgICAgICAgc2V0VmlldzogJ3VudGlsUGFuT3Jab29tJyxcbiAgICAgICAgICBzaG93UG9wdXA6IHRydWUsXG4gICAgICAgICAgb25Mb2NhdGlvbkVycm9yOiAoZSkgPT4gYWxlcnQoZS5tZXNzYWdlKSxcbiAgICAgICAgICBvbkxvY2F0aW9uT3V0c2lkZU1hcEJvdW5kczogKGNvbnRyb2wpID0+IGNvbnRyb2wuc3RvcCgpLFxuICAgICAgICAgIGxvY2F0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIGVuYWJsZUhpZ2hBY2N1cmFjeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0cmluZ3M6IHtcbiAgICAgICAgICAgIHRpdGxlOiAnU2hvdyBteSBsb2NhdGlvbicsXG4gICAgICAgICAgICBwb3B1cDogJ1lvdSBhcmUgd2l0aGluIHtkaXN0YW5jZX0gbWV0ZXJzIGZyb20gdGhpcyBwb2ludCcsXG4gICAgICAgICAgICBvdXRzaWRlTWFwQm91bmRzTXNnOiAnWW91IHNlZW0gdG8gYmUgb3V0c2lkZSB0aGUgbWFwIGJvdW5kcycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgLmFkZFRvKHRoaXMubWFwKTtcblxuICAgICAgdGhpcy5sb2NhdGVDb250cm9sID0gbG9jYXRlQ29udHJvbDtcblxuICAgICAgY29uc3Qgb25Mb2NhdGlvbkZvdW5kID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgbG9jYXRpb246IEFYTWFwTG9jYXRpb24gPSB7XG4gICAgICAgICAgbGF0aXR1ZGU6IGV2ZW50LmxhdGl0dWRlLFxuICAgICAgICAgIGxvbmdpdHVkZTogZXZlbnQubG9uZ2l0dWRlLFxuICAgICAgICAgIHByZWNpc2lvbjogZXZlbnQuYWNjdXJhY3ksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25Mb2NhdGlvbkZvdW5kLmVtaXQobG9jYXRpb24pO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5ldmVudEhhbmRsZXJzWydsb2NhdGlvbmZvdW5kJ10gPSBbb25Mb2NhdGlvbkZvdW5kXTtcblxuICAgICAgdGhpcy5tYXAub24oJ2xvY2F0aW9uZm91bmQnLCBvbkxvY2F0aW9uRm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZURyYXdDb250cm9sKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCAmJiB0aGlzLmRyYXdDb250cm9sKSB7XG4gICAgICB0aGlzLm1hcC5yZW1vdmVDb250cm9sKHRoaXMuZHJhd0NvbnRyb2wpO1xuICAgICAgdGhpcy5kcmF3bkl0ZW1zLmNsZWFyTGF5ZXJzKCk7XG4gICAgICB0aGlzLnJlbW92ZUV2ZW50SGFuZGxlcnMoW0wuRHJhdy5FdmVudC5DUkVBVEVELCBMLkRyYXcuRXZlbnQuREVMRVRFRCwgTC5EcmF3LkV2ZW50LkVESVRFRF0pO1xuICAgICAgdGhpcy5kcmF3Q29udHJvbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICByZW1vdmVMb2NhdGVDb250cm9sKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCAmJiB0aGlzLmxvY2F0ZUNvbnRyb2wpIHtcbiAgICAgIHRoaXMubWFwLnJlbW92ZUNvbnRyb2wodGhpcy5sb2NhdGVDb250cm9sKTtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRIYW5kbGVycyhbJ2xvY2F0aW9uZm91bmQnXSk7XG4gICAgICB0aGlzLmxvY2F0ZUNvbnRyb2wgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFdmVudEhhbmRsZXJzKGV2ZW50czogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBldmVudHMuZm9yRWFjaCgoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5ldmVudEhhbmRsZXJzW2V2ZW50XTtcbiAgICAgIGlmIChoYW5kbGVycyAmJiB0aGlzLm1hcCkge1xuICAgICAgICBoYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiB0aGlzLm1hcD8ub2ZmKGV2ZW50LCBoYW5kbGVyKSk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmV2ZW50SGFuZGxlcnNbZXZlbnRdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVzdHJveU1hcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXApIHtcbiAgICAgIHRoaXMubWFwLm9mZigpO1xuICAgICAgdGhpcy5yZW1vdmVFdmVudEhhbmRsZXJzKE9iamVjdC5rZXlzKHRoaXMuZXZlbnRIYW5kbGVycykpO1xuICAgICAgdGhpcy5tYXAucmVtb3ZlKCk7XG4gICAgICB0aGlzLm1hcCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletService, decorators: [{
210
+ type: Injectable
211
+ }] });
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvbWFwL3NyYy9tYXAuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXpELE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFRRSxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ3RELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFDbEQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztLQWlPckQ7SUEvTkMsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBdUIsRUFBRSxRQUF1QixFQUFFLElBQUksR0FBRyxFQUFFO1FBQ3ZFLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsOENBQThDLENBQUM7UUFFL0UsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsb0RBQW9ELEVBQUU7WUFDckUsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsVUFBVTtTQUN4QixDQUFD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LENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzs4R0F6T1UsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWE1hcExvY2F0aW9uIHtcbiAgbGF0aXR1ZGU6IG51bWJlcjtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIHByZWNpc2lvbj86IG51bWJlcjtcbiAgdGl0bGU/OiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBBWE1hcENvbnRyb2xQbGFjZSA9ICd0b3BsZWZ0JyB8ICd0b3ByaWdodCcgfCAnYm90dG9tbGVmdCcgfCAnYm90dG9tcmlnaHQnO1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTGVhZmxldFNlcnZpY2Uge1xuICBMOiBhbnk7XG4gIHByaXZhdGUgbWFwPzogTC5NYXA7XG4gIHByaXZhdGUgZHJhd0NvbnRyb2w/OiBMLkNvbnRyb2wuRHJhdztcbiAgcHJpdmF0ZSBsb2NhdGVDb250cm9sPzogTC5Db250cm9sLkxvY2F0ZTtcbiAgcHJpdmF0ZSBkcmF3bkl0ZW1zOiBMLkZlYXR1cmVHcm91cDtcblxuICBvbk1hcmtlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFYTWFwTG9jYXRpb25bXT4oKTtcbiAgb25NYXJrZXJBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QVhNYXBMb2NhdGlvbj4oKTtcbiAgb25Mb2NhdGlvbkZvdW5kID0gbmV3IEV2ZW50RW1pdHRlcjxBWE1hcExvY2F0aW9uPigpO1xuXG4gIGFzeW5jIGxvYWRMZWFmbGV0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuTCA9IGF3YWl0IGltcG9ydCgnbGVhZmxldCcpO1xuICAgIGF3YWl0IGltcG9ydCgnbGVhZmxldC1kcmF3Jyk7XG4gICAgYXdhaXQgaW1wb3J0KCdsZWFmbGV0LmxvY2F0ZWNvbnRyb2wnKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRNYXAobWFwRWxlbWVudDogSFRNTEVsZW1lbnQsIGxvY2F0aW9uOiBBWE1hcExvY2F0aW9uLCB6b29tID0gMTMpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRMZWFmbGV0KCk7XG5cbiAgICB0aGlzLkwuSWNvbi5EZWZhdWx0LmltYWdlUGF0aCA9ICdodHRwczovL3VucGtnLmNvbS9sZWFmbGV0QDEuNy4xL2Rpc3QvaW1hZ2VzLyc7XG5cbiAgICBjb25zdCBtYXAgPSB0aGlzLkwubWFwKG1hcEVsZW1lbnQpLnNldFZpZXcoW2xvY2F0aW9uLmxhdGl0dWRlLCBsb2NhdGlvbi5sb25naXR1ZGVdLCB6b29tKTtcbiAgICB0aGlzLkwudGlsZUxheWVyKCdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsIHtcbiAgICAgIG1heFpvb206IDE4LFxuICAgICAgYXR0cmlidXRpb246ICfCqSBBQ29yZVgnLFxuICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgdGhpcy5kcmF3bkl0ZW1zID0gbmV3IHRoaXMuTC5GZWF0dXJlR3JvdXAoKTtcbiAgICB0aGlzLmRyYXduSXRlbXMuYWRkVG8obWFwKTtcbiAgICB0aGlzLm1hcCA9IG1hcDtcblxuICAgIC8vIGxldCBob2xkVGltZXI7XG4gICAgLy8gY29uc3QgaG9sZER1cmF0aW9uID0gMTAwMDtcbiAgICAvLyBtYXAub24oJ21vdXNlZG93bicsIChlKSA9PiB7XG4gICAgLy8gICBob2xkVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAvLyAgICAgdGhpcy5MLm1hcmtlcihlLmxhdGxuZykuYWRkVG8obWFwKTtcbiAgICAvLyAgIH0sIGhvbGREdXJhdGlvbik7XG4gICAgLy8gfSk7XG4gICAgLy8gbWFwLm9uKCdtb3VzZXVwJywgZnVuY3Rpb24gKCkge1xuICAgIC8vICAgY2xlYXJUaW1lb3V0KGhvbGRUaW1lcik7XG4gICAgLy8gfSk7XG4gICAgLy8gbWFwLm9uKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24gKCkge1xuICAgIC8vICAgY2xlYXJUaW1lb3V0KGhvbGRUaW1lcik7XG4gICAgLy8gfSk7XG4gIH1cblxuICBnZXRNYXAoKTogTC5NYXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm1hcDtcbiAgfVxuXG4gIHNldFpvb21MZXZlbCh6b29tOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1hcD8uc2V0Wm9vbSh6b29tKTtcbiAgfVxuXG4gIHNldENlbnRlcihsb2NhdGlvbjogQVhNYXBMb2NhdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCAmJiBsb2NhdGlvbikge1xuICAgICAgdGhpcy5tYXAuc2V0VmlldyhbbG9jYXRpb24ubGF0aXR1ZGUsIGxvY2F0aW9uLmxvbmdpdHVkZV0sIHRoaXMubWFwLmdldFpvb20oKSk7XG4gICAgfVxuICB9XG5cbiAgZmx5VG8obG9jYXRpb246IEFYTWFwTG9jYXRpb24sIHpvb20/OiBudW1iZXIsIHNldE1hcmtlciA9IGZhbHNlLCBkdXJhdGlvbiA9IDEuMCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCAmJiBsb2NhdGlvbikge1xuICAgICAgdGhpcy5tYXAuZmx5VG8oW2xvY2F0aW9uLmxhdGl0dWRlLCBsb2NhdGlvbi5sb25naXR1ZGVdLCB6b29tIHx8IHRoaXMubWFwLmdldFpvb20oKSwge1xuICAgICAgICBhbmltYXRlOiB0cnVlLFxuICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLm9uY2UoJ21vdmVlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmIChzZXRNYXJrZXIpIHtcbiAgICAgICAgICB0aGlzLmFkZE1hcmtlcihsb2NhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFkZE1hcmtlcihsb2NhdGlvbnM6IEFYTWFwTG9jYXRpb24gfCBBWE1hcExvY2F0aW9uW10pOiB2b2lkIHtcbiAgICBjb25zdCBsb2NhdGlvbnNBcnJheSA9IEFycmF5LmlzQXJyYXkobG9jYXRpb25zKSA/IGxvY2F0aW9ucyA6IFtsb2NhdGlvbnNdO1xuICAgIGxvY2F0aW9uc0FycmF5LmZvckVhY2goKGxvY2F0aW9uKSA9PiB7XG4gICAgICB0aGlzLkwubWFya2VyKFtsb2NhdGlvbi5sYXRpdHVkZSwgbG9jYXRpb24ubG9uZ2l0dWRlXSkuYWRkVG8odGhpcy5kcmF3bkl0ZW1zKTtcbiAgICAgIHRoaXMub25NYXJrZXJBZGRlZC5lbWl0KGxvY2F0aW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldE1hcmtlcnMoKTogQVhNYXBMb2NhdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5kcmF3bkl0ZW1zXG4gICAgICAuZ2V0TGF5ZXJzKClcbiAgICAgIC5maWx0ZXIoKGxheWVyKSA9PiBsYXllciBpbnN0YW5jZW9mIHRoaXMuTC5NYXJrZXIpXG4gICAgICAubWFwKChtYXJrZXIpID0+IHtcbiAgICAgICAgY29uc3QgbGF0TG5nID0gKG1hcmtlciBhcyBMLk1hcmtlcikuZ2V0TGF0TG5nKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGF0aXR1ZGU6IGxhdExuZy5sYXQsXG4gICAgICAgICAgbG9uZ2l0dWRlOiBsYXRMbmcubG5nLFxuICAgICAgICB9IGFzIEFYTWFwTG9jYXRpb247XG4gICAgICB9KTtcbiAgfVxuXG4gIGFkZERyYXdDb250cm9sKHBvc2l0aW9uOiBBWE1hcENvbnRyb2xQbGFjZSA9ICd0b3BsZWZ0JywgbWF4TWFya2VycyA9IDEpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcmF3Q29udHJvbCkge1xuICAgICAgdGhpcy5tYXAucmVtb3ZlQ29udHJvbCh0aGlzLmRyYXdDb250cm9sKTtcbiAgICAgIHRoaXMuZHJhd25JdGVtcy5jbGVhckxheWVycygpO1xuICAgICAgdGhpcy5kcmF3Q29udHJvbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRoaXMubWFwKSB7XG4gICAgICBjb25zdCBjcmVhdGVEcmF3Q29udHJvbCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyB0aGlzLkwuQ29udHJvbC5EcmF3KHtcbiAgICAgICAgICBwb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgICAgZWRpdDoge1xuICAgICAgICAgICAgZmVhdHVyZUdyb3VwOiB0aGlzLmRyYXduSXRlbXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkcmF3OiB7XG4gICAgICAgICAgICBtYXJrZXI6IHRoaXMuZHJhd25JdGVtcy5nZXRMYXllcnMoKS5sZW5ndGggPCBtYXhNYXJrZXJzLFxuICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICBwb2x5bGluZTogZmFsc2UsXG4gICAgICAgICAgICByZWN0YW5nbGU6IGZhbHNlLFxuICAgICAgICAgICAgY2lyY2xlOiBmYWxzZSxcbiAgICAgICAgICAgIGNpcmNsZW1hcmtlcjogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLmRyYXdDb250cm9sID0gY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wodGhpcy5kcmF3Q29udHJvbCk7XG5cbiAgICAgIGNvbnN0IG9uQ3JlYXRlZCA9IChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGxheWVyID0gZXZlbnQubGF5ZXI7XG4gICAgICAgIHRoaXMuZHJhd25JdGVtcy5hZGRMYXllcihsYXllcik7XG4gICAgICAgIGNvbnN0IGxhdExuZyA9IChsYXllciBhcyBMLk1hcmtlcikuZ2V0TGF0TG5nKCk7XG4gICAgICAgIHRoaXMub25NYXJrZXJBZGRlZC5lbWl0KHsgbGF0aXR1ZGU6IGxhdExuZy5sYXQsIGxvbmdpdHVkZTogbGF0TG5nLmxuZyB9KTtcblxuICAgICAgICBpZiAodGhpcy5kcmF3bkl0ZW1zLmdldExheWVycygpLmxlbmd0aCA+PSBtYXhNYXJrZXJzKSB7XG4gICAgICAgICAgdGhpcy5tYXAucmVtb3ZlQ29udHJvbCh0aGlzLmRyYXdDb250cm9sKTtcbiAgICAgICAgICB0aGlzLmRyYXdDb250cm9sID0gbmV3IHRoaXMuTC5Db250cm9sLkRyYXcoe1xuICAgICAgICAgICAgcG9zaXRpb246IHBvc2l0aW9uLFxuICAgICAgICAgICAgZWRpdDoge1xuICAgICAgICAgICAgICBmZWF0dXJlR3JvdXA6IHRoaXMuZHJhd25JdGVtcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkcmF3OiB7XG4gICAgICAgICAgICAgIG1hcmtlcjogZmFsc2UsXG4gICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICBwb2x5bGluZTogZmFsc2UsXG4gICAgICAgICAgICAgIHJlY3RhbmdsZTogZmFsc2UsXG4gICAgICAgICAgICAgIGNpcmNsZTogZmFsc2UsXG4gICAgICAgICAgICAgIGNpcmNsZW1hcmtlcjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wodGhpcy5kcmF3Q29udHJvbCk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uRGVsZXRlZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5vbk1hcmtlckNoYW5nZWQuZW1pdCh0aGlzLmdldE1hcmtlcnMoKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZHJhd25JdGVtcy5nZXRMYXllcnMoKS5sZW5ndGggPCBtYXhNYXJrZXJzKSB7XG4gICAgICAgICAgdGhpcy5tYXAucmVtb3ZlQ29udHJvbCh0aGlzLmRyYXdDb250cm9sKTtcbiAgICAgICAgICB0aGlzLmRyYXdDb250cm9sID0gY3JlYXRlRHJhd0NvbnRyb2woKTtcbiAgICAgICAgICB0aGlzLm1hcC5hZGRDb250cm9sKHRoaXMuZHJhd0NvbnRyb2wpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkVkaXRlZCA9ICgpID0+IHRoaXMub25NYXJrZXJDaGFuZ2VkLmVtaXQodGhpcy5nZXRNYXJrZXJzKCkpO1xuXG4gICAgICB0aGlzLm1hcC5vZmYoJ2RyYXc6Y3JlYXRlZCcpO1xuICAgICAgdGhpcy5tYXAub2ZmKCdkcmF3OmRlbGV0ZWQnKTtcbiAgICAgIHRoaXMubWFwLm9mZignZHJhdzplZGl0ZWQnKTtcblxuICAgICAgdGhpcy5tYXAub24oJ2RyYXc6Y3JlYXRlZCcsIG9uQ3JlYXRlZCk7XG4gICAgICB0aGlzLm1hcC5vbignZHJhdzpkZWxldGVkJywgb25EZWxldGVkKTtcbiAgICAgIHRoaXMubWFwLm9uKCdkcmF3OmVkaXRlZCcsIG9uRWRpdGVkKTtcbiAgICB9XG4gIH1cblxuICBhZGRMb2NhdGVDb250cm9sKHBvc2l0aW9uOiBBWE1hcENvbnRyb2xQbGFjZSA9ICdib3R0b21yaWdodCcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2NhdGVDb250cm9sKSB7XG4gICAgICB0aGlzLm1hcC5yZW1vdmVDb250cm9sKHRoaXMubG9jYXRlQ29udHJvbCk7XG4gICAgICB0aGlzLmxvY2F0ZUNvbnRyb2wgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgY29uc3QgbG9jYXRlQ29udHJvbCA9IHRoaXMuTC5jb250cm9sXG4gICAgICAgIC5sb2NhdGUoe1xuICAgICAgICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICAgICAgICBmbHlUbzogdHJ1ZSxcbiAgICAgICAgICBzZXRWaWV3OiAndW50aWxQYW5Pclpvb20nLFxuICAgICAgICAgIHNob3dQb3B1cDogdHJ1ZSxcbiAgICAgICAgICBvbkxvY2F0aW9uRXJyb3I6IChlKSA9PiBhbGVydChlLm1lc3NhZ2UpLFxuICAgICAgICAgIG9uTG9jYXRpb25PdXRzaWRlTWFwQm91bmRzOiAoY29udHJvbCkgPT4gY29udHJvbC5zdG9wKCksXG4gICAgICAgICAgbG9jYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgZW5hYmxlSGlnaEFjY3VyYWN5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RyaW5nczoge1xuICAgICAgICAgICAgdGl0bGU6ICdTaG93IG15IGxvY2F0aW9uJyxcbiAgICAgICAgICAgIHBvcHVwOiAnWW91IGFyZSB3aXRoaW4ge2Rpc3RhbmNlfSBtZXRlcnMgZnJvbSB0aGlzIHBvaW50JyxcbiAgICAgICAgICAgIG91dHNpZGVNYXBCb3VuZHNNc2c6ICdZb3Ugc2VlbSB0byBiZSBvdXRzaWRlIHRoZSBtYXAgYm91bmRzJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAuYWRkVG8odGhpcy5tYXApO1xuXG4gICAgICB0aGlzLmxvY2F0ZUNvbnRyb2wgPSBsb2NhdGVDb250cm9sO1xuXG4gICAgICBjb25zdCBvbkxvY2F0aW9uRm91bmQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBsb2NhdGlvbjogQVhNYXBMb2NhdGlvbiA9IHtcbiAgICAgICAgICBsYXRpdHVkZTogZXZlbnQubGF0aXR1ZGUsXG4gICAgICAgICAgbG9uZ2l0dWRlOiBldmVudC5sb25naXR1ZGUsXG4gICAgICAgICAgcHJlY2lzaW9uOiBldmVudC5hY2N1cmFjeSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vbkxvY2F0aW9uRm91bmQuZW1pdChsb2NhdGlvbik7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLm1hcC5vbignbG9jYXRpb25mb3VuZCcsIG9uTG9jYXRpb25Gb3VuZCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlRHJhd0NvbnRyb2woKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJhd0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubWFwLnJlbW92ZUNvbnRyb2wodGhpcy5kcmF3Q29udHJvbCk7XG4gICAgICB0aGlzLmRyYXdDb250cm9sID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5kcmF3bkl0ZW1zKSB7XG4gICAgICB0aGlzLmRyYXduSXRlbXMuY2xlYXJMYXllcnMoKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVMb2NhdGVDb250cm9sKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCAmJiB0aGlzLmxvY2F0ZUNvbnRyb2wpIHtcbiAgICAgIHRoaXMubWFwLnJlbW92ZUNvbnRyb2wodGhpcy5sb2NhdGVDb250cm9sKTtcbiAgICAgIHRoaXMubG9jYXRlQ29udHJvbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95TWFwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgdGhpcy5tYXAub2ZmKCk7XG4gICAgICB0aGlzLm1hcC5yZW1vdmUoKTtcbiAgICAgIHRoaXMubWFwID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,24 +1,41 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Injectable } from '@angular/core';
3
- import * as L from 'leaflet';
4
- import 'leaflet-draw';
5
- import 'leaflet.locatecontrol';
6
3
 
7
4
  class AXLeafletService {
8
- constructor(mapElement, location, zoom = 13) {
9
- this.drawnItems = new L.FeatureGroup();
10
- this.eventHandlers = {};
5
+ constructor() {
11
6
  this.onMarkerChanged = new EventEmitter();
12
7
  this.onMarkerAdded = new EventEmitter();
13
8
  this.onLocationFound = new EventEmitter();
14
- L.Icon.Default.imagePath = 'https://unpkg.com/leaflet@1.7.1/dist/images/';
15
- const map = L.map(mapElement).setView([location.latitude, location.longitude], zoom);
16
- L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
9
+ }
10
+ async loadLeaflet() {
11
+ this.L = await import('leaflet');
12
+ await import('leaflet-draw');
13
+ await import('leaflet.locatecontrol');
14
+ }
15
+ async initMap(mapElement, location, zoom = 13) {
16
+ await this.loadLeaflet();
17
+ this.L.Icon.Default.imagePath = 'https://unpkg.com/leaflet@1.7.1/dist/images/';
18
+ const map = this.L.map(mapElement).setView([location.latitude, location.longitude], zoom);
19
+ this.L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
17
20
  maxZoom: 18,
18
21
  attribution: '© ACoreX',
19
22
  }).addTo(map);
23
+ this.drawnItems = new this.L.FeatureGroup();
20
24
  this.drawnItems.addTo(map);
21
25
  this.map = map;
26
+ // let holdTimer;
27
+ // const holdDuration = 1000;
28
+ // map.on('mousedown', (e) => {
29
+ // holdTimer = setTimeout(() => {
30
+ // this.L.marker(e.latlng).addTo(map);
31
+ // }, holdDuration);
32
+ // });
33
+ // map.on('mouseup', function () {
34
+ // clearTimeout(holdTimer);
35
+ // });
36
+ // map.on('mouseleave', function () {
37
+ // clearTimeout(holdTimer);
38
+ // });
22
39
  }
23
40
  getMap() {
24
41
  return this.map;
@@ -47,14 +64,14 @@ class AXLeafletService {
47
64
  addMarker(locations) {
48
65
  const locationsArray = Array.isArray(locations) ? locations : [locations];
49
66
  locationsArray.forEach((location) => {
50
- L.marker([location.latitude, location.longitude]).addTo(this.drawnItems);
67
+ this.L.marker([location.latitude, location.longitude]).addTo(this.drawnItems);
51
68
  this.onMarkerAdded.emit(location);
52
69
  });
53
70
  }
54
71
  getMarkers() {
55
72
  return this.drawnItems
56
73
  .getLayers()
57
- .filter((layer) => layer instanceof L.Marker)
74
+ .filter((layer) => layer instanceof this.L.Marker)
58
75
  .map((marker) => {
59
76
  const latLng = marker.getLatLng();
60
77
  return {
@@ -63,43 +80,79 @@ class AXLeafletService {
63
80
  };
64
81
  });
65
82
  }
66
- addDrawControl(position = 'topleft') {
83
+ addDrawControl(position = 'topleft', maxMarkers = 1) {
84
+ if (this.drawControl) {
85
+ this.map.removeControl(this.drawControl);
86
+ this.drawnItems.clearLayers();
87
+ this.drawControl = undefined;
88
+ }
67
89
  if (this.map) {
68
- const drawControl = new L.Control.Draw({
69
- position: position,
70
- edit: {
71
- featureGroup: this.drawnItems,
72
- },
73
- draw: {
74
- polygon: false,
75
- polyline: false,
76
- rectangle: false,
77
- circle: false,
78
- circlemarker: false,
79
- },
80
- });
81
- this.drawControl = drawControl;
82
- this.map.addControl(drawControl);
90
+ const createDrawControl = () => {
91
+ return new this.L.Control.Draw({
92
+ position: position,
93
+ edit: {
94
+ featureGroup: this.drawnItems,
95
+ },
96
+ draw: {
97
+ marker: this.drawnItems.getLayers().length < maxMarkers,
98
+ polygon: false,
99
+ polyline: false,
100
+ rectangle: false,
101
+ circle: false,
102
+ circlemarker: false,
103
+ },
104
+ });
105
+ };
106
+ this.drawControl = createDrawControl();
107
+ this.map.addControl(this.drawControl);
83
108
  const onCreated = (event) => {
84
109
  const layer = event.layer;
85
110
  this.drawnItems.addLayer(layer);
86
111
  const latLng = layer.getLatLng();
87
112
  this.onMarkerAdded.emit({ latitude: latLng.lat, longitude: latLng.lng });
113
+ if (this.drawnItems.getLayers().length >= maxMarkers) {
114
+ this.map.removeControl(this.drawControl);
115
+ this.drawControl = new this.L.Control.Draw({
116
+ position: position,
117
+ edit: {
118
+ featureGroup: this.drawnItems,
119
+ },
120
+ draw: {
121
+ marker: false,
122
+ polygon: false,
123
+ polyline: false,
124
+ rectangle: false,
125
+ circle: false,
126
+ circlemarker: false,
127
+ },
128
+ });
129
+ this.map.addControl(this.drawControl);
130
+ }
131
+ };
132
+ const onDeleted = () => {
133
+ this.onMarkerChanged.emit(this.getMarkers());
134
+ if (this.drawnItems.getLayers().length < maxMarkers) {
135
+ this.map.removeControl(this.drawControl);
136
+ this.drawControl = createDrawControl();
137
+ this.map.addControl(this.drawControl);
138
+ }
88
139
  };
89
- const onDeleted = () => this.onMarkerChanged.emit(this.getMarkers());
90
140
  const onEdited = () => this.onMarkerChanged.emit(this.getMarkers());
91
- // Save handlers for later removal
92
- this.eventHandlers[L.Draw.Event.CREATED] = [onCreated];
93
- this.eventHandlers[L.Draw.Event.DELETED] = [onDeleted];
94
- this.eventHandlers[L.Draw.Event.EDITED] = [onEdited];
95
- this.map.on(L.Draw.Event.CREATED, onCreated);
96
- this.map.on(L.Draw.Event.DELETED, onDeleted);
97
- this.map.on(L.Draw.Event.EDITED, onEdited);
141
+ this.map.off('draw:created');
142
+ this.map.off('draw:deleted');
143
+ this.map.off('draw:edited');
144
+ this.map.on('draw:created', onCreated);
145
+ this.map.on('draw:deleted', onDeleted);
146
+ this.map.on('draw:edited', onEdited);
98
147
  }
99
148
  }
100
149
  addLocateControl(position = 'bottomright') {
150
+ if (this.locateControl) {
151
+ this.map.removeControl(this.locateControl);
152
+ this.locateControl = undefined;
153
+ }
101
154
  if (this.map) {
102
- const locateControl = L.control
155
+ const locateControl = this.L.control
103
156
  .locate({
104
157
  position: position,
105
158
  flyTo: true,
@@ -126,110 +179,41 @@ class AXLeafletService {
126
179
  };
127
180
  this.onLocationFound.emit(location);
128
181
  };
129
- this.eventHandlers['locationfound'] = [onLocationFound];
130
182
  this.map.on('locationfound', onLocationFound);
131
183
  }
132
184
  }
133
185
  removeDrawControl() {
134
- if (this.map && this.drawControl) {
186
+ if (this.drawControl) {
135
187
  this.map.removeControl(this.drawControl);
136
- this.drawnItems.clearLayers();
137
- this.removeEventHandlers([L.Draw.Event.CREATED, L.Draw.Event.DELETED, L.Draw.Event.EDITED]);
138
188
  this.drawControl = undefined;
139
189
  }
190
+ if (this.drawnItems) {
191
+ this.drawnItems.clearLayers();
192
+ }
140
193
  }
141
194
  removeLocateControl() {
142
195
  if (this.map && this.locateControl) {
143
196
  this.map.removeControl(this.locateControl);
144
- this.removeEventHandlers(['locationfound']);
145
197
  this.locateControl = undefined;
146
198
  }
147
199
  }
148
- removeEventHandlers(events) {
149
- events.forEach((event) => {
150
- const handlers = this.eventHandlers[event];
151
- if (handlers && this.map) {
152
- handlers.forEach((handler) => this.map?.off(event, handler));
153
- delete this.eventHandlers[event];
154
- }
155
- });
156
- }
157
200
  destroyMap() {
158
201
  if (this.map) {
159
202
  this.map.off();
160
- this.removeEventHandlers(Object.keys(this.eventHandlers));
161
203
  this.map.remove();
162
204
  this.map = undefined;
163
205
  }
164
206
  }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
208
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletService }); }
165
209
  }
166
-
167
- class AXLeafletLoader {
168
- constructor() {
169
- this.stylesLoaded = false;
170
- this.scriptsLoaded = false;
171
- }
172
- // Load Leaflet styles
173
- loadStyles() {
174
- if (!this.stylesLoaded) {
175
- this.loadStyle('https://unpkg.com/leaflet@1.7.1/dist/leaflet.css');
176
- this.loadStyle('https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css');
177
- this.loadStyle('https://cdnjs.cloudflare.com/ajax/libs/leaflet.locatecontrol/0.71.0/L.Control.Locate.min.css');
178
- this.stylesLoaded = true;
179
- }
180
- }
181
- // Load Leaflet scripts
182
- loadScripts() {
183
- if (!this.scriptsLoaded) {
184
- this.loadScript('https://unpkg.com/leaflet@1.7.1/dist/leaflet.js')
185
- .then(() => {
186
- return this.loadScript('https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js');
187
- })
188
- .then(() => {
189
- return this.loadScript('https://cdnjs.cloudflare.com/ajax/libs/leaflet.locatecontrol/0.71.0/L.Control.Locate.min.js');
190
- });
191
- this.scriptsLoaded = true;
192
- }
193
- }
194
- // Utility function to load styles
195
- loadStyle(href) {
196
- const link = document.createElement('link');
197
- link.rel = 'stylesheet';
198
- link.href = href;
199
- document.head.appendChild(link);
200
- }
201
- // Utility function to load scripts
202
- loadScript(src) {
203
- return new Promise((resolve, reject) => {
204
- const script = document.createElement('script');
205
- script.src = src;
206
- script.async = true;
207
- script.onload = () => resolve();
208
- script.onerror = (error) => reject(error);
209
- document.body.appendChild(script);
210
- });
211
- }
212
- // Initialize Leaflet dependencies
213
- initLeaflet() {
214
- return new Promise((resolve) => {
215
- this.loadStyles();
216
- this.loadScripts();
217
- resolve();
218
- });
219
- }
220
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
221
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletLoader, providedIn: 'root' }); }
222
- }
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletLoader, decorators: [{
224
- type: Injectable,
225
- args: [{
226
- providedIn: 'root',
227
- }]
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletService, decorators: [{
211
+ type: Injectable
228
212
  }] });
229
213
 
230
214
  /**
231
215
  * Generated bundle index. Do not edit.
232
216
  */
233
217
 
234
- export { AXLeafletLoader, AXLeafletService };
218
+ export { AXLeafletService };
235
219
  //# sourceMappingURL=acorex-cdk-map.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-map.mjs","sources":["../../../../libs/cdk/map/src/map.class.ts","../../../../libs/cdk/map/src/map.service.ts","../../../../libs/cdk/map/src/acorex-cdk-map.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport * as L from 'leaflet';\nimport 'leaflet-draw';\nimport 'leaflet.locatecontrol';\n\nexport interface AXMapLocation {\n latitude: number;\n longitude: number;\n precision?: number;\n title?: string;\n}\nexport type AXMapControlPlace = 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n\nexport class AXLeafletService {\n private map?: L.Map;\n private drawControl?: L.Control.Draw;\n private locateControl?: L.Control.Locate;\n private drawnItems: L.FeatureGroup = new L.FeatureGroup();\n private eventHandlers: { [key: string]: any[] } = {};\n\n onMarkerChanged = new EventEmitter<AXMapLocation[]>();\n onMarkerAdded = new EventEmitter<AXMapLocation>();\n onLocationFound = new EventEmitter<AXMapLocation>();\n\n constructor(mapElement: HTMLElement, location: AXMapLocation, zoom = 13) {\n L.Icon.Default.imagePath = 'https://unpkg.com/leaflet@1.7.1/dist/images/';\n\n const map = L.map(mapElement).setView([location.latitude, location.longitude], zoom);\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n maxZoom: 18,\n attribution: '© ACoreX',\n }).addTo(map);\n\n this.drawnItems.addTo(map);\n this.map = map;\n }\n\n getMap(): L.Map | undefined {\n return this.map;\n }\n\n setZoomLevel(zoom: number): void {\n this.map?.setZoom(zoom);\n }\n\n setCenter(location: AXMapLocation): void {\n if (this.map && location) {\n this.map.setView([location.latitude, location.longitude], this.map.getZoom());\n }\n }\n\n flyTo(location: AXMapLocation, zoom?: number, setMarker = false, duration = 1.0): void {\n if (this.map && location) {\n this.map.flyTo([location.latitude, location.longitude], zoom || this.map.getZoom(), {\n animate: true,\n duration: duration,\n });\n this.map.once('moveend', () => {\n if (setMarker) {\n this.addMarker(location);\n }\n });\n }\n }\n\n addMarker(locations: AXMapLocation | AXMapLocation[]): void {\n const locationsArray = Array.isArray(locations) ? locations : [locations];\n locationsArray.forEach((location) => {\n L.marker([location.latitude, location.longitude]).addTo(this.drawnItems);\n this.onMarkerAdded.emit(location);\n });\n }\n\n getMarkers(): AXMapLocation[] {\n return this.drawnItems\n .getLayers()\n .filter((layer) => layer instanceof L.Marker)\n .map((marker) => {\n const latLng = (marker as L.Marker).getLatLng();\n return {\n latitude: latLng.lat,\n longitude: latLng.lng,\n } as AXMapLocation;\n });\n }\n\n addDrawControl(position: AXMapControlPlace = 'topleft'): void {\n if (this.map) {\n const drawControl = new L.Control.Draw({\n position: position,\n edit: {\n featureGroup: this.drawnItems,\n },\n draw: {\n polygon: false,\n polyline: false,\n rectangle: false,\n circle: false,\n circlemarker: false,\n },\n });\n\n this.drawControl = drawControl;\n this.map.addControl(drawControl);\n\n const onCreated = (event: any) => {\n const layer = event.layer;\n this.drawnItems.addLayer(layer);\n const latLng = (layer as L.Marker).getLatLng();\n this.onMarkerAdded.emit({ latitude: latLng.lat, longitude: latLng.lng });\n };\n\n const onDeleted = () => this.onMarkerChanged.emit(this.getMarkers());\n const onEdited = () => this.onMarkerChanged.emit(this.getMarkers());\n\n // Save handlers for later removal\n this.eventHandlers[L.Draw.Event.CREATED] = [onCreated];\n this.eventHandlers[L.Draw.Event.DELETED] = [onDeleted];\n this.eventHandlers[L.Draw.Event.EDITED] = [onEdited];\n\n this.map.on(L.Draw.Event.CREATED, onCreated);\n this.map.on(L.Draw.Event.DELETED, onDeleted);\n this.map.on(L.Draw.Event.EDITED, onEdited);\n }\n }\n\n addLocateControl(position: AXMapControlPlace = 'bottomright'): void {\n if (this.map) {\n const locateControl = L.control\n .locate({\n position: position,\n flyTo: true,\n setView: 'untilPanOrZoom',\n showPopup: true,\n onLocationError: (e) => alert(e.message),\n onLocationOutsideMapBounds: (control) => control.stop(),\n locateOptions: {\n enableHighAccuracy: true,\n },\n strings: {\n title: 'Show my location',\n popup: 'You are within {distance} meters from this point',\n outsideMapBoundsMsg: 'You seem to be outside the map bounds',\n },\n })\n .addTo(this.map);\n\n this.locateControl = locateControl;\n\n const onLocationFound = (event: any) => {\n const location: AXMapLocation = {\n latitude: event.latitude,\n longitude: event.longitude,\n precision: event.accuracy,\n };\n this.onLocationFound.emit(location);\n };\n\n this.eventHandlers['locationfound'] = [onLocationFound];\n\n this.map.on('locationfound', onLocationFound);\n }\n }\n\n removeDrawControl(): void {\n if (this.map && this.drawControl) {\n this.map.removeControl(this.drawControl);\n this.drawnItems.clearLayers();\n this.removeEventHandlers([L.Draw.Event.CREATED, L.Draw.Event.DELETED, L.Draw.Event.EDITED]);\n this.drawControl = undefined;\n }\n }\n\n removeLocateControl(): void {\n if (this.map && this.locateControl) {\n this.map.removeControl(this.locateControl);\n this.removeEventHandlers(['locationfound']);\n this.locateControl = undefined;\n }\n }\n\n private removeEventHandlers(events: string[]): void {\n events.forEach((event) => {\n const handlers = this.eventHandlers[event];\n if (handlers && this.map) {\n handlers.forEach((handler) => this.map?.off(event, handler));\n delete this.eventHandlers[event];\n }\n });\n }\n\n destroyMap(): void {\n if (this.map) {\n this.map.off();\n this.removeEventHandlers(Object.keys(this.eventHandlers));\n this.map.remove();\n this.map = undefined;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLeafletLoader {\n private stylesLoaded = false;\n private scriptsLoaded = false;\n\n // Load Leaflet styles\n private loadStyles(): void {\n if (!this.stylesLoaded) {\n this.loadStyle('https://unpkg.com/leaflet@1.7.1/dist/leaflet.css');\n this.loadStyle('https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css');\n this.loadStyle(\n 'https://cdnjs.cloudflare.com/ajax/libs/leaflet.locatecontrol/0.71.0/L.Control.Locate.min.css',\n );\n this.stylesLoaded = true;\n }\n }\n\n // Load Leaflet scripts\n private loadScripts(): void {\n if (!this.scriptsLoaded) {\n this.loadScript('https://unpkg.com/leaflet@1.7.1/dist/leaflet.js')\n .then(() => {\n return this.loadScript('https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js');\n })\n .then(() => {\n return this.loadScript(\n 'https://cdnjs.cloudflare.com/ajax/libs/leaflet.locatecontrol/0.71.0/L.Control.Locate.min.js',\n );\n });\n this.scriptsLoaded = true;\n }\n }\n\n // Utility function to load styles\n private loadStyle(href: string): void {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n document.head.appendChild(link);\n }\n\n // Utility function to load scripts\n private loadScript(src: string): Promise<void> {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = src;\n script.async = true;\n script.onload = () => resolve();\n script.onerror = (error) => reject(error);\n document.body.appendChild(script);\n });\n }\n\n // Initialize Leaflet dependencies\n initLeaflet(): Promise<void> {\n return new Promise((resolve) => {\n this.loadStyles();\n this.loadScripts();\n resolve();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-map.mjs","sources":["../../../../libs/cdk/map/src/map.class.ts","../../../../libs/cdk/map/src/acorex-cdk-map.ts"],"sourcesContent":["import { EventEmitter, Injectable } from '@angular/core';\n\nexport interface AXMapLocation {\n latitude: number;\n longitude: number;\n precision?: number;\n title?: string;\n}\nexport type AXMapControlPlace = 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n@Injectable()\nexport class AXLeafletService {\n L: any;\n private map?: L.Map;\n private drawControl?: L.Control.Draw;\n private locateControl?: L.Control.Locate;\n private drawnItems: L.FeatureGroup;\n\n onMarkerChanged = new EventEmitter<AXMapLocation[]>();\n onMarkerAdded = new EventEmitter<AXMapLocation>();\n onLocationFound = new EventEmitter<AXMapLocation>();\n\n async loadLeaflet(): Promise<void> {\n this.L = await import('leaflet');\n await import('leaflet-draw');\n await import('leaflet.locatecontrol');\n }\n\n async initMap(mapElement: HTMLElement, location: AXMapLocation, zoom = 13) {\n await this.loadLeaflet();\n\n this.L.Icon.Default.imagePath = 'https://unpkg.com/leaflet@1.7.1/dist/images/';\n\n const map = this.L.map(mapElement).setView([location.latitude, location.longitude], zoom);\n this.L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n maxZoom: 18,\n attribution: '© ACoreX',\n }).addTo(map);\n this.drawnItems = new this.L.FeatureGroup();\n this.drawnItems.addTo(map);\n this.map = map;\n\n // let holdTimer;\n // const holdDuration = 1000;\n // map.on('mousedown', (e) => {\n // holdTimer = setTimeout(() => {\n // this.L.marker(e.latlng).addTo(map);\n // }, holdDuration);\n // });\n // map.on('mouseup', function () {\n // clearTimeout(holdTimer);\n // });\n // map.on('mouseleave', function () {\n // clearTimeout(holdTimer);\n // });\n }\n\n getMap(): L.Map | undefined {\n return this.map;\n }\n\n setZoomLevel(zoom: number): void {\n this.map?.setZoom(zoom);\n }\n\n setCenter(location: AXMapLocation): void {\n if (this.map && location) {\n this.map.setView([location.latitude, location.longitude], this.map.getZoom());\n }\n }\n\n flyTo(location: AXMapLocation, zoom?: number, setMarker = false, duration = 1.0): void {\n if (this.map && location) {\n this.map.flyTo([location.latitude, location.longitude], zoom || this.map.getZoom(), {\n animate: true,\n duration: duration,\n });\n this.map.once('moveend', () => {\n if (setMarker) {\n this.addMarker(location);\n }\n });\n }\n }\n\n addMarker(locations: AXMapLocation | AXMapLocation[]): void {\n const locationsArray = Array.isArray(locations) ? locations : [locations];\n locationsArray.forEach((location) => {\n this.L.marker([location.latitude, location.longitude]).addTo(this.drawnItems);\n this.onMarkerAdded.emit(location);\n });\n }\n\n getMarkers(): AXMapLocation[] {\n return this.drawnItems\n .getLayers()\n .filter((layer) => layer instanceof this.L.Marker)\n .map((marker) => {\n const latLng = (marker as L.Marker).getLatLng();\n return {\n latitude: latLng.lat,\n longitude: latLng.lng,\n } as AXMapLocation;\n });\n }\n\n addDrawControl(position: AXMapControlPlace = 'topleft', maxMarkers = 1): void {\n if (this.drawControl) {\n this.map.removeControl(this.drawControl);\n this.drawnItems.clearLayers();\n this.drawControl = undefined;\n }\n if (this.map) {\n const createDrawControl = () => {\n return new this.L.Control.Draw({\n position: position,\n edit: {\n featureGroup: this.drawnItems,\n },\n draw: {\n marker: this.drawnItems.getLayers().length < maxMarkers,\n polygon: false,\n polyline: false,\n rectangle: false,\n circle: false,\n circlemarker: false,\n },\n });\n };\n\n this.drawControl = createDrawControl();\n this.map.addControl(this.drawControl);\n\n const onCreated = (event: any) => {\n const layer = event.layer;\n this.drawnItems.addLayer(layer);\n const latLng = (layer as L.Marker).getLatLng();\n this.onMarkerAdded.emit({ latitude: latLng.lat, longitude: latLng.lng });\n\n if (this.drawnItems.getLayers().length >= maxMarkers) {\n this.map.removeControl(this.drawControl);\n this.drawControl = new this.L.Control.Draw({\n position: position,\n edit: {\n featureGroup: this.drawnItems,\n },\n draw: {\n marker: false,\n polygon: false,\n polyline: false,\n rectangle: false,\n circle: false,\n circlemarker: false,\n },\n });\n this.map.addControl(this.drawControl);\n }\n };\n\n const onDeleted = () => {\n this.onMarkerChanged.emit(this.getMarkers());\n\n if (this.drawnItems.getLayers().length < maxMarkers) {\n this.map.removeControl(this.drawControl);\n this.drawControl = createDrawControl();\n this.map.addControl(this.drawControl);\n }\n };\n\n const onEdited = () => this.onMarkerChanged.emit(this.getMarkers());\n\n this.map.off('draw:created');\n this.map.off('draw:deleted');\n this.map.off('draw:edited');\n\n this.map.on('draw:created', onCreated);\n this.map.on('draw:deleted', onDeleted);\n this.map.on('draw:edited', onEdited);\n }\n }\n\n addLocateControl(position: AXMapControlPlace = 'bottomright'): void {\n if (this.locateControl) {\n this.map.removeControl(this.locateControl);\n this.locateControl = undefined;\n }\n if (this.map) {\n const locateControl = this.L.control\n .locate({\n position: position,\n flyTo: true,\n setView: 'untilPanOrZoom',\n showPopup: true,\n onLocationError: (e) => alert(e.message),\n onLocationOutsideMapBounds: (control) => control.stop(),\n locateOptions: {\n enableHighAccuracy: true,\n },\n strings: {\n title: 'Show my location',\n popup: 'You are within {distance} meters from this point',\n outsideMapBoundsMsg: 'You seem to be outside the map bounds',\n },\n })\n .addTo(this.map);\n\n this.locateControl = locateControl;\n\n const onLocationFound = (event: any) => {\n const location: AXMapLocation = {\n latitude: event.latitude,\n longitude: event.longitude,\n precision: event.accuracy,\n };\n this.onLocationFound.emit(location);\n };\n\n this.map.on('locationfound', onLocationFound);\n }\n }\n\n removeDrawControl(): void {\n if (this.drawControl) {\n this.map.removeControl(this.drawControl);\n this.drawControl = undefined;\n }\n if (this.drawnItems) {\n this.drawnItems.clearLayers();\n }\n }\n\n removeLocateControl(): void {\n if (this.map && this.locateControl) {\n this.map.removeControl(this.locateControl);\n this.locateControl = undefined;\n }\n }\n\n destroyMap(): void {\n if (this.map) {\n this.map.off();\n this.map.remove();\n this.map = undefined;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/map/index.d.ts CHANGED
@@ -1,2 +1 @@
1
1
  export * from './map.class';
2
- export * from './map.service';
@@ -1,7 +1,5 @@
1
1
  import { EventEmitter } from '@angular/core';
2
- import * as L from 'leaflet';
3
- import 'leaflet-draw';
4
- import 'leaflet.locatecontrol';
2
+ import * as i0 from "@angular/core";
5
3
  export interface AXMapLocation {
6
4
  latitude: number;
7
5
  longitude: number;
@@ -10,25 +8,27 @@ export interface AXMapLocation {
10
8
  }
11
9
  export type AXMapControlPlace = 'topleft' | 'topright' | 'bottomleft' | 'bottomright';
12
10
  export declare class AXLeafletService {
11
+ L: any;
13
12
  private map?;
14
13
  private drawControl?;
15
14
  private locateControl?;
16
15
  private drawnItems;
17
- private eventHandlers;
18
16
  onMarkerChanged: EventEmitter<AXMapLocation[]>;
19
17
  onMarkerAdded: EventEmitter<AXMapLocation>;
20
18
  onLocationFound: EventEmitter<AXMapLocation>;
21
- constructor(mapElement: HTMLElement, location: AXMapLocation, zoom?: number);
19
+ loadLeaflet(): Promise<void>;
20
+ initMap(mapElement: HTMLElement, location: AXMapLocation, zoom?: number): Promise<void>;
22
21
  getMap(): L.Map | undefined;
23
22
  setZoomLevel(zoom: number): void;
24
23
  setCenter(location: AXMapLocation): void;
25
24
  flyTo(location: AXMapLocation, zoom?: number, setMarker?: boolean, duration?: number): void;
26
25
  addMarker(locations: AXMapLocation | AXMapLocation[]): void;
27
26
  getMarkers(): AXMapLocation[];
28
- addDrawControl(position?: AXMapControlPlace): void;
27
+ addDrawControl(position?: AXMapControlPlace, maxMarkers?: number): void;
29
28
  addLocateControl(position?: AXMapControlPlace): void;
30
29
  removeDrawControl(): void;
31
30
  removeLocateControl(): void;
32
- private removeEventHandlers;
33
31
  destroyMap(): void;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXLeafletService, never>;
33
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXLeafletService>;
34
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/cdk",
3
- "version": "18.10.8",
3
+ "version": "18.10.10",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0",
@@ -1,65 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AXLeafletLoader {
4
- constructor() {
5
- this.stylesLoaded = false;
6
- this.scriptsLoaded = false;
7
- }
8
- // Load Leaflet styles
9
- loadStyles() {
10
- if (!this.stylesLoaded) {
11
- this.loadStyle('https://unpkg.com/leaflet@1.7.1/dist/leaflet.css');
12
- this.loadStyle('https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css');
13
- this.loadStyle('https://cdnjs.cloudflare.com/ajax/libs/leaflet.locatecontrol/0.71.0/L.Control.Locate.min.css');
14
- this.stylesLoaded = true;
15
- }
16
- }
17
- // Load Leaflet scripts
18
- loadScripts() {
19
- if (!this.scriptsLoaded) {
20
- this.loadScript('https://unpkg.com/leaflet@1.7.1/dist/leaflet.js')
21
- .then(() => {
22
- return this.loadScript('https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js');
23
- })
24
- .then(() => {
25
- return this.loadScript('https://cdnjs.cloudflare.com/ajax/libs/leaflet.locatecontrol/0.71.0/L.Control.Locate.min.js');
26
- });
27
- this.scriptsLoaded = true;
28
- }
29
- }
30
- // Utility function to load styles
31
- loadStyle(href) {
32
- const link = document.createElement('link');
33
- link.rel = 'stylesheet';
34
- link.href = href;
35
- document.head.appendChild(link);
36
- }
37
- // Utility function to load scripts
38
- loadScript(src) {
39
- return new Promise((resolve, reject) => {
40
- const script = document.createElement('script');
41
- script.src = src;
42
- script.async = true;
43
- script.onload = () => resolve();
44
- script.onerror = (error) => reject(error);
45
- document.body.appendChild(script);
46
- });
47
- }
48
- // Initialize Leaflet dependencies
49
- initLeaflet() {
50
- return new Promise((resolve) => {
51
- this.loadStyles();
52
- this.loadScripts();
53
- resolve();
54
- });
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
57
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletLoader, providedIn: 'root' }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXLeafletLoader, decorators: [{
60
- type: Injectable,
61
- args: [{
62
- providedIn: 'root',
63
- }]
64
- }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9tYXAvc3JjL21hcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSVUsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsa0JBQWEsR0FBRyxLQUFLLENBQUM7S0EwRC9CO0lBeERDLHNCQUFzQjtJQUNkLFVBQVU7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxTQUFTLENBQ1osOEZBQThGLENBQy9GLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtJQUNmLFdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGlEQUFpRCxDQUFDO2lCQUMvRCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1lBQ3RHLENBQUMsQ0FBQztpQkFDRCxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDcEIsNkZBQTZGLENBQzlGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsa0NBQWtDO0lBQzFCLFNBQVMsQ0FBQyxJQUFZO1FBQzVCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELG1DQUFtQztJQUMzQixVQUFVLENBQUMsR0FBVztRQUM1QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDakIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLFdBQVc7UUFDVCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EzRFUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWExlYWZsZXRMb2FkZXIge1xuICBwcml2YXRlIHN0eWxlc0xvYWRlZCA9IGZhbHNlO1xuICBwcml2YXRlIHNjcmlwdHNMb2FkZWQgPSBmYWxzZTtcblxuICAvLyBMb2FkIExlYWZsZXQgc3R5bGVzXG4gIHByaXZhdGUgbG9hZFN0eWxlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3R5bGVzTG9hZGVkKSB7XG4gICAgICB0aGlzLmxvYWRTdHlsZSgnaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldEAxLjcuMS9kaXN0L2xlYWZsZXQuY3NzJyk7XG4gICAgICB0aGlzLmxvYWRTdHlsZSgnaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5kcmF3LzEuMC40L2xlYWZsZXQuZHJhdy5jc3MnKTtcbiAgICAgIHRoaXMubG9hZFN0eWxlKFxuICAgICAgICAnaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5sb2NhdGVjb250cm9sLzAuNzEuMC9MLkNvbnRyb2wuTG9jYXRlLm1pbi5jc3MnLFxuICAgICAgKTtcbiAgICAgIHRoaXMuc3R5bGVzTG9hZGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBMb2FkIExlYWZsZXQgc2NyaXB0c1xuICBwcml2YXRlIGxvYWRTY3JpcHRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY3JpcHRzTG9hZGVkKSB7XG4gICAgICB0aGlzLmxvYWRTY3JpcHQoJ2h0dHBzOi8vdW5wa2cuY29tL2xlYWZsZXRAMS43LjEvZGlzdC9sZWFmbGV0LmpzJylcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRTY3JpcHQoJ2h0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQuZHJhdy8xLjAuNC9sZWFmbGV0LmRyYXcuanMnKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRTY3JpcHQoXG4gICAgICAgICAgICAnaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5sb2NhdGVjb250cm9sLzAuNzEuMC9MLkNvbnRyb2wuTG9jYXRlLm1pbi5qcycsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLnNjcmlwdHNMb2FkZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFV0aWxpdHkgZnVuY3Rpb24gdG8gbG9hZCBzdHlsZXNcbiAgcHJpdmF0ZSBsb2FkU3R5bGUoaHJlZjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGluayk7XG4gIH1cblxuICAvLyBVdGlsaXR5IGZ1bmN0aW9uIHRvIGxvYWQgc2NyaXB0c1xuICBwcml2YXRlIGxvYWRTY3JpcHQoc3JjOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQuc3JjID0gc3JjO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKCk7XG4gICAgICBzY3JpcHQub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluaXRpYWxpemUgTGVhZmxldCBkZXBlbmRlbmNpZXNcbiAgaW5pdExlYWZsZXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLmxvYWRTdHlsZXMoKTtcbiAgICAgIHRoaXMubG9hZFNjcmlwdHMoKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,12 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class AXLeafletLoader {
3
- private stylesLoaded;
4
- private scriptsLoaded;
5
- private loadStyles;
6
- private loadScripts;
7
- private loadStyle;
8
- private loadScript;
9
- initLeaflet(): Promise<void>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<AXLeafletLoader, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<AXLeafletLoader>;
12
- }