Changelog
May 6, 2026 · View on GitHub
21.2.1
- Docs: restructured README — extracted API reference and Recipes to docs/; added Angular component popup pattern to Recipes
- Tests: expanded unit test coverage to 91 tests across all directives; added Codecov integration
- CI: upgraded to Node 24, actions/checkout and actions/setup-node to v6
- Chore: updated copyright to BlueHalo LLC; added npm version badge
21.2.0
Add (leafletOverlayAdd) and (leafletOverlayRemove) output bindings to the [leafletLayersControl] directive. These pass through Leaflet's overlayadd and overlayremove map events, which fire when a user checks or unchecks an overlay in the layers control. Event data is typed as LayersControlEvent (provides layer and name). Closes #285.
21.1.1
Fix "listener not found" console warnings when a component using [leafletBaseLayers] is destroyed. The root cause was a non-deterministic destruction order between sibling Angular directives — if LeafletDirective destroyed first, its map cleanup already removed the layer event listeners that LeafletBaseLayersDirective then tried to remove again. Fix: listen to Leaflet's unload event to detect when the map has been removed and skip the redundant layer cleanup in that case (fixes #334).
21.1.0
Improve type definitions across directives and models — replace any with proper Leaflet types (TileLayerOptions, Control.LayersOptions, ReturnType<typeof setTimeout>, etc.). TypeScript consumers benefit from better type safety and IDE support. Note: if you were relying on any to pass plugin-extended option types, you may need to cast to the appropriate base type (fixes #385).
21.0.1
Fix map event listener leak in ngOnDestroy - map.off() is now called before map.remove() to ensure all listeners registered via addMapEventListeners() are properly released (fixes #376).
21.0
Support for Angular.io 21.
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. 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).
20.0
Support for Angular.io 20.
19.0
Support for Angular.io 19.
18.0
Support for Angular.io 18.
Also, we are deprecating the @asymmetrik namespace. This will be the last version of this package we publish under that namespace. This and future versions will be under the @bluehalo namespace. 🫗
17.0
Support for Angular.io 17. 🎉
16.0
Support for Angular.io 16.
15.0
Support for Angular.io 15. 🎉
14.0
Support for Angular.io 14. 🎉
13.0
Support for Angular.io 13. 🎉 We skipped a bunch of versions to get to the Ivy built, Angular-CLI based latest. This was a big migration to a new structure and build process, so file a bug if you encounter any issues.
13.0.1
Minor cleanup in the project and removed an accidental dependency
8.1
Added call to Map.remove in OnDestroy handler. This should ensure that any outstanding event handlers are cleaned up. Added demo example for adding/removing maps dynamically.
8.0
Support for Angular.io 10.
7.0
Support for Angular.io 9. 🎉
- Are your markers broken? In Leaflet 1.6, the marker icons changed enough to create new hashes. See README for more details.
- Renamed UMD bundle to
ngx-leaflet.umd.js. This shouldn't affect anyone unless you're manually including the bundle. - Angular deprecated parameterless forRoot, so I removed the static function. You may need to update your import.
7.0.1
Fixed an error running the demo. Cleanup in the README. Fixing minification to exclude comments and include license.
6.0
Support for Angular.io 8.
5.0
Support for Angular.io 7.
Also moved demo to localhost:4200.
4.0
Support for Angular 6. Also migrated to using npm scripts for the build (no more dev dependency on gulp).
4.1.0
Exporting the LeafletUtil class.
3.0
Support for Angular 5. Also cleaned up some of the functionality related to Angular zone management. Added documentation to README on Zone management.
3.1.0
Added map events, layer events.
Added several input bound map options including [leafletMaxBounds], [leafletMaxZoom], and [leafletMinZoom].
Added output binding for map center - (leafletMapCenter) and map zoom - (leafletMapZoom).
2.0
Support for Angular 4.
2.6.0
Wrapping several map operations in NgZone.runOutsideAngular in order to prevent excessive dirty checking.
If you encounter an unexpected issue due to this change, please file an issue.
2.5.0
Added the [leafletLayer] directive for adding/removing individual layers.
2.3.0
Renamed the package to ngx-leaflet