@mapcomponents/react-maplibre 0.1.20 → 0.1.21
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/CHANGELOG.md +13 -0
- package/coverage/clover.xml +179 -165
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/index.html +36 -36
- package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.js.html +1 -1
- package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.js.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.js.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.js.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js.html +4 -4
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/MlLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/MlMarker.js.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.js.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.js.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
- package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +261 -111
- package/coverage/lcov-report/src/components/MlShareMapState/index.html +9 -9
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +1 -1
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
- package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.js.html +49 -13
- package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +15 -15
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.js.html +35 -89
- package/coverage/lcov-report/src/components/MlWmsLayer/index.html +17 -17
- package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.js.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
- package/coverage/lcov-report/src/hooks/index.html +12 -12
- package/coverage/lcov-report/src/hooks/useMap.js.html +40 -28
- package/coverage/lcov-report/src/hooks/useMapState.js.html +34 -34
- package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
- package/coverage/lcov-report/src/i18n.js.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/translations/english.js.html +1 -1
- package/coverage/lcov-report/src/translations/german.js.html +1 -1
- package/coverage/lcov-report/src/translations/index.html +1 -1
- package/coverage/lcov.info +304 -268
- package/dist/index.esm.js +69 -59
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/scripts/build-catalogue-markdown-docs.js +5 -3
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +26 -21
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +3 -3
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.de.md +2 -2
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.en.md +3 -0
- package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +2 -2
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +3 -3
- package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +2 -2
- package/src/components/MlShareMapState/MlShareMapState.js +138 -88
- package/src/components/MlShareMapState/MlShareMapState.stories.js +79 -29
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.js +17 -5
- package/src/components/MlWmsLayer/MlWmsLayer.js +16 -34
- package/src/hooks/useMap.js +4 -0
package/dist/index.esm.js
CHANGED
|
@@ -331,7 +331,7 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
|
|
|
331
331
|
/**
|
|
332
332
|
* Maps layerIds to layerState in JSON string form for quick deep comparisons
|
|
333
333
|
*/
|
|
334
|
-
|
|
334
|
+
layerStateString: "",
|
|
335
335
|
|
|
336
336
|
/**
|
|
337
337
|
* Previous Version of layerStateString
|
|
@@ -345,26 +345,30 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
|
|
|
345
345
|
* @returns object
|
|
346
346
|
*/
|
|
347
347
|
buildLayerObject: function buildLayerObject(layer) {
|
|
348
|
-
var _layer$paint, _layer$layout;
|
|
349
|
-
|
|
350
348
|
//if (self.baseLayers.indexOf(layer.id) === -1) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
Object.keys(values || {}).
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
349
|
+
//let paint = {};
|
|
350
|
+
//let values = layer.paint?._values;
|
|
351
|
+
//Object.keys(values || {}).map((propName) => {
|
|
352
|
+
// paint[propName] =
|
|
353
|
+
// typeof values[propName].value !== "undefined"
|
|
354
|
+
// ? values[propName].value.value
|
|
355
|
+
// : values[propName];
|
|
356
|
+
//});
|
|
357
|
+
//let layout = {};
|
|
358
|
+
//values = layer.layout?._values;
|
|
359
|
+
//Object.keys(values || {}).map((propName) => {
|
|
360
|
+
// layout[propName] =
|
|
361
|
+
// typeof values[propName].value !== "undefined"
|
|
362
|
+
// ? values[propName].value.value
|
|
363
|
+
// : values[propName];
|
|
364
|
+
//});
|
|
361
365
|
return {
|
|
362
366
|
id: layer.id,
|
|
363
367
|
type: layer.type,
|
|
364
368
|
visible: layer.visibility === "none" ? false : true,
|
|
365
|
-
baseLayer: self.baseLayers.indexOf(layer.id) !== -1,
|
|
366
|
-
|
|
367
|
-
|
|
369
|
+
baseLayer: self.baseLayers.indexOf(layer.id) !== -1 //paint,
|
|
370
|
+
//layout,
|
|
371
|
+
//filter: layers[layerId].filter,
|
|
368
372
|
//layout: layers[layerId].layout,
|
|
369
373
|
//maxzoom: layers[layerId].maxzoom,
|
|
370
374
|
//metadata: layers[layerId].metadata,
|
|
@@ -394,9 +398,11 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
|
|
|
394
398
|
*/
|
|
395
399
|
refreshLayerState: function refreshLayerState() {
|
|
396
400
|
self.wrapper.layerState = self.wrapper.buildLayerObjects();
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
401
|
+
|
|
402
|
+
if (JSON.stringify(self.wrapper.layerState) !== self.wrapper.layerStateString) {
|
|
403
|
+
self.wrapper.fire("layerchange");
|
|
404
|
+
self.wrapper.layerStateString = JSON.stringify(self.wrapper.layerState);
|
|
405
|
+
}
|
|
400
406
|
},
|
|
401
407
|
|
|
402
408
|
/**
|
|
@@ -733,16 +739,18 @@ var MapLibreGlWrapper = function MapLibreGlWrapper(props) {
|
|
|
733
739
|
self.wrapper.viewportState = self.wrapper.getViewport();
|
|
734
740
|
self.wrapper.fire("viewportchange");
|
|
735
741
|
});
|
|
742
|
+
self.map.on("idle", function () {
|
|
743
|
+
self.wrapper.refreshLayerState();
|
|
744
|
+
});
|
|
736
745
|
self.map.on("data", function () {
|
|
737
746
|
self.wrapper.refreshLayerState();
|
|
738
|
-
self.wrapper.fire("layerchange");
|
|
739
747
|
});
|
|
740
748
|
|
|
741
749
|
if (typeof props.onReady === "function") {
|
|
742
750
|
props.onReady(self.map, self);
|
|
743
751
|
}
|
|
744
752
|
|
|
745
|
-
case
|
|
753
|
+
case 11:
|
|
746
754
|
case "end":
|
|
747
755
|
return _context.stop();
|
|
748
756
|
}
|
|
@@ -1008,7 +1016,12 @@ function useMap(props) {
|
|
|
1008
1016
|
|
|
1009
1017
|
useEffect(function () {
|
|
1010
1018
|
var _componentId = componentId.current;
|
|
1019
|
+
console.log("initialize maphook");
|
|
1011
1020
|
return function () {
|
|
1021
|
+
console.log("cleanup maphook");
|
|
1022
|
+
console.log(_typeof(mapRef.current));
|
|
1023
|
+
console.log(JSON.stringify(mapRef.current.style._order));
|
|
1024
|
+
|
|
1012
1025
|
if (mapRef.current) {
|
|
1013
1026
|
mapRef.current.cleanup(_componentId);
|
|
1014
1027
|
mapRef.current = undefined;
|
|
@@ -1532,15 +1545,15 @@ var MlGeoJsonLayer = function MlGeoJsonLayer(props) {
|
|
|
1532
1545
|
}, props.options), props.insertBeforeLayer, mapHook.componentId);
|
|
1533
1546
|
|
|
1534
1547
|
if (typeof props.onHover !== "undefined") {
|
|
1535
|
-
mapHook.map.on("mousemove",
|
|
1548
|
+
mapHook.map.on("mousemove", layerId.current, props.onHover, mapHook.componentId);
|
|
1536
1549
|
}
|
|
1537
1550
|
|
|
1538
1551
|
if (typeof props.onClick !== "undefined") {
|
|
1539
|
-
mapHook.map.on("click",
|
|
1552
|
+
mapHook.map.on("click", layerId.current, props.onClick, mapHook.componentId);
|
|
1540
1553
|
}
|
|
1541
1554
|
|
|
1542
1555
|
if (typeof props.onLeave !== "undefined") {
|
|
1543
|
-
mapHook.map.on("mouseleave",
|
|
1556
|
+
mapHook.map.on("mouseleave", layerId.current, props.onLeave, mapHook.componentId);
|
|
1544
1557
|
}
|
|
1545
1558
|
|
|
1546
1559
|
if (props.type === "line" && typeof props.transitionTime !== "undefined" && typeof props.geojson.geometry !== "undefined") {
|
|
@@ -2751,12 +2764,17 @@ var MlVectorTileLayer = function MlVectorTileLayer(props) {
|
|
|
2751
2764
|
}
|
|
2752
2765
|
}, [props.layers, props, mapContext]);
|
|
2753
2766
|
useEffect(function () {
|
|
2754
|
-
if (!mapRef.current) return;
|
|
2767
|
+
if (!mapRef.current) return;
|
|
2755
2768
|
|
|
2756
|
-
|
|
2757
|
-
mapRef.current.
|
|
2758
|
-
|
|
2759
|
-
|
|
2769
|
+
for (var key in props.layers) {
|
|
2770
|
+
if (mapRef.current.getLayer(layerIdsRef.current[key])) {
|
|
2771
|
+
// toggle layer visibility by changing the layout object's visibility property
|
|
2772
|
+
if (props.visible) {
|
|
2773
|
+
mapContext.getMap(props.mapId).setLayoutProperty(layerIdsRef.current[key], "visibility", "visible");
|
|
2774
|
+
} else {
|
|
2775
|
+
mapContext.getMap(props.mapId).setLayoutProperty(layerIdsRef.current[key], "visibility", "none");
|
|
2776
|
+
}
|
|
2777
|
+
}
|
|
2760
2778
|
}
|
|
2761
2779
|
}, [props.visible]);
|
|
2762
2780
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null);
|
|
@@ -2778,6 +2796,11 @@ MlVectorTileLayer.propTypes = {
|
|
|
2778
2796
|
*/
|
|
2779
2797
|
layers: PropTypes.object,
|
|
2780
2798
|
|
|
2799
|
+
/**
|
|
2800
|
+
* Boolean value to control the visibility of this layer
|
|
2801
|
+
*/
|
|
2802
|
+
visible: PropTypes.bool,
|
|
2803
|
+
|
|
2781
2804
|
/**
|
|
2782
2805
|
* String of the URL of a wms layer
|
|
2783
2806
|
*/
|
|
@@ -2825,29 +2848,16 @@ var defaultProps = {
|
|
|
2825
2848
|
*/
|
|
2826
2849
|
|
|
2827
2850
|
var MlWmsLayer = function MlWmsLayer(props) {
|
|
2828
|
-
var
|
|
2829
|
-
|
|
2830
|
-
|
|
2851
|
+
var mapHook = useMap({
|
|
2852
|
+
mapId: props.mapId,
|
|
2853
|
+
waitForLayer: props.insertBeforeLayer
|
|
2854
|
+
});
|
|
2831
2855
|
var initializedRef = useRef(false);
|
|
2832
|
-
var layerId = useRef(props.layerId || componentId
|
|
2833
|
-
useEffect(function () {
|
|
2834
|
-
var _componentId = componentId.current;
|
|
2835
|
-
return function () {
|
|
2836
|
-
// This is the cleanup function, it is called when this react component is removed from react-dom
|
|
2837
|
-
if (mapRef.current) {
|
|
2838
|
-
mapRef.current.cleanup(_componentId);
|
|
2839
|
-
mapRef.current = null;
|
|
2840
|
-
}
|
|
2841
|
-
|
|
2842
|
-
initializedRef.current = false;
|
|
2843
|
-
};
|
|
2844
|
-
}, []);
|
|
2856
|
+
var layerId = useRef(props.layerId || "MlWmsLayer-" + mapHook.componentId);
|
|
2845
2857
|
useEffect(function () {
|
|
2846
2858
|
var _propsUrlParams2;
|
|
2847
2859
|
|
|
2848
|
-
if (!
|
|
2849
|
-
mapRef.current = mapContext.getMap(props.mapId);
|
|
2850
|
-
if (!mapRef.current) return;
|
|
2860
|
+
if (!mapHook.map || initializedRef.current) return;
|
|
2851
2861
|
initializedRef.current = true;
|
|
2852
2862
|
|
|
2853
2863
|
var _propsUrlParams;
|
|
@@ -2866,31 +2876,31 @@ var MlWmsLayer = function MlWmsLayer(props) {
|
|
|
2866
2876
|
|
|
2867
2877
|
var urlParams = new URLSearchParams(urlParamsObj);
|
|
2868
2878
|
var urlParamsStr = decodeURIComponent(urlParams.toString()) + "".replace(/%2F/g, "/").replace(/%3A/g, ":");
|
|
2869
|
-
|
|
2879
|
+
mapHook.map.addSource(layerId.current, _objectSpread2({
|
|
2870
2880
|
type: "raster",
|
|
2871
2881
|
tiles: [_wmsUrl + "?" + urlParamsStr],
|
|
2872
2882
|
tileSize: urlParamsObj.width,
|
|
2873
2883
|
attribution: props.attribution
|
|
2874
|
-
}, props.sourceOptions), componentId
|
|
2875
|
-
|
|
2884
|
+
}, props.sourceOptions), mapHook.componentId);
|
|
2885
|
+
mapHook.map.addLayer(_objectSpread2({
|
|
2876
2886
|
id: layerId.current,
|
|
2877
2887
|
type: "raster",
|
|
2878
|
-
source:
|
|
2879
|
-
}, props.layerOptions), props.insertBeforeLayer, componentId
|
|
2888
|
+
source: layerId.current
|
|
2889
|
+
}, props.layerOptions), props.insertBeforeLayer, mapHook.componentId);
|
|
2880
2890
|
|
|
2881
2891
|
if (!props.visible) {
|
|
2882
|
-
|
|
2892
|
+
mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");
|
|
2883
2893
|
}
|
|
2884
|
-
}, [
|
|
2894
|
+
}, [mapHook.map, props]);
|
|
2885
2895
|
useEffect(function () {
|
|
2886
|
-
if (!
|
|
2896
|
+
if (!mapHook.map || !initializedRef.current) return; // toggle layer visibility by changing the layout object's visibility property
|
|
2887
2897
|
|
|
2888
2898
|
if (props.visible) {
|
|
2889
|
-
|
|
2899
|
+
mapHook.map.setLayoutProperty(layerId.current, "visibility", "visible");
|
|
2890
2900
|
} else {
|
|
2891
|
-
|
|
2901
|
+
mapHook.map.setLayoutProperty(layerId.current, "visibility", "none");
|
|
2892
2902
|
}
|
|
2893
|
-
}, [props.visible]);
|
|
2903
|
+
}, [props.visible, mapHook.map]);
|
|
2894
2904
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null);
|
|
2895
2905
|
};
|
|
2896
2906
|
|