@mapcomponents/react-maplibre 0.1.22 → 0.1.23

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 (71) hide show
  1. package/coverage/clover.xml +90 -109
  2. package/coverage/coverage-final.json +3 -3
  3. package/coverage/lcov-report/index.html +18 -18
  4. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.js.html +1 -1
  5. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  6. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.js.html +1 -1
  7. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  8. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.js.html +1 -1
  9. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  10. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +1 -1
  11. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.js.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.js.html +1 -1
  15. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
  16. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js.html +1 -1
  18. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html +1 -1
  20. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  21. package/coverage/lcov-report/src/components/MlLayer/MlLayer.js.html +1 -1
  22. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  23. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.js.html +1 -1
  24. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  25. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.js.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  27. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  29. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  31. package/coverage/lcov-report/src/components/MlMarker/MlMarker.js.html +1 -1
  32. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  33. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.js.html +1 -1
  34. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  35. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.js.html +1 -1
  36. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  37. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  38. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  39. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
  40. package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
  41. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  42. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  43. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
  44. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  46. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  47. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  48. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  49. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.js.html +74 -194
  50. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +17 -17
  51. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  52. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  53. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.js.html +1 -1
  54. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  55. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  57. package/coverage/lcov-report/src/hooks/index.html +1 -1
  58. package/coverage/lcov-report/src/hooks/useMap.js.html +22 -22
  59. package/coverage/lcov-report/src/hooks/useMapState.js.html +34 -34
  60. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  61. package/coverage/lcov-report/src/i18n.js.html +1 -1
  62. package/coverage/lcov-report/src/index.html +1 -1
  63. package/coverage/lcov-report/src/translations/english.js.html +1 -1
  64. package/coverage/lcov-report/src/translations/german.js.html +1 -1
  65. package/coverage/lcov-report/src/translations/index.html +1 -1
  66. package/coverage/lcov.info +132 -167
  67. package/dist/index.esm.js +23 -60
  68. package/dist/index.esm.js.map +1 -1
  69. package/package.json +1 -1
  70. package/src/components/MlVectorTileLayer/MlVectorTileLayer.js +51 -91
  71. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +6 -6
