@bluehalo/ngx-leaflet 19.0.0 → 21.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGES.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 21.0
4
+ Support for Angular.io 21.
5
+
6
+ One note for v21 - Angular moved to Zoneless detection by default (https://angular.dev/guide/zoneless). This has implications, particularly for this library. For example, events are emitted outside of the change detection zone.
7
+ You may need to make some changes to your application if you rely on the events generated by the maps. See the migration guide for details (https://angular.dev/update-guide?v=20.0-21.0&l=1).
8
+
9
+ ## 20.0
10
+ Support for Angular.io 20.
11
+
3
12
  ## 19.0
4
13
  Support for Angular.io 19.
5
14
 
package/README.md CHANGED
@@ -43,9 +43,10 @@ Generally, the steps are:
43
43
 
44
44
  * Install Leaflet, this library, and potentially the Leaflet typings (see above).
45
45
  * Import the Leaflet stylesheet
46
- * Import the ```LeafletModule``` into your Angular project
46
+ * Import the `LeafletDirective` etc. into your Module or standalone Component
47
47
  * Create and configure a map (see docs below and/or demo)
48
48
 
49
+ Alternatively, you can use the `LeafletModule` to import the module into your application.
49
50
 
50
51
  ### Import the Leaflet Stylesheet
51
52
  For leaflet to work, you need to have the leaflet stylesheets loaded into your application.
@@ -55,7 +56,7 @@ How you include the stylesheet will depend on your specific setup. Here are a fe
55
56
  #### Direct Import from HTML
56
57
  If you are just building a webpage and not using a bundler for your css, you'll want to directly import the css file in your HTML page.
57
58
 
58
- ```html
59
+ ```angular181html
59
60
  <head>
60
61
  ...
61
62
  <link rel="stylesheet" type="text/css" href="./node_modules/leaflet/dist/leaflet.css">
@@ -102,7 +103,7 @@ The demo contained in this project demonstrates how to get around this problem.
102
103
 
103
104
  1. Configure Leaflet to use the asset URLs as custom marker images.
104
105
 
105
- ```js
106
+ ```typescript
106
107
  let layer = marker([ 46.879966, -121.726909 ], {
107
108
  icon: icon({
108
109
  ...Icon.Default.prototype.options,
@@ -114,21 +115,31 @@ let layer = marker([ 46.879966, -121.726909 ], {
114
115
  ```
115
116
 
116
117
 
117
- ### Import LeafletModule
118
+ ### Import LeafletDirective
118
119
 
119
120
  Before you can use the Leaflet components in your Angular.io app, you'll need to import it in your application.
120
121
  Depending on if you're using standalone mode or not, you will import it into your modules and/or components.
121
-
122
- ```js
123
- import { LeafletModule } from '@bluehalo/ngx-leaflet';
124
122
 
125
- ...
126
- imports: [
127
- ...
128
- LeafletModule
129
- ]
130
- ...
123
+ ```typescript
124
+ import { LeafletDirective } from '@bluehalo/ngx-leaflet';
125
+
126
+ @Component({
127
+ imports: [
128
+ LeafletDirective // Import the LeafletDirective here
129
+ // import other directives as needed
130
+ ],
131
+ })
132
+ ```
133
+
134
+ Alternatively:
135
+ ```typescript
136
+ import { LeafletModule } from '@bluehalo/ngx-leaflet';
131
137
 
138
+ @NgModule({
139
+ imports: [
140
+ LeafletModule // Import the LeafletModule here
141
+ ],
142
+ })
132
143
  ```
133
144
 
134
145
  ### Create and Configure a Map
@@ -139,7 +150,7 @@ To get a basic map to work, you have to:
139
150
  * Provide an initial zoom/center and set of layers either via ```leafletOptions``` or by binding to ```leafletZoom```, ```leafletCenter```, and ```leafletLayers```.
140
151
 
141
152
  Template:
142
- ```html
153
+ ```angular181html
143
154
  <div style="height: 300px;"
144
155
  leaflet
145
156
  [leafletOptions]="options">
@@ -147,7 +158,7 @@ Template:
147
158
  ```
148
159
 
149
160
  Example leafletOptions object:
150
- ```js
161
+ ```typescript
151
162
  options = {
152
163
  layers: [
153
164
  tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: '...' })
@@ -160,7 +171,7 @@ options = {
160
171
  Changes to leafletOptions are ignored after they are initially set.
161
172
  This is because these options are passed into the map constructor, so they can't be changed anyways.
162
173
  So, make sure the object exists before the map is created.
163
- You'll want to create the object in ```ngOnInit``` or hide the map DOM element with ```*ngIf``` until you can create the options object.
174
+ You'll want to create the object in ```ngOnInit``` or hide the map DOM element with ```@if``` until you can create the options object.
164
175
 
165
176
 
166
177
  ### Add a Layers Control
@@ -168,7 +179,7 @@ The ```[leafletLayersControl]``` input bindings give you the ability to add the
168
179
  The layers control lets the user toggle layers and overlays on and off.
169
180
 
170
181
  Template:
171
- ```html
182
+ ```angular181html
172
183
  <div style="height: 300px;"
173
184
  leaflet
174
185
  [leafletOptions]="options"
@@ -176,17 +187,27 @@ Template:
176
187
  </div>
177
188
  ```
178
189
 
179
- Example layersControl object:
180
- ```js
181
- layersControl = {
182
- baseLayers: {
183
- 'Open Street Map': tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: '...' }),
184
- 'Open Cycle Map': tileLayer('https://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png', { maxZoom: 18, attribution: '...' })
185
- },
186
- overlays: {
187
- 'Big Circle': circle([ 46.95, -122 ], { radius: 5000 }),
188
- 'Big Square': polygon([[ 46.8, -121.55 ], [ 46.9, -121.55 ], [ 46.9, -121.7 ], [ 46.8, -121.7 ]])
189
- }
190
+ Component with example layersControl object:
191
+ ```typescript
192
+ import { LeafletDirective, LeafletLayersControlDirective } from '@bluehalo/ngx-leaflet';
193
+
194
+ @Component({
195
+ imports: [
196
+ LeafletDirective,
197
+ LeafletLayersControlDirective,
198
+ ],
199
+ })
200
+ export class MyComponent {
201
+ protected readonly layersControl = {
202
+ baseLayers: {
203
+ 'Open Street Map': tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { maxZoom: 18, attribution: '...' }),
204
+ 'Open Cycle Map': tileLayer('https://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png', { maxZoom: 18, attribution: '...' })
205
+ },
206
+ overlays: {
207
+ 'Big Circle': circle([ 46.95, -122 ], { radius: 5000 }),
208
+ 'Big Square': polygon([[ 46.8, -121.55 ], [ 46.9, -121.55 ], [ 46.9, -121.7 ], [ 46.8, -121.7 ]])
209
+ }
210
+ }
190
211
  }
191
212
  ```
192
213
 
@@ -199,7 +220,7 @@ There are several different ways to add layers to the map.
199
220
  You can add layers (baselayers, markers, or custom layers) to the map without showing them in the layer control using the ```[leafletLayers]``` directive.
200
221
 
201
222
  Template:
202
- ```html
223
+ ```angular181html
203
224
  <div style="height: 300px;"
204
225
  leaflet
205
226
  [leafletOptions]="options"
@@ -208,7 +229,7 @@ Template:
208
229
  ```
209
230
 
210
231
  Layers array:
211
- ```js
232
+ ```typescript
212
233
  layers = [
213
234
  circle([ 46.95, -122 ], { radius: 5000 }),
214
235
  polygon([[ 46.8, -121.85 ], [ 46.92, -121.92 ], [ 46.87, -121.8 ]]),
@@ -217,19 +238,22 @@ layers = [
217
238
  ```
218
239
 
219
240
  You can also add an individual layer to the map using the ```[leafletLayer]``` directive.
220
- Using this approach allows you to use ```*ngFor``` and ```*ngIf``` to control whether individual layers are added to or removed from the map.
241
+ Using this approach allows you to use ```@for``` and ```@if``` to control whether individual layers are added to or removed from the map.
221
242
 
222
243
  Template:
223
- ```html
244
+ ```angular181html
224
245
  <div style="height: 300px;"
225
246
  leaflet
226
247
  [leafletOptions]="options">
227
- <div *ngIf="showLayer" [leafletLayer]="layer"></div>
248
+
249
+ @if (showLayer) {
250
+ <div [leafletLayer]="layer"></div>
251
+ }
228
252
  </div>
229
253
  ```
230
254
 
231
255
  Layer:
232
- ```js
256
+ ```typescript
233
257
  layer = circle([ 46.95, -122 ], { radius: 5000 });
234
258
  ```
235
259
 
@@ -268,7 +292,7 @@ This section includes more detailed documentation of the functionality of the di
268
292
  ### Advanced Map Configuration
269
293
  There are several input bindings available for configuring the map.
270
294
 
271
- ```html
295
+ ```angular181html
272
296
  <div leaflet style="height: 300px;"
273
297
  [leafletOptions]="options"
274
298
  [leafletPanOptions]="panOptions"
@@ -295,7 +319,7 @@ Input binding for FitBounds options (see [Leaflet's](https://leafletjs.com/Slava
295
319
 
296
320
 
297
321
  ### Dynamically changing zoom level, center, fitBounds, etc.
298
- ```html
322
+ ```angular181html
299
323
  <div leaflet style="height: 300px;"
300
324
  [leafletOptions]="options"
301
325
  [(leafletZoom)]="zoom"
@@ -336,7 +360,7 @@ If you plan to show more than just baselayers, you should use the more advanced
336
360
 
337
361
  For an example of the basic map setup, you should check out the *Simple Base Layers* demo.
338
362
 
339
- ```html
363
+ ```angular181html
340
364
  <div leaflet style="height: 300px;"
341
365
  [leafletOptions]="options"
342
366
  [leafletBaseLayers]="baseLayers"
@@ -347,7 +371,7 @@ For an example of the basic map setup, you should check out the *Simple Base Lay
347
371
  #### [leafletBaseLayers]: Control.LayersObject
348
372
  Input bind an ```Control.LayersObject``` to be synced to the map.
349
373
 
350
- ```js
374
+ ```typescript
351
375
  baseLayers: {
352
376
  'layer1': Layer,
353
377
  'layer2': Layer
@@ -383,7 +407,7 @@ And, use ```[leafletLayersControl]``` to allow users to optionally turn layers/o
383
407
 
384
408
  For an example of using the layers controls, you should check out the *Layers and Layer Controls* demo.
385
409
 
386
- ```html
410
+ ```angular181html
387
411
  <div leaflet style="height: 300px;"
388
412
  [leafletOptions]="options"
389
413
  [leafletLayers]="layers"
@@ -404,7 +428,7 @@ As a result of how the map is synced, the order of layers is not guaranteed to b
404
428
  #### [leafletLayersControl]: Control.Layers
405
429
  Input bind a Control.Layers specification. The object contains properties for each of the two constructor arguments for the Control.Layers constructor.
406
430
 
407
- ```js
431
+ ```typescript
408
432
  layersControl: {
409
433
  baseLayers: {
410
434
  'layerName': Layer
@@ -420,16 +444,20 @@ Input binding for Control.Layers options (see [Leaflet's](https://leafletjs.com/
420
444
  These options are passed into the constructor on creation.
421
445
 
422
446
 
423
- ### Advanced Layer Management: Individual Layers and *ngFor / *ngIf
447
+ ### Advanced Layer Management: Individual Layers and @for / @if
424
448
  The ```[leafletLayer]``` input bindings gives you the ability to add a single layer to the map.
425
449
  While this may seem limiting, you can nest elements inside the map element, each with a ```[leafletLayer]``` input.
426
450
  The result of this is that each layer will be added to the map.
427
- If you add a structural directive - ```*ngFor``` or ```*ngIf``` - you can get some added flexibility when controlling layers.
451
+ If you add a structural directive - ```@for``` or ```@if``` - you can get some added flexibility when controlling layers.
428
452
 
429
- ```html
453
+ ```angular181html
430
454
  <div leaflet style="height: 300px;"
431
455
  [leafletOptions]="options">
432
- <div *ngFor="let l of layers" [leafletLayer]="l"></div>
456
+
457
+ @for (layer of layers; track layer.id) {
458
+ <div [leafletLayer]="layer"></div>
459
+ }
460
+
433
461
  </div>
434
462
  ```
435
463
 
@@ -488,14 +516,14 @@ With a reference to the directive, you can invoke the ```getMap()``` function to
488
516
  This output is emitted when once when the map is initially created inside of the Leaflet directive.
489
517
  The event will only fire when the map exists and is ready for manipulation.
490
518
 
491
- ```html
519
+ ```angular181html
492
520
  <div leaflet
493
521
  [leafletOptions]="options"
494
522
  (leafletMapReady)="onMapReady($event)">
495
523
  </div>
496
524
  ```
497
525
 
498
- ```js
526
+ ```typescript
499
527
  onMapReady(map: Map) {
500
528
  // Do stuff with map
501
529
  }
@@ -515,33 +543,29 @@ This means that you can create your own component or directive and inject the ``
515
543
  This will only work if your custom component/directive exists on the same DOM element and is ordered after the injected LeafletDirective, or if it is on a child DOM element.
516
544
 
517
545
 
518
- ```html
546
+ ```angular181html
519
547
  <!-- On the same DOM element -->
520
- <div leaflet myCustomDirective>
521
- </div>
548
+ <div leaflet myCustomDirective></div>
522
549
 
523
550
  <!-- On a child DOM element -->
524
551
  <div leaflet>
525
- <div myCustomDirective></div>
552
+ <div myCustomDirective></div>
526
553
  </div>
527
554
  ```
528
555
 
529
- ```js
556
+ ```typescript
557
+
530
558
  @Directive({
531
- selector: '[myCustomDirective]'
559
+ selector: '[myCustomDirective]'
532
560
  })
533
561
  export class MyCustomDirective {
534
- leafletDirective: LeafletDirective;
562
+ readonly #leafletDirective = inject(LeafletDirective);
535
563
 
536
- constructor(leafletDirective: LeafletDirective) {
537
- this.leafletDirective = leafletDirective;
538
- }
539
-
540
- someFunction() {
541
- if (null != this.leafletDirective.getMap()) {
542
- // Do stuff with the map
543
- }
544
- }
564
+ someFunction() {
565
+ if (null !== this.#leafletDirective.getMap()) {
566
+ // Do stuff with the map
567
+ }
568
+ }
545
569
  }
546
570
  ```
547
571
 
@@ -567,7 +591,7 @@ Leaflet event handlers run outside of Angular's zone, where changes to input bou
567
591
  To ensure your changes are detected and applied, you need to make those changed inside of Angular's zone.
568
592
  Fortunately, this is extremely easy.
569
593
 
570
- ```js
594
+ ```typescript
571
595
  fitBounds: any = null;
572
596
  circle = circle([ 46.95, -122 ], { radius: 5000 });
573
597
 
@@ -594,7 +618,7 @@ Another option is to manually tell the change detector to detect changes.
594
618
  The drawback to this option is that it is less precise.
595
619
  This will trigger change detection for this component and all of its children.
596
620
 
597
- ```js
621
+ ```typescript
598
622
  fitBounds: any = null;
599
623
  circle = circle([ 46.95, -122 ], { radius: 5000 });
600
624
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Directive, Input, Output, HostListener, NgModule } from '@angular/core';
2
+ import { EventEmitter, HostListener, Output, Input, Directive, NgModule } from '@angular/core';
3
3
  import { latLng, map, control, tileLayer } from 'leaflet';
4
4
 
5
5
  class LeafletUtil {
@@ -89,7 +89,7 @@ class LeafletDirective {
89
89
  /*
90
90
  * The following code is to address an issue with our (basic) implementation of
91
91
  * zooming and panning. From our testing, it seems that a pan operation followed
92
- * by a zoom operation in the same thread will interfere with eachother. The zoom
92
+ * by a zoom operation in the same thread will interfere with each other. The zoom
93
93
  * operation interrupts/cancels the pan, resulting in a final center point that is
94
94
  * inaccurate. The solution seems to be to either separate them with a timeout or
95
95
  * to collapse them into a setView call.
@@ -254,14 +254,13 @@ class LeafletDirective {
254
254
  this.map.setMaxZoom(zoom);
255
255
  }
256
256
  }
257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
258
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: LeafletDirective, isStandalone: false, selector: "[leaflet]", inputs: { fitBoundsOptions: ["leafletFitBoundsOptions", "fitBoundsOptions"], panOptions: ["leafletPanOptions", "panOptions"], zoomOptions: ["leafletZoomOptions", "zoomOptions"], zoomPanOptions: ["leafletZoomPanOptions", "zoomPanOptions"], options: ["leafletOptions", "options"], zoom: ["leafletZoom", "zoom"], center: ["leafletCenter", "center"], fitBounds: ["leafletFitBounds", "fitBounds"], maxBounds: ["leafletMaxBounds", "maxBounds"], minZoom: ["leafletMinZoom", "minZoom"], maxZoom: ["leafletMaxZoom", "maxZoom"] }, outputs: { mapReady: "leafletMapReady", zoomChange: "leafletZoomChange", centerChange: "leafletCenterChange", onClick: "leafletClick", onDoubleClick: "leafletDoubleClick", onMouseDown: "leafletMouseDown", onMouseUp: "leafletMouseUp", onMouseMove: "leafletMouseMove", onMouseOver: "leafletMouseOver", onMouseOut: "leafletMouseOut", onMapMove: "leafletMapMove", onMapMoveStart: "leafletMapMoveStart", onMapMoveEnd: "leafletMapMoveEnd", onMapZoom: "leafletMapZoom", onMapZoomStart: "leafletMapZoomStart", onMapZoomEnd: "leafletMapZoomEnd" }, host: { listeners: { "window:resize": "onResize()" } }, usesOnChanges: true, ngImport: i0 }); }
257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
258
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.3", type: LeafletDirective, isStandalone: true, selector: "[leaflet]", inputs: { fitBoundsOptions: ["leafletFitBoundsOptions", "fitBoundsOptions"], panOptions: ["leafletPanOptions", "panOptions"], zoomOptions: ["leafletZoomOptions", "zoomOptions"], zoomPanOptions: ["leafletZoomPanOptions", "zoomPanOptions"], options: ["leafletOptions", "options"], zoom: ["leafletZoom", "zoom"], center: ["leafletCenter", "center"], fitBounds: ["leafletFitBounds", "fitBounds"], maxBounds: ["leafletMaxBounds", "maxBounds"], minZoom: ["leafletMinZoom", "minZoom"], maxZoom: ["leafletMaxZoom", "maxZoom"] }, outputs: { mapReady: "leafletMapReady", zoomChange: "leafletZoomChange", centerChange: "leafletCenterChange", onClick: "leafletClick", onDoubleClick: "leafletDoubleClick", onMouseDown: "leafletMouseDown", onMouseUp: "leafletMouseUp", onMouseMove: "leafletMouseMove", onMouseOver: "leafletMouseOver", onMouseOut: "leafletMouseOut", onMapMove: "leafletMapMove", onMapMoveStart: "leafletMapMoveStart", onMapMoveEnd: "leafletMapMoveEnd", onMapZoom: "leafletMapZoom", onMapZoomStart: "leafletMapZoomStart", onMapZoomEnd: "leafletMapZoomEnd" }, host: { listeners: { "window:resize": "onResize()" } }, usesOnChanges: true, ngImport: i0 }); }
259
259
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletDirective, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletDirective, decorators: [{
261
261
  type: Directive,
262
262
  args: [{
263
263
  selector: '[leaflet]',
264
- standalone: false
265
264
  }]
266
265
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { fitBoundsOptions: [{
267
266
  type: Input,
@@ -415,14 +414,13 @@ class LeafletLayerDirective {
415
414
  l.off('add', this.onAddLayerHandler);
416
415
  l.off('remove', this.onRemoveLayerHandler);
417
416
  }
418
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletLayerDirective, deps: [{ token: LeafletDirective }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
419
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: LeafletLayerDirective, isStandalone: false, selector: "[leafletLayer]", inputs: { layer: ["leafletLayer", "layer"] }, outputs: { onAdd: "leafletLayerAdd", onRemove: "leafletLayerRemove" }, usesOnChanges: true, ngImport: i0 }); }
417
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletLayerDirective, deps: [{ token: LeafletDirective }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
418
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.3", type: LeafletLayerDirective, isStandalone: true, selector: "[leafletLayer]", inputs: { layer: ["leafletLayer", "layer"] }, outputs: { onAdd: "leafletLayerAdd", onRemove: "leafletLayerRemove" }, usesOnChanges: true, ngImport: i0 }); }
420
419
  }
421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletLayerDirective, decorators: [{
420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletLayerDirective, decorators: [{
422
421
  type: Directive,
423
422
  args: [{
424
423
  selector: '[leafletLayer]',
425
- standalone: false
426
424
  }]
427
425
  }], ctorParameters: () => [{ type: LeafletDirective }, { type: i0.NgZone }], propDecorators: { layer: [{
428
426
  type: Input,
@@ -501,14 +499,13 @@ class LeafletLayersDirective {
501
499
  }
502
500
  }
503
501
  }
504
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletLayersDirective, deps: [{ token: LeafletDirective }, { token: i0.IterableDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
505
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: LeafletLayersDirective, isStandalone: false, selector: "[leafletLayers]", inputs: { layers: ["leafletLayers", "layers"] }, ngImport: i0 }); }
502
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletLayersDirective, deps: [{ token: LeafletDirective }, { token: i0.IterableDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
503
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.3", type: LeafletLayersDirective, isStandalone: true, selector: "[leafletLayers]", inputs: { layers: ["leafletLayers", "layers"] }, ngImport: i0 }); }
506
504
  }
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletLayersDirective, decorators: [{
505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletLayersDirective, decorators: [{
508
506
  type: Directive,
509
507
  args: [{
510
508
  selector: '[leafletLayers]',
511
- standalone: false
512
509
  }]
513
510
  }], ctorParameters: () => [{ type: LeafletDirective }, { type: i0.IterableDiffers }, { type: i0.NgZone }], propDecorators: { layers: [{
514
511
  type: Input,
@@ -664,14 +661,13 @@ class LeafletLayersControlDirective {
664
661
  }
665
662
  }
666
663
  }
667
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletLayersControlDirective, deps: [{ token: LeafletDirective }, { token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
668
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: LeafletLayersControlDirective, isStandalone: false, selector: "[leafletLayersControl]", inputs: { layersControlConfig: ["leafletLayersControl", "layersControlConfig"], layersControlOptions: ["leafletLayersControlOptions", "layersControlOptions"] }, outputs: { layersControlReady: "leafletLayersControlReady" }, ngImport: i0 }); }
664
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletLayersControlDirective, deps: [{ token: LeafletDirective }, { token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
665
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.3", type: LeafletLayersControlDirective, isStandalone: true, selector: "[leafletLayersControl]", inputs: { layersControlConfig: ["leafletLayersControl", "layersControlConfig"], layersControlOptions: ["leafletLayersControlOptions", "layersControlOptions"] }, outputs: { layersControlReady: "leafletLayersControlReady" }, ngImport: i0 }); }
669
666
  }
670
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletLayersControlDirective, decorators: [{
667
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletLayersControlDirective, decorators: [{
671
668
  type: Directive,
672
669
  args: [{
673
670
  selector: '[leafletLayersControl]',
674
- standalone: false
675
671
  }]
676
672
  }], ctorParameters: () => [{ type: LeafletDirective }, { type: i0.KeyValueDiffers }, { type: i0.NgZone }], propDecorators: { layersControlConfig: [{
677
673
  type: Input,
@@ -772,14 +768,13 @@ class LeafletBaseLayersDirective {
772
768
  }
773
769
  }
774
770
  }
775
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletBaseLayersDirective, deps: [{ token: LeafletDirective }, { token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
776
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: LeafletBaseLayersDirective, isStandalone: false, selector: "[leafletBaseLayers]", inputs: { baseLayers: ["leafletBaseLayers", "baseLayers"], layersControlOptions: ["leafletLayersControlOptions", "layersControlOptions"] }, outputs: { layersControlReady: "leafletLayersControlReady" }, ngImport: i0 }); }
771
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletBaseLayersDirective, deps: [{ token: LeafletDirective }, { token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
772
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.3", type: LeafletBaseLayersDirective, isStandalone: true, selector: "[leafletBaseLayers]", inputs: { baseLayers: ["leafletBaseLayers", "baseLayers"], layersControlOptions: ["leafletLayersControlOptions", "layersControlOptions"] }, outputs: { layersControlReady: "leafletLayersControlReady" }, ngImport: i0 }); }
777
773
  }
778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletBaseLayersDirective, decorators: [{
774
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletBaseLayersDirective, decorators: [{
779
775
  type: Directive,
780
776
  args: [{
781
777
  selector: '[leafletBaseLayers]',
782
- standalone: false
783
778
  }]
784
779
  }], ctorParameters: () => [{ type: LeafletDirective }, { type: i0.KeyValueDiffers }, { type: i0.NgZone }], propDecorators: { baseLayers: [{
785
780
  type: Input,
@@ -793,8 +788,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
793
788
  }] } });
794
789
 
795
790
  class LeafletModule {
796
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
797
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: LeafletModule, declarations: [LeafletDirective,
791
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
792
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.3", ngImport: i0, type: LeafletModule, imports: [LeafletDirective,
798
793
  LeafletLayerDirective,
799
794
  LeafletLayersDirective,
800
795
  LeafletLayersControlDirective,
@@ -803,19 +798,19 @@ class LeafletModule {
803
798
  LeafletLayersDirective,
804
799
  LeafletLayersControlDirective,
805
800
  LeafletBaseLayersDirective] }); }
806
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletModule }); }
801
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletModule }); }
807
802
  }
808
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: LeafletModule, decorators: [{
803
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: LeafletModule, decorators: [{
809
804
  type: NgModule,
810
805
  args: [{
811
- exports: [
806
+ imports: [
812
807
  LeafletDirective,
813
808
  LeafletLayerDirective,
814
809
  LeafletLayersDirective,
815
810
  LeafletLayersControlDirective,
816
811
  LeafletBaseLayersDirective
817
812
  ],
818
- declarations: [
813
+ exports: [
819
814
  LeafletDirective,
820
815
  LeafletLayerDirective,
821
816
  LeafletLayersDirective,