Releases: dimfeld/svelte-maplibre
v1.0.0 - Svelte 5 Rewrite and Other Upgrades
1.0 of svelte-maplibre is released! This rewrites a lot of the internal functionality to work with Svelte 5 runes, and contains many other enhancements for better feature support and performance. Most users of the package won't need to change their code much, if at all, to upgrade.
Major Changes
-
#262
547e5e1
Thanks @dimfeld! - Setloaded = true
onstyle.load
instead ofload
.This greatly improves responsiveness of setting up the initial sources and layers.
The MapLibre component also no longer gates rendering its children snippet onloaded
.
TheLayer
and various source-based components included with this library will wait for it, but if you have a custom component you may need to wait forloaded
yourself using a pattern like this:const { map, loaded } = $derived(getMapContext()) $effect(() => { if(map && loaded) { map.addSource(...); } })
-
#214
0485a6a
Thanks @dimfeld! - Removemap
attribute from events. It was already present astarget
-
#214
0485a6a
Thanks @dimfeld! - Upgrade internal code to Svelte 5 runes -
#214
0485a6a
Thanks @dimfeld! - Internal: Change context structure used to pass info down the component hierarchy -
#214
0485a6a
Thanks @dimfeld! - Useundefined
instead ofnull
in many places. This improves ergonomics with Svelte component props. -
77c50dd
Thanks @dimfeld! - Update dependency spec for compatibility with maplibgre-gl 5
Minor Changes
-
#214
0485a6a
Thanks @dimfeld! - Add generics for Features on many components to permit better type safety -
#214
0485a6a
Thanks @dimfeld! - Only add event handlers to the map when something is actually listening -
#244
49af3f3
Thanks @Tintow! - Exposed the bearingSnap property in the maps props to allow control over the default automatic snap-to-north -
#246
2db55af
Thanks @dimfeld! - AddcanOpen
property to a Popup which allows per-feature control over whether to show a popup or not -
#262
547e5e1
Thanks @dimfeld! - Add BackgroundLayer component -
#262
547e5e1
Thanks @dimfeld! - Addanchor
property to markers -
#245
c1e8a00
Thanks @dimfeld! - Allow Popups to inherit lngLat from a parent Marker -
fbadf74
Thanks @dimfeld! - Pass boundbounds
prop out of component in same format it was passed in
Patch Changes
v1.0.0-next.13
Breaking Changes
-
#262
547e5e1
Thanks @dimfeld! - Setloaded = true
onstyle.load
instead ofload
.This greatly improves responsiveness of setting up the initial sources and layers.
The MapLibre component also no longer gates rendering its children snippet onloaded
.For most users this will not be a breaking change, since the
Layer
and various source-based components
included with this library will wait for it. If you have a custom component you may need to wait forloaded
yourself using a pattern like this:const { map, loaded } = $derived(getMapContext()) $effect(() => { if(map && loaded) { map.addSource(...); } })
Improvements
-
#246
2db55af
Thanks @dimfeld! - AddcanOpen
property to a Popup which allows per-feature control over whether to show a popup or not -
#262
547e5e1
Thanks @dimfeld! - Add BackgroundLayer component -
#262
547e5e1
Thanks @dimfeld! - Addanchor
property to markers -
#245
c1e8a00
Thanks @dimfeld! - Allow Popups to inherit lngLat from a parent Marker
Fixes
v1.0.0-next.12
- Fix more type name conflicts when a component has the same name as a type it imports. Thanks @viernullvier for the PR!
v1.0.0-next.11
v1.0.0-next.10
v1.0.0-next.9
FullscreenControl
was not showing up when container
was not specified. Thanks @0gust1 for the fix!
v1.0.0-next.8
Set a z-index on Popup so it shows up above DeckGlLayer, which changed with the upgrade to DeckGl's new Maplibre integration.
v1.0.0-next.7
Work around sveltejs/kit#13098 on VectorTileSource import.
v1.0.0-next.6
Always attach an error handler to the map, even if onerror
is not provided.
If onerror
is provided, the handler will just call it. Otherwise it will print the error to the console, except for AbortError
, which seems to always happen when loading a remote geojson source, and isn't useful to log.
v1.0.0-next.4
Export all the new functions in context.svelte.ts
from the top-level export file. You can still also reference these by importing from svelte-maplibre/context.svelte.js
.