package/dist/index.esm.js CHANGED
@@ -2683,51 +2683,34 @@ MlOsmLayer.propTypes = {
2683
2683
  */
2684
2684
 
2685
2685
  var MlVectorTileLayer = function MlVectorTileLayer(props) {
2686
- var mapContext = useContext(MapContext);
2687
- var layerName = "vector-tile-layer-";
2688
- var sourceName = "vector-tile-source-";
2689
- var idSuffixRef = useRef(new Date().getTime());
2686
+ var mapHook = useMap({
2687
+ mapId: props.mapId,
2688
+ waitForLayer: props.insertBeforeLayer
2689
+ });
2690
2690
  var layerIdsRef = useRef({});
2691
+ var layerId = useRef(props.layerId || "MlVectorTileLayer-" + mapHook.componentId);
2691
2692
  var layerPaintConfsRef = useRef({});
2692
2693
  var layerLayoutConfsRef = useRef({});
2693
2694
  var initializedRef = useRef(false);
2694
- var mapRef = useRef(null);
2695
-
2696
- var cleanup = function cleanup() {
2697
- if (mapRef.current && mapRef.current.style) {
2698
- for (var key in layerIdsRef.current) {
2699
- if (mapRef.current.getLayer(layerIdsRef.current[key])) {
2700
- mapRef.current.removeLayer(layerIdsRef.current[key]);
2701
- }
2702
- }
2703
-
2704
- if (mapRef.current.getSource(sourceName + idSuffixRef.current)) {
2705
- mapRef.current.removeSource(sourceName + idSuffixRef.current);
2706
- }
2707
- }
2708
- };
2709
-
2710
2695
  useEffect(function () {
2711
- return cleanup;
2712
- }, []);
2713
- useEffect(function () {
2714
- if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
2715
- initializedRef.current = true;
2716
- mapRef.current = mapContext.getMap(props.mapId); // Add the new layer to the openlayers instance once it is available
2696
+ if (!mapHook.map || initializedRef.current) return;
2697
+ initializedRef.current = true; // Add the new layer to the openlayers instance once it is available
2717
2698
 
2718
- mapRef.current.addSource(sourceName + idSuffixRef.current, _objectSpread2({
2699
+ mapHook.map.addSource(layerId, _objectSpread2({
2719
2700
  type: "vector",
2720
2701
  tiles: [props.url],
2721
2702
  tileSize: 512,
2722
2703
  attribution: ""
2723
- }, props.sourceOptions));
2704
+ }, props.sourceOptions), mapHook.componentId);
2724
2705
 
2725
2706
  for (var key in props.layers) {
2726
- var layerId = layerName + "_" + key + "_" + idSuffixRef.current;
2727
- layerIdsRef.current[key] = layerId;
2728
- mapRef.current.addLayer(_objectSpread2({
2729
- id: layerId,
2730
- source: sourceName + idSuffixRef.current,
2707
+ var _layerId = layerId.current + "_" + key;
2708
+
2709
+ layerIdsRef.current[key] = _layerId;
2710
+ console.log(_layerId);
2711
+ mapHook.map.addLayer(_objectSpread2({
2712
+ id: _layerId,
2713
+ source: layerId.current,
2731
2714
  type: "line",
2732
2715
  minzoom: 0,
2733
2716
  maxzoom: 22,
@@ -2737,23 +2720,22 @@ var MlVectorTileLayer = function MlVectorTileLayer(props) {
2737
2720
  "line-color": "rgb(80, 80, 80)",
2738
2721
  "line-width": 2
2739
2722
  }
2740
- }, props.layers[key]));
2723
+ }, props.layers[key]), props.insertBeforeLayer, mapHook.componentId);
2741
2724
  layerPaintConfsRef.current[key] = JSON.stringify(props.layers[key].paint);
2742
2725
  layerLayoutConfsRef.current[key] = JSON.stringify(props.layers[key].layout);
2743
2726
  }
2744
- }, [mapContext.mapIds, props, mapContext]);
2727
+ }, [mapHook.map, props]);
2745
2728
  useEffect(function () {
2746
- if (!mapRef.current) return; // the MapLibre-gl instance (mapContext.map) is accessible here
2747
- // initialize the layer and add it to the MapLibre-gl instance or do something else with it
2729
+ if (!mapHook.map || !initializedRef.current) return; // initialize the layer and add it to the MapLibre-gl instance or do something else with it
2748
2730
 
2749
2731
  for (var key in props.layers) {
2750
- if (mapRef.current.getLayer(layerIdsRef.current[key])) {
2732
+ if (mapHook.map.getLayer(layerIdsRef.current[key])) {
2751
2733
  // update changed paint property
2752
2734
  var layerPaintConfString = JSON.stringify(props.layers[key].paint);
2753
2735
 
2754
2736
  if (layerPaintConfString !== layerPaintConfsRef.current[key]) {
2755
2737
  for (var paintKey in props.layers[key].paint) {
2756
- mapContext.getMap(props.mapId).setPaintProperty(layerIdsRef.current[key], paintKey, props.layers[key].paint[paintKey]);
2738
+ mapHook.map.setPaintProperty(layerIdsRef.current[key], paintKey, props.layers[key].paint[paintKey]);
2757
2739
  }
2758
2740
  }
2759
2741
 
@@ -2763,28 +2745,14 @@ var MlVectorTileLayer = function MlVectorTileLayer(props) {
2763
2745
 
2764
2746
  if (layerLayoutConfString !== layerLayoutConfsRef.current[key]) {
2765
2747
  for (var layoutKey in props.layers[key].layout) {
2766
- mapContext.getMap(props.mapId).setLayoutProperty(layerIdsRef.current[key], layoutKey, props.layers[key].layout[layoutKey]);
2748
+ mapHook.map.setLayoutProperty(layerIdsRef.current[key], layoutKey, props.layers[key].layout[layoutKey]);
2767
2749
  }
2768
2750
  }
2769
2751
 
2770
2752
  layerLayoutConfsRef.current[key] = layerLayoutConfString;
2771
2753
  }
2772
2754
  }
2773
- }, [props.layers, props, mapContext]);
2774
- useEffect(function () {
2775
- if (!mapRef.current) return;
2776
-
2777
- for (var key in props.layers) {
2778
- if (mapRef.current.getLayer(layerIdsRef.current[key])) {
2779
- // toggle layer visibility by changing the layout object's visibility property
2780
- if (props.visible) {
2781
- mapContext.getMap(props.mapId).setLayoutProperty(layerIdsRef.current[key], "visibility", "visible");
2782
- } else {
2783
- mapContext.getMap(props.mapId).setLayoutProperty(layerIdsRef.current[key], "visibility", "none");
2784
- }
2785
- }
2786
- }
2787
- }, [props.visible]);
2755
+ }, [props.layers, mapHook.map]);
2788
2756
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null);
2789
2757
  };
2790
2758
 
@@ -2804,11 +2772,6 @@ MlVectorTileLayer.propTypes = {
2804
2772
  */
2805
2773
  layers: PropTypes.object,
2806
2774
 
2807
- /**
2808
- * Boolean value to control the visibility of this layer
2809
- */
2810
- visible: PropTypes.bool,
2811
-
2812
2775
  /**
2813
2776
  * String of the URL of a wms layer
2814
2777
  */