@mapcomponents/react-maplibre 0.1.26 → 0.1.30

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 (108) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/coverage/clover.xml +456 -479
  3. package/coverage/coverage-final.json +21 -20
  4. package/coverage/lcov-report/index.html +94 -79
  5. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.js.html +22 -22
  6. package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
  7. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.js.html +11 -11
  8. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +11 -11
  9. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.js.html +1 -1
  10. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  11. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.js.html +4 -4
  12. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  13. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.js.html +212 -26
  14. package/coverage/lcov-report/src/components/MlFollowGps/index.html +19 -19
  15. package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.js.html +129 -165
  16. package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +8 -8
  17. package/coverage/lcov-report/src/components/MlGPXViewer/index.html +20 -20
  18. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js.html +45 -297
  19. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +19 -19
  20. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.js.html +2 -2
  21. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  22. package/coverage/lcov-report/src/components/MlLayer/MlLayer.js.html +2 -2
  23. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  24. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.js.html +4 -4
  25. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
  26. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.js.html +3 -3
  27. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  28. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  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.js.html +1 -1
  33. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.js.html +38 -104
  35. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +19 -19
  36. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.js.html +40 -139
  37. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +15 -15
  38. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +32 -155
  39. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +19 -19
  40. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +39 -198
  41. package/coverage/lcov-report/src/components/MlScaleReference/index.html +9 -9
  42. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +1 -1
  43. package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
  44. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +4 -4
  45. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  47. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.js.html +580 -0
  49. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +116 -0
  50. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  51. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  52. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.js.html +3 -3
  53. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +1 -1
  55. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
  56. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.js.html +8 -11
  57. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  58. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.js.html +1 -1
  59. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
  60. package/coverage/lcov-report/src/hooks/index.html +6 -6
  61. package/coverage/lcov-report/src/hooks/useMap.js.html +38 -26
  62. package/coverage/lcov-report/src/hooks/useMapState.js.html +47 -38
  63. package/coverage/lcov-report/src/hooks/useWms.js.html +1 -1
  64. package/coverage/lcov-report/src/i18n.js.html +1 -1
  65. package/coverage/lcov-report/src/index.html +1 -1
  66. package/coverage/lcov-report/src/translations/english.js.html +1 -1
  67. package/coverage/lcov-report/src/translations/german.js.html +1 -1
  68. package/coverage/lcov-report/src/translations/index.html +1 -1
  69. package/coverage/lcov.info +813 -858
  70. package/dist/index.esm.js +210 -425
  71. package/dist/index.esm.js.map +1 -1
  72. package/jsdoc.json +3 -3
  73. package/package.json +19 -13
  74. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.js +6 -2
  75. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +3 -3
  76. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +2 -2
  77. package/src/components/MlFollowGps/MlFollowGps.js +74 -12
  78. package/src/components/MlGPXViewer/MlGPXViewer.js +69 -81
  79. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.js +6 -90
  80. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +4 -22
  81. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.js +2 -2
  82. package/src/components/MlNavigationCompass/MlNavigationCompass.js +17 -39
  83. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +3 -3
  84. package/src/components/MlNavigationTools/MlNavigationTools.js +30 -63
  85. package/src/components/MlOsmLayer/MlOsmLayer.js +15 -56
  86. package/src/components/MlOsmLayer/MlOsmLayer.stories.js +21 -10
  87. package/src/components/MlOsmLayer/MlOsmLayer.test.js +4 -4
  88. package/src/components/MlScaleReference/MlScaleReference.js +29 -82
  89. package/src/components/MlShareMapState/MlShareMapState.stories.js +1 -3
  90. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +2369 -2591
  91. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.doc.de.md +3 -0
  92. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.js +165 -0
  93. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.meta.json +15 -0
  94. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +52 -0
  95. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +20 -0
  96. package/src/components/MlTransitionGeoJsonLayer/assets/sample_1.json +26 -0
  97. package/src/components/MlTransitionGeoJsonLayer/assets/sample_2.json +22 -0
  98. package/src/components/MlTransitionGeoJsonLayer/assets/sample_polygon_1.json +33 -0
  99. package/src/components/{MlGeoJsonLayer → MlTransitionGeoJsonLayer}/util/transitionFunctions.js +63 -97
  100. package/src/components/MlWmsLayer/MlWmsLayer.js +1 -2
  101. package/src/decorators/MapContextDecorator.js +5 -0
  102. package/src/decorators/MultiMapContextDecorator.js +6 -0
  103. package/src/hooks/useMap.js +8 -4
  104. package/src/hooks/useMapState.js +4 -1
  105. package/src/decorators/EmptyMapContextDecorator.js +0 -25
  106. package/src/decorators/MapContext3DDecorator.js +0 -39
  107. package/src/decorators/MapContextDashboardDecorator.js +0 -19
  108. package/src/decorators/MapContextKlokantechBasicDecorator.js +0 -39
@@ -11,9 +11,12 @@ function useMap(props) {
11
11
  mapId: props.mapId,
12
12
  watch: {
13
13
  viewport: false,
14
- layers: true,
14
+ layers: props.waitForLayer ? true : false,
15
15
  sources: false,
16
16
  },
17
+ filter: {
18
+ includeBaseLayers: true,
19
+ },
17
20
  });
18
21
 
19
22
  const initializedRef = useRef(false);
@@ -21,7 +24,7 @@ function useMap(props) {
21
24
 
22
25
  const componentId = useRef(uuidv4());
23
26
 
24
- const [mapIsReady, setMapIsReady] = useState(undefined);
27
+ const [mapIsReady, setMapIsReady] = useState(false);
25
28
 
26
29
  useEffect(() => {
27
30
  let _componentId = componentId.current;
@@ -39,7 +42,8 @@ function useMap(props) {
39
42
  useEffect(() => {
40
43
  if (!mapContext.mapExists(props.mapId) || initializedRef.current) return;
41
44
 
42
- //check if insertBeforeLayer exists
45
+ // check if waitForLayer (string, layer id of the layer this hook is supposed to wait for)
46
+ // exists as layer in the MapLibre instance
43
47
  if (props.waitForLayer) {
44
48
  let layerFound = false;
45
49
 
@@ -57,7 +61,7 @@ function useMap(props) {
57
61
  initializedRef.current = true;
58
62
  mapRef.current = mapContext.getMap(props.mapId);
59
63
  setMapIsReady(true);
60
- }, [mapContext.mapIds, mapState.layers, mapContext, props.mapId]);
64
+ }, [mapContext.mapIds, mapState.layers, mapContext, props.waitForLayer, props.mapId]);
61
65
 
62
66
  return {
63
67
  map: mapRef.current,
@@ -61,6 +61,7 @@ function useMapState(props) {
61
61
  let _componentId = componentId.current;
62
62
 
63
63
  return () => {
64
+ // cleanup all event listeners
64
65
  if (mapRef.current) {
65
66
  mapRef.current.cleanup(_componentId);
66
67
  mapRef.current = undefined;
@@ -79,6 +80,7 @@ function useMapState(props) {
79
80
  if (props?.watch?.viewport) {
80
81
  setViewport(mapRef.current.wrapper.viewportState);
81
82
 
83
+ // register viewportchange event handler
82
84
  mapRef.current.wrapper.on(
83
85
  "viewportchange",
84
86
  () => {
@@ -90,6 +92,7 @@ function useMapState(props) {
90
92
  );
91
93
  }
92
94
 
95
+ // register layerchange event handler
93
96
  if (props?.watch?.layers) {
94
97
  refreshLayerState();
95
98
 
@@ -103,7 +106,7 @@ function useMapState(props) {
103
106
  componentId.current
104
107
  );
105
108
  }
106
- }, [mapContext.mapIds, mapContext, props.mapId, refreshLayerState]);
109
+ }, [mapContext.mapIds, mapContext, props.mapId, refreshLayerState, props]);
107
110
 
108
111
  return {
109
112
  layers,
@@ -1,25 +0,0 @@
1
- import React from "react";
2
-
3
- import { MapComponentsProvider } from "@mapcomponents/react-core";
4
- import { LoadingOverlayProvider } from "../ui_components/LoadingOverlayContext";
5
- import LoadingOverlay from "../ui_components/LoadingOverlay";
6
- import "./style.css";
7
- import { createTheme, ThemeProvider } from "@mui/material/styles";
8
-
9
- const theme = createTheme({});
10
-
11
- const decorators = [
12
- (Story) => (
13
- <ThemeProvider theme={theme}>
14
- <MapComponentsProvider>
15
- <LoadingOverlayProvider>
16
- <LoadingOverlay></LoadingOverlay>
17
-
18
- <Story />
19
- </LoadingOverlayProvider>
20
- </MapComponentsProvider>
21
- </ThemeProvider>
22
- ),
23
- ];
24
-
25
- export default decorators;
@@ -1,39 +0,0 @@
1
- import React from "react";
2
-
3
- import { MapComponentsProvider } from "@mapcomponents/react-core";
4
- import MapLibreMap from "../components/MapLibreMap/MapLibreMap";
5
- import "./style.css";
6
- import { createTheme, ThemeProvider } from "@mui/material/styles";
7
-
8
- const theme = createTheme({});
9
-
10
- const decorators = [
11
- (Story) => (
12
- <div className="fullscreen_map">
13
- <ThemeProvider theme={theme}>
14
- <MapComponentsProvider>
15
- <Story />
16
- <MapLibreMap
17
- options={{
18
- //style: "mapbox://styles/mapbox/light-v10",
19
- //center: [-87.62712, 41.89033],
20
- zoom: 14.5,
21
- //pitch: 45,
22
- //style: "https://wms.wheregroup.com/tileserver/style/osm-bright.json",
23
- style: "https://wms.wheregroup.com/tileserver/style/osm-liberty.json",
24
- //center: [8.607, 53.1409349],
25
- // zoom: 13,
26
- center: [7.0851268, 50.73884],
27
- // maxBounds: [
28
- // [1.40625, 43.452919],
29
- // [17.797852, 55.973798],
30
- // ],
31
- }}
32
- />
33
- </MapComponentsProvider>
34
- </ThemeProvider>
35
- </div>
36
- ),
37
- ];
38
-
39
- export default decorators;
@@ -1,19 +0,0 @@
1
- import React from "react";
2
-
3
- import { MapComponentsProvider } from "@mapcomponents/react-core";
4
- import "./style.css";
5
- import { createTheme, ThemeProvider } from "@mui/material/styles";
6
-
7
- const theme = createTheme({});
8
-
9
- const decorators = [
10
- (Story) => (
11
- <ThemeProvider theme={theme}>
12
- <MapComponentsProvider>
13
- <Story />
14
- </MapComponentsProvider>
15
- </ThemeProvider>
16
- ),
17
- ];
18
-
19
- export default decorators;
@@ -1,39 +0,0 @@
1
- import React from "react";
2
-
3
- import { MapComponentsProvider } from "@mapcomponents/react-core";
4
- import MapLibreMap from "../components/MapLibreMap/MapLibreMap";
5
- import "./style.css";
6
- import { createTheme, ThemeProvider } from "@mui/material/styles";
7
-
8
- const theme = createTheme({});
9
-
10
- const decorators = [
11
- (Story) => (
12
- <div className="fullscreen_map">
13
- <ThemeProvider theme={theme}>
14
- <MapComponentsProvider>
15
- <Story />
16
- <MapLibreMap
17
- options={{
18
- //style: "mapbox://styles/mapbox/light-v10",
19
- //center: [-87.62712, 41.89033],
20
- zoom: 14.5,
21
- //pitch: 45,
22
- style: "https://wms.wheregroup.com/tileserver/style/klokantech-basic.json",
23
- //style:"https://wms.wheregroup.com/tileserver/style/osm-liberty.json",
24
- //center: [8.607, 53.1409349],
25
- // zoom: 13,
26
- center: [7.0851268, 50.73884],
27
- // maxBounds: [
28
- // [1.40625, 43.452919],
29
- // [17.797852, 55.973798],
30
- // ],
31
- }}
32
- />
33
- </MapComponentsProvider>
34
- </ThemeProvider>
35
- </div>
36
- ),
37
- ];
38
-
39
- export default decorators;