@mapcomponents/react-maplibre 0.1.43 → 0.1.46

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.
Files changed (169) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/coverage/clover.xml +222 -146
  3. package/coverage/coverage-final.json +7 -5
  4. package/coverage/lcov-report/index.html +86 -71
  5. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +40 -10
  6. package/coverage/lcov-report/src/components/MapLibreMap/index.html +17 -17
  7. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  8. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  9. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
  10. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  11. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  12. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +1 -1
  14. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  15. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  17. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  18. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +1 -1
  19. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  20. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +188 -53
  21. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +21 -21
  22. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  23. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +1 -1
  25. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +1 -1
  27. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +2 -2
  29. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  30. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  31. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  33. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +184 -0
  35. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +116 -0
  36. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  37. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
  39. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  40. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  41. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +232 -0
  42. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +25 -10
  43. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  44. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  46. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
  48. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  50. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  51. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
  52. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  53. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  54. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +74 -20
  56. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +19 -19
  57. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  58. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  59. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +80 -20
  60. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +21 -21
  61. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +1 -1
  62. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  63. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +1 -1
  64. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  65. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  66. package/coverage/lcov-report/src/contexts/index.html +1 -1
  67. package/coverage/lcov-report/src/hooks/index.html +19 -19
  68. package/coverage/lcov-report/src/hooks/useLayer.ts.html +72 -27
  69. package/coverage/lcov-report/src/hooks/useMap.ts.html +1 -1
  70. package/coverage/lcov-report/src/hooks/useMapState.ts.html +1 -1
  71. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  72. package/coverage/lcov-report/src/index.html +1 -1
  73. package/coverage/lcov-report/src/index.ts.html +9 -6
  74. package/coverage/lcov.info +452 -279
  75. package/dist/index.esm.js +136 -40
  76. package/dist/index.esm.js.map +1 -1
  77. package/docs-build/{0.b1b9b035.iframe.bundle.js → 0.0ee4f98c.iframe.bundle.js} +2 -2
  78. package/docs-build/0.0ee4f98c.iframe.bundle.js.map +1 -0
  79. package/docs-build/{1.c50fb367.iframe.bundle.js → 1.bb3cf738.iframe.bundle.js} +3 -3
  80. package/docs-build/1.bb3cf738.iframe.bundle.js.map +1 -0
  81. package/docs-build/{17.2e544968.iframe.bundle.js → 17.97db5b3f.iframe.bundle.js} +2 -2
  82. package/docs-build/17.97db5b3f.iframe.bundle.js.map +1 -0
  83. package/docs-build/{18.42087006.iframe.bundle.js → 18.f8d843df.iframe.bundle.js} +3 -3
  84. package/docs-build/18.f8d843df.iframe.bundle.js.map +1 -0
  85. package/docs-build/{19.7e782442.iframe.bundle.js → 19.c45e6b08.iframe.bundle.js} +2 -2
  86. package/docs-build/19.c45e6b08.iframe.bundle.js.map +1 -0
  87. package/docs-build/{2.e58dc625.iframe.bundle.js → 2.42c790e4.iframe.bundle.js} +2 -2
  88. package/docs-build/2.42c790e4.iframe.bundle.js.map +1 -0
  89. package/docs-build/{20.f009289a.iframe.bundle.js → 20.120bbcfb.iframe.bundle.js} +2 -2
  90. package/docs-build/20.120bbcfb.iframe.bundle.js.map +1 -0
  91. package/docs-build/{21.1cdc9040.iframe.bundle.js → 21.37c885f1.iframe.bundle.js} +2 -2
  92. package/docs-build/21.37c885f1.iframe.bundle.js.map +1 -0
  93. package/docs-build/{22.c9e6b2d7.iframe.bundle.js → 22.7fbc99f4.iframe.bundle.js} +2 -2
  94. package/docs-build/22.7fbc99f4.iframe.bundle.js.map +1 -0
  95. package/docs-build/{3.a8172b89.iframe.bundle.js → 3.1a37a83e.iframe.bundle.js} +2 -2
  96. package/docs-build/3.1a37a83e.iframe.bundle.js.map +1 -0
  97. package/docs-build/iframe.html +1 -1
  98. package/docs-build/main~24120820.905c51c8.iframe.bundle.js +2 -0
  99. package/docs-build/main~24120820.905c51c8.iframe.bundle.js.map +1 -0
  100. package/docs-build/thumbnails/MlMeasureTool.png +0 -0
  101. package/docs-build/{vendors~main~0ad7406a.2054ae7c.iframe.bundle.js → vendors~main~0ad7406a.93aea1be.iframe.bundle.js} +3 -3
  102. package/docs-build/vendors~main~0ad7406a.93aea1be.iframe.bundle.js.map +1 -0
  103. package/docs-build/vendors~main~0f485567.6e7163ef.iframe.bundle.js +2 -0
  104. package/docs-build/vendors~main~0f485567.6e7163ef.iframe.bundle.js.map +1 -0
  105. package/docs-build/{vendors~main~41a6ab2c.a947ed53.iframe.bundle.js → vendors~main~41a6ab2c.da377733.iframe.bundle.js} +2 -2
  106. package/docs-build/vendors~main~41a6ab2c.da377733.iframe.bundle.js.map +1 -0
  107. package/docs-build/{vendors~main~52589227.1d1558cd.iframe.bundle.js → vendors~main~52589227.cebbe724.iframe.bundle.js} +2 -2
  108. package/docs-build/vendors~main~52589227.cebbe724.iframe.bundle.js.map +1 -0
  109. package/docs-build/{vendors~main~57c1f6cb.6a433835.iframe.bundle.js → vendors~main~57c1f6cb.86178471.iframe.bundle.js} +2 -2
  110. package/docs-build/vendors~main~57c1f6cb.86178471.iframe.bundle.js.map +1 -0
  111. package/docs-build/{vendors~main~73914085.a8e03e3b.iframe.bundle.js → vendors~main~73914085.e2f34f8e.iframe.bundle.js} +6 -6
  112. package/docs-build/{vendors~main~73914085.a8e03e3b.iframe.bundle.js.map → vendors~main~73914085.e2f34f8e.iframe.bundle.js.map} +1 -1
  113. package/docs-build/{vendors~main~9c5b28f6.7b8beed1.iframe.bundle.js → vendors~main~9c5b28f6.eefa7445.iframe.bundle.js} +3 -3
  114. package/docs-build/vendors~main~9c5b28f6.eefa7445.iframe.bundle.js.map +1 -0
  115. package/docs-build/{vendors~main~b5906859.7f66dcaf.iframe.bundle.js → vendors~main~b5906859.210afc21.iframe.bundle.js} +5 -5
  116. package/docs-build/vendors~main~b5906859.210afc21.iframe.bundle.js.map +1 -0
  117. package/docs-build/{vendors~main~b8f44717.7053e467.iframe.bundle.js → vendors~main~b8f44717.7b869975.iframe.bundle.js} +3 -3
  118. package/docs-build/vendors~main~b8f44717.7b869975.iframe.bundle.js.map +1 -0
  119. package/docs-build/{vendors~main~b9cf3951.a4fd68f5.iframe.bundle.js → vendors~main~b9cf3951.62d39717.iframe.bundle.js} +11 -11
  120. package/docs-build/vendors~main~b9cf3951.62d39717.iframe.bundle.js.map +1 -0
  121. package/docs-build/vendors~main~d939e436.394e3bc7.iframe.bundle.js +2 -0
  122. package/docs-build/vendors~main~d939e436.394e3bc7.iframe.bundle.js.map +1 -0
  123. package/docs-build/vendors~main~f420d588.88814a6a.iframe.bundle.js +107 -0
  124. package/docs-build/vendors~main~f420d588.88814a6a.iframe.bundle.js.map +1 -0
  125. package/package.json +1 -1
  126. package/public/thumbnails/MlMeasureTool.png +0 -0
  127. package/src/components/MapLibreMap/MapLibreMap.stories.js +75 -20
  128. package/src/components/MapLibreMap/MapLibreMap.tsx +11 -1
  129. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +2 -2
  130. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +1 -1
  131. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +82 -37
  132. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +1 -1
  133. package/src/components/MlMeasureTool/MlMeasureTool.doc.de.md +3 -0
  134. package/src/components/MlMeasureTool/MlMeasureTool.meta.json +15 -0
  135. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +67 -0
  136. package/src/components/MlMeasureTool/MlMeasureTool.tsx +33 -0
  137. package/src/components/MlOsmLayer/{MlOsmLayer.stories.js → MlOsmLayer.stories_.js} +0 -0
  138. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +26 -8
  139. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +2 -3
  140. package/src/components/MlWmsLayer/MlWmsLayer.tsx +27 -7
  141. package/src/hooks/useLayer.ts +26 -11
  142. package/src/index.ts +4 -4
  143. package/src/util/layerRemovalTest.js +5 -0
  144. package/docs-build/0.b1b9b035.iframe.bundle.js.map +0 -1
  145. package/docs-build/1.c50fb367.iframe.bundle.js.map +0 -1
  146. package/docs-build/17.2e544968.iframe.bundle.js.map +0 -1
  147. package/docs-build/18.42087006.iframe.bundle.js.map +0 -1
  148. package/docs-build/19.7e782442.iframe.bundle.js.map +0 -1
  149. package/docs-build/2.e58dc625.iframe.bundle.js.map +0 -1
  150. package/docs-build/20.f009289a.iframe.bundle.js.map +0 -1
  151. package/docs-build/21.1cdc9040.iframe.bundle.js.map +0 -1
  152. package/docs-build/22.c9e6b2d7.iframe.bundle.js.map +0 -1
  153. package/docs-build/3.a8172b89.iframe.bundle.js.map +0 -1
  154. package/docs-build/main~24120820.edd86ba9.iframe.bundle.js +0 -2
  155. package/docs-build/main~24120820.edd86ba9.iframe.bundle.js.map +0 -1
  156. package/docs-build/vendors~main~0ad7406a.2054ae7c.iframe.bundle.js.map +0 -1
  157. package/docs-build/vendors~main~0f485567.de36692f.iframe.bundle.js +0 -2
  158. package/docs-build/vendors~main~0f485567.de36692f.iframe.bundle.js.map +0 -1
  159. package/docs-build/vendors~main~41a6ab2c.a947ed53.iframe.bundle.js.map +0 -1
  160. package/docs-build/vendors~main~52589227.1d1558cd.iframe.bundle.js.map +0 -1
  161. package/docs-build/vendors~main~57c1f6cb.6a433835.iframe.bundle.js.map +0 -1
  162. package/docs-build/vendors~main~9c5b28f6.7b8beed1.iframe.bundle.js.map +0 -1
  163. package/docs-build/vendors~main~b5906859.7f66dcaf.iframe.bundle.js.map +0 -1
  164. package/docs-build/vendors~main~b8f44717.7053e467.iframe.bundle.js.map +0 -1
  165. package/docs-build/vendors~main~b9cf3951.a4fd68f5.iframe.bundle.js.map +0 -1
  166. package/docs-build/vendors~main~d939e436.ba1cad1b.iframe.bundle.js +0 -2
  167. package/docs-build/vendors~main~d939e436.ba1cad1b.iframe.bundle.js.map +0 -1
  168. package/docs-build/vendors~main~f420d588.59c93444.iframe.bundle.js +0 -107
  169. package/docs-build/vendors~main~f420d588.59c93444.iframe.bundle.js.map +0 -1
@@ -57,13 +57,15 @@ function useLayer(props: useLayerProps): useLayerType {
57
57
  );
58
58
 
59
59
  const createLayer = useCallback(() => {
60
- if (initializedRef.current || !mapHook.map) return;
61
- initializedRef.current = true;
60
+ if (!mapHook.map) return;
62
61
 
63
62
  if (mapHook.map.map.getLayer(layerId.current)) {
64
- // remove (cleanup) & reinitialize the layer if type has changed
65
- cleanup();
63
+ mapHook.cleanup();
64
+ }
65
+ if (mapHook.map.map.getSource(layerId.current)) {
66
+ mapHook.map.map.removeSource(layerId.current);
66
67
  }
68
+ initializedRef.current = true;
67
69
 
68
70
  mapHook.map.addLayer(
69
71
  {
@@ -100,6 +102,18 @@ function useLayer(props: useLayerProps): useLayerType {
100
102
  mapHook.map.on("mouseleave", layerId.current, props.onLeave, mapHook.componentId);
101
103
  }
102
104
 
105
+ // recreate layer if style has changed
106
+ mapHook.map.on(
107
+ "styledata",
108
+ () => {
109
+ if (initializedRef.current && !mapHook.map?.map.getLayer(layerId.current)) {
110
+ console.log("Recreate Layer");
111
+ createLayer();
112
+ }
113
+ },
114
+ mapHook.componentId
115
+ );
116
+
103
117
  layerPaintConfRef.current = JSON.stringify(props.options?.paint);
104
118
  layerLayoutConfRef.current = JSON.stringify(props.options?.layout);
105
119
  layerTypeRef.current = props.options.type;
@@ -128,7 +142,12 @@ function useLayer(props: useLayerProps): useLayerType {
128
142
  }, [props.geojson, mapHook.map, props.options.type]);
129
143
 
130
144
  useEffect(() => {
131
- if (!mapHook.map || !mapHook.map?.map?.getLayer?.(layerId.current) || !initializedRef.current)
145
+ if (
146
+ !mapHook.map ||
147
+ !mapHook.map?.map?.getLayer?.(layerId.current) ||
148
+ !initializedRef.current ||
149
+ props.options.type !== layerTypeRef.current
150
+ )
132
151
  return;
133
152
 
134
153
  var key;
@@ -157,14 +176,10 @@ function useLayer(props: useLayerProps): useLayerType {
157
176
  }
158
177
  }, [props.options, mapHook.map]);
159
178
 
160
- const cleanup = () => {
161
- initializedRef.current = false;
162
- mapHook.cleanup();
163
- };
164
-
165
179
  useEffect(() => {
166
180
  return () => {
167
- cleanup();
181
+ initializedRef.current = false;
182
+ mapHook.cleanup();
168
183
  };
169
184
  }, []);
170
185
 
package/src/index.ts CHANGED
@@ -32,7 +32,7 @@ export { default as useMapState } from "./hooks/useMapState";
32
32
  export { default as useMap } from "./hooks/useMap";
33
33
  export { default as useWms } from "./hooks/useWms.js";
34
34
 
35
- export { MapComponentsProvider } from './contexts/MapContext';
36
- export { default as MapContext } from './contexts/MapContext';
37
- export { default as SimpleDataProvider } from './contexts/SimpleDataProvider';
38
- export { default as SimpleDataContext } from './contexts/SimpleDataContext';
35
+ export { MapComponentsProvider } from "./contexts/MapContext";
36
+ export { default as MapContext } from "./contexts/MapContext";
37
+ export { default as SimpleDataProvider } from "./contexts/SimpleDataProvider";
38
+ export { default as SimpleDataContext } from "./contexts/SimpleDataContext";
@@ -75,6 +75,11 @@ const layerRemovalTest = (
75
75
 
76
76
  wrapper.find(".trigger_refresh").simulate("click");
77
77
 
78
+ // debug helper
79
+ //console.log('layer removal test')
80
+ //console.log(wrapper.find(".layers_json").text());
81
+ //console.log(regexLayerNameTest.toString());
82
+ //console.log(regexLayerNameTest.test(wrapper.find(".layers_json").text()));
78
83
  expect(regexLayerNameTest.test(wrapper.find(".layers_json").text())).toEqual(
79
84
  true
80
85
  );
@@ -1 +0,0 @@
1
- {"version":3,"file":"0.b1b9b035.iframe.bundle.js","sources":["webpack:///0.b1b9b035.iframe.bundle.js"],"mappings":"AAAA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"1.c50fb367.iframe.bundle.js","sources":["webpack:///1.c50fb367.iframe.bundle.js"],"mappings":"AAAA;;;;;;;;AAixHA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"17.2e544968.iframe.bundle.js","sources":["webpack:///17.2e544968.iframe.bundle.js"],"mappings":"AAAA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"18.42087006.iframe.bundle.js","sources":["webpack:///18.42087006.iframe.bundle.js"],"mappings":"AAAA;;;;;;;;;;;;;;;AA6pOA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"19.7e782442.iframe.bundle.js","sources":["webpack:///19.7e782442.iframe.bundle.js"],"mappings":"AAAA;;;;;;;;;;;;AA6JA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"2.e58dc625.iframe.bundle.js","sources":["webpack:///2.e58dc625.iframe.bundle.js"],"mappings":"AAAA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20.f009289a.iframe.bundle.js","sources":["webpack:///20.f009289a.iframe.bundle.js"],"mappings":"AAAA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"21.1cdc9040.iframe.bundle.js","sources":["webpack:///21.1cdc9040.iframe.bundle.js"],"mappings":"AAAA;;AAQA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"22.c9e6b2d7.iframe.bundle.js","sources":["webpack:///22.c9e6b2d7.iframe.bundle.js"],"mappings":"AAAA;;;;;;AAWA;;;;;;;;;;;;;;AAoBA","sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"3.a8172b89.iframe.bundle.js","sources":["webpack:///3.a8172b89.iframe.bundle.js"],"mappings":"AAAA","sourceRoot":""}