@mapcomponents/react-maplibre 0.1.66 → 0.1.67
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/.github/workflows/node_version_test.yml +1 -1
- package/.storybook/main.js +37 -31
- package/.storybook/preview.js +21 -0
- package/CHANGELOG.md +13 -0
- package/coverage/clover.xml +419 -344
- package/coverage/coverage-final.json +15 -14
- package/coverage/lcov-report/index.html +61 -61
- package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +24 -18
- package/coverage/lcov-report/src/components/MapLibreMap/index.html +14 -14
- package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +2 -2
- package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +9 -9
- package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlGpxViewer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +52 -40
- package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +10 -10
- package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +4 -4
- 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.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.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/MlOsmLayer.stories_.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 → MlScaleReference.tsx.html} +57 -36
- package/coverage/lcov-report/src/components/MlScaleReference/index.html +2 -2
- package/coverage/lcov-report/src/components/MlShareMapState/{MlShareMapState.js.html → MlShareMapState.tsx.html} +192 -84
- package/coverage/lcov-report/src/components/MlShareMapState/index.html +20 -20
- package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +1 -1
- package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlSketchTool/index.html +1 -1
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.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/MlThreejsLayer.tsx.html +769 -0
- package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +25 -10
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/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.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +11 -11
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +11 -11
- package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +27 -18
- package/coverage/lcov-report/src/components/MlWmsLoader/index.html +11 -11
- package/coverage/lcov-report/src/contexts/MapContext.tsx.html +50 -26
- package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
- package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
- package/coverage/lcov-report/src/contexts/index.html +1 -1
- package/coverage/lcov-report/src/hooks/index.html +21 -21
- package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +1 -1
- package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +1 -1
- package/coverage/lcov-report/src/hooks/useExportMap/index.html +1 -1
- package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useGpx/index.html +1 -1
- package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +1 -1
- package/coverage/lcov-report/src/hooks/useLayer.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +9 -9
- package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +1 -1
- package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +1 -1
- package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +1 -1
- package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +9 -6
- package/coverage/lcov-report/src/hooks/useMap.ts.html +2 -2
- package/coverage/lcov-report/src/hooks/useMapState.ts.html +8 -29
- package/coverage/lcov-report/src/hooks/useSource.ts.html +10 -10
- package/coverage/lcov-report/src/hooks/useWms.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.ts.html +80 -11
- package/coverage/lcov.info +741 -604
- package/dist/components/MapLibreMap/MapLibreMap.stories.d.ts +3 -0
- package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +17 -15
- package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +1 -1
- package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +1 -1
- package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +1 -1
- package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +1 -1
- package/dist/components/MlFeatureEditor/lib/create_supplementary_points.d.ts +1 -1
- package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
- package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +1 -1
- package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +1 -1
- package/dist/components/MlGpxViewer/MlGpxViewer.stories.d.ts +1 -1
- package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +1 -1
- package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +1 -1
- package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +1 -1
- package/dist/components/MlScaleReference/MlScaleReference.d.ts +7 -1
- package/dist/components/MlShareMapState/MlShareMapState.d.ts +32 -13
- package/dist/components/MlShareMapState/MlShareMapState.stories.d.ts +15 -9
- package/dist/components/MlSketchTool/MlSketchTool.stories.d.ts +1 -1
- package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +1 -1
- package/dist/components/MlSpatialElevationProfile/util/getElevationData.d.ts +1 -1
- package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +1 -1
- package/dist/components/MlThreeJsLayer/MlThreejsLayer.d.ts +29 -0
- package/dist/components/MlThreeJsLayer/lib/GLTFLoader.d.ts +2 -1
- package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +1 -1
- package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +1 -1
- package/dist/contexts/MapContext.d.ts +13 -2
- package/dist/custom.d.d.ts +1 -1
- package/dist/decorators/MapContextDecorator.d.ts +1 -1
- package/dist/decorators/MapContextDecoratorHooks.d.ts +1 -1
- package/dist/decorators/MultiMapContextDecorator.d.ts +1 -1
- package/dist/decorators/NoNavToolsDecorator.d.ts +1 -1
- package/dist/decorators/ThemeWrapper.d.ts +1 -3
- package/dist/hooks/useCameraFollowPath/useCameraFollowPath.stories.d.ts +1 -1
- package/dist/hooks/useLayerFilter/useLayerFilter.stories.d.ts +1 -1
- package/dist/index.d.ts +18 -8
- package/dist/index.esm.js +5590 -3701
- package/dist/index.esm.js.map +1 -1
- package/dist/setupTests.d.ts +6 -6
- package/package.json +56 -49
- package/public/thumbnails/{MlGPXViewer.png → MlGpxViewer.png} +0 -0
- package/rollup.config.js +49 -48
- package/src/@types/assets/index.d.ts +20 -0
- package/src/components/MapLibreMap/MapLibreMap.stories.js +8 -1
- package/src/components/MapLibreMap/MapLibreMap.tsx +11 -9
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +49 -39
- package/src/components/MlCenterPosition/MlCenterPosition.tsx +1 -1
- package/src/components/MlFollowGps/MlFollowGps.tsx +8 -8
- package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +21 -17
- package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +3 -3
- package/src/components/MlScaleReference/{MlScaleReference.js → MlScaleReference.tsx} +38 -31
- package/src/components/MlShareMapState/MlShareMapState.stories.tsx +100 -0
- package/src/components/MlShareMapState/{MlShareMapState.js → MlShareMapState.tsx} +94 -58
- package/src/components/MlThreeJsLayer/MlThreejsLayer.tsx +228 -0
- package/src/components/MlWmsLoader/MlWmsLoader.tsx +7 -4
- package/src/contexts/MapContext.tsx +26 -19
- package/src/custom.d.ts +5 -0
- package/src/decorators/MapContextDecorator.js +39 -28
- package/src/decorators/MapContextDecoratorHooks.js +18 -8
- package/src/decorators/MultiMapContextDecorator.js +79 -69
- package/src/decorators/NoNavToolsDecorator.js +34 -25
- package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +5 -4
- package/src/hooks/useMap.ts +1 -1
- package/src/hooks/useMapState.ts +6 -13
- package/src/hooks/useSource.ts +1 -1
- package/src/index.ts +31 -8
- package/src/ui_components/TopToolbar.tsx +1 -1
- package/tsconfig.json +1 -0
- package/src/components/MlShareMapState/MlShareMapState.stories.js +0 -100
- package/src/custom.d.tsx +0 -26
- package/src/decorators/ThemeWrapper.tsx +0 -9
|
@@ -1,31 +1,40 @@
|
|
|
1
|
-
import React from
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
2
|
|
|
3
|
-
import { MapComponentsProvider } from
|
|
4
|
-
import MapLibreMap from
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
const theme = createTheme({});
|
|
3
|
+
import { MapComponentsProvider } from '../index';
|
|
4
|
+
import MapLibreMap from '../components/MapLibreMap/MapLibreMap';
|
|
5
|
+
import './style.css';
|
|
6
|
+
import MlNavgiationTools from '../components/MlNavigationTools/MlNavigationTools';
|
|
7
|
+
import { ThemeProvider as MUIThemeProvider, createTheme } from '@mui/material/styles';
|
|
10
8
|
|
|
11
9
|
const decorators = [
|
|
12
|
-
(Story) =>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
10
|
+
(Story, context) => {
|
|
11
|
+
const theme = useMemo(
|
|
12
|
+
() =>
|
|
13
|
+
createTheme({
|
|
14
|
+
palette: {
|
|
15
|
+
mode: context?.globals?.theme ? context?.globals?.theme : 'light',
|
|
16
|
+
},
|
|
17
|
+
}),
|
|
18
|
+
[context?.globals?.theme]
|
|
19
|
+
);
|
|
20
|
+
return (
|
|
21
|
+
<div className="fullscreen_map">
|
|
22
|
+
<MUIThemeProvider theme={theme}>
|
|
23
|
+
<MapComponentsProvider>
|
|
24
|
+
<Story />
|
|
25
|
+
<MapLibreMap
|
|
26
|
+
options={{
|
|
27
|
+
zoom: 14.5,
|
|
28
|
+
style: 'https://wms.wheregroup.com/tileserver/style/osm-bright.json',
|
|
29
|
+
center: [7.0851268, 50.73884],
|
|
30
|
+
}}
|
|
31
|
+
mapId="map_1"
|
|
32
|
+
/>
|
|
33
|
+
</MapComponentsProvider>
|
|
34
|
+
</MUIThemeProvider>
|
|
35
|
+
</div>
|
|
36
|
+
);
|
|
37
|
+
},
|
|
29
38
|
];
|
|
30
39
|
|
|
31
40
|
export default decorators;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useRef, useEffect } from 'react';
|
|
2
2
|
import useMap from '../../hooks/useMap';
|
|
3
|
+
import { GeoJSONFeature } from 'maplibre-gl';
|
|
3
4
|
import {
|
|
4
|
-
|
|
5
|
+
LngLatLike,
|
|
5
6
|
Popup,
|
|
6
7
|
MapEventType,
|
|
7
8
|
} from 'maplibre-gl';
|
|
@@ -41,7 +42,7 @@ const useLayerHoverPopup = (props: useLayerHoverPopupProps) => {
|
|
|
41
42
|
props.layerId,
|
|
42
43
|
(
|
|
43
44
|
e: MapEventType & {
|
|
44
|
-
features?:
|
|
45
|
+
features?: ({[key:string]:string} & { geometry:{coordinates:[number,number]}})[] | undefined;
|
|
45
46
|
lngLat: { lng: number; lat: number };
|
|
46
47
|
}
|
|
47
48
|
) => {
|
|
@@ -52,7 +53,7 @@ const useLayerHoverPopup = (props: useLayerHoverPopupProps) => {
|
|
|
52
53
|
//const description = e.features[0].properties.desc;
|
|
53
54
|
let content = '';
|
|
54
55
|
if (e?.features?.[0] && typeof props.getPopupContent === 'function') {
|
|
55
|
-
content = props.getPopupContent(e.features[0]);
|
|
56
|
+
content = props.getPopupContent(e.features[0] as unknown as GeoJSONFeature);
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
if (coordinates?.[0]) {
|
|
@@ -66,7 +67,7 @@ const useLayerHoverPopup = (props: useLayerHoverPopupProps) => {
|
|
|
66
67
|
// Populate the popup and set its coordinates
|
|
67
68
|
|
|
68
69
|
// based on the feature found.
|
|
69
|
-
popup.current.setLngLat(coordinates).setHTML(content).addTo(mapHook.map.map);
|
|
70
|
+
popup.current.setLngLat(coordinates as LngLatLike).setHTML(content).addTo(mapHook.map.map);
|
|
70
71
|
}
|
|
71
72
|
},
|
|
72
73
|
mapHook.componentId
|
package/src/hooks/useMap.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useContext, useState, useEffect, useRef } from "react";
|
|
2
2
|
import { v4 as uuidv4 } from "uuid";
|
|
3
|
-
import MapContext from "../contexts/MapContext";
|
|
3
|
+
import MapContext, { MapContextType } from "../contexts/MapContext";
|
|
4
4
|
import useMapState from "./useMapState";
|
|
5
5
|
import MapLibreGlWrapper, { LayerState } from "../components/MapLibreMap/lib/MapLibreGlWrapper";
|
|
6
6
|
|
package/src/hooks/useMapState.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useContext, useCallback, useState, useEffect, useRef } from "react";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
3
|
import { v4 as uuidv4 } from "uuid";
|
|
4
|
-
import MapContext from "../contexts/MapContext";
|
|
4
|
+
import MapContext, { MapContextType } from "../contexts/MapContext";
|
|
5
5
|
import MapLibreGlWrapper, {
|
|
6
6
|
LayerState,
|
|
7
7
|
ViewportState,
|
|
@@ -11,13 +11,6 @@ type useMapStateType = {
|
|
|
11
11
|
layers: (LayerState | undefined)[];
|
|
12
12
|
viewport: ViewportState | undefined;
|
|
13
13
|
};
|
|
14
|
-
type MapContext = {
|
|
15
|
-
mapIds: [string?];
|
|
16
|
-
mapExists: Function;
|
|
17
|
-
maps: [];
|
|
18
|
-
getMap: Function;
|
|
19
|
-
setMap: Function;
|
|
20
|
-
};
|
|
21
14
|
|
|
22
15
|
/**
|
|
23
16
|
* React hook that allows subscribing to map state changes
|
|
@@ -58,8 +51,8 @@ function useMapState(props: {
|
|
|
58
51
|
* @param {object} layer
|
|
59
52
|
*/
|
|
60
53
|
const layerIdFilter = useCallback(
|
|
61
|
-
(layer) => {
|
|
62
|
-
if (!props?.filter?.includeBaseLayers && layer
|
|
54
|
+
(layer:LayerState) => {
|
|
55
|
+
if (!props?.filter?.includeBaseLayers && layer?.baseLayer) {
|
|
63
56
|
return false;
|
|
64
57
|
}
|
|
65
58
|
|
|
@@ -79,8 +72,8 @@ function useMapState(props: {
|
|
|
79
72
|
const refreshLayerState = useCallback(() => {
|
|
80
73
|
if (!mapRef.current) return;
|
|
81
74
|
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
const _layerState = mapRef.current.wrapper.layerState.filter(layerIdFilter);
|
|
76
|
+
const _layerStateString = JSON.stringify(_layerState);
|
|
84
77
|
if (layersRef.current !== _layerStateString) {
|
|
85
78
|
layersRef.current = _layerStateString;
|
|
86
79
|
setLayers(_layerState);
|
|
@@ -88,7 +81,7 @@ function useMapState(props: {
|
|
|
88
81
|
}, [layerIdFilter]);
|
|
89
82
|
|
|
90
83
|
useEffect(() => {
|
|
91
|
-
|
|
84
|
+
const _componentId = componentId.current;
|
|
92
85
|
|
|
93
86
|
return () => {
|
|
94
87
|
// cleanup all event listeners
|
package/src/hooks/useSource.ts
CHANGED
|
@@ -61,7 +61,7 @@ function useSource(props: useSourceProps): useSourceType {
|
|
|
61
61
|
useEffect(() => {
|
|
62
62
|
return () => {
|
|
63
63
|
initializedRef.current = false;
|
|
64
|
-
if (mapHook.map) {
|
|
64
|
+
if (mapHook.map && mapHook.map?.map?.style?._layers) {
|
|
65
65
|
for (const [layerId, layer] of Object.entries(mapHook.map.map.style._layers)) {
|
|
66
66
|
if (layer.source === sourceId.current) {
|
|
67
67
|
mapHook.map.map.removeLayer(layerId);
|
package/src/index.ts
CHANGED
|
@@ -1,19 +1,31 @@
|
|
|
1
|
+
export { default as MapLibreGlWrapper} from './components/MapLibreMap/lib/MapLibreGlWrapper';
|
|
1
2
|
export { default as MapLibreMap } from "./components/MapLibreMap/MapLibreMap";
|
|
3
|
+
|
|
4
|
+
export { default as MlCenterPosition } from "./components/MlCenterPosition/MlCenterPosition";
|
|
5
|
+
|
|
2
6
|
export { default as MlComponentTemplate } from "./components/MlComponentTemplate/MlComponentTemplate";
|
|
7
|
+
|
|
3
8
|
export { default as MlCreatePdfButton } from "./components/MlCreatePdfButton/MlCreatePdfButton";
|
|
9
|
+
|
|
4
10
|
export { default as MlCreatePdfForm } from "./components/MlCreatePdfForm/MlCreatePdfForm";
|
|
5
11
|
export { default as MlPdfPreview } from "./components/MlCreatePdfForm/lib/PdfPreview";
|
|
12
|
+
export { default as PdfContext } from "./components/MlCreatePdfForm/lib/PdfContext";
|
|
13
|
+
export { default as PdfForm } from "./components/MlCreatePdfForm/lib/PdfForm";
|
|
14
|
+
|
|
6
15
|
export { default as MlFeatureEditor } from "./components/MlFeatureEditor/MlFeatureEditor";
|
|
16
|
+
|
|
7
17
|
export { default as MlFillExtrusionLayer } from "./components/MlFillExtrusionLayer/MlFillExtrusionLayer";
|
|
18
|
+
|
|
8
19
|
export { default as MlFollowGps } from "./components/MlFollowGps/MlFollowGps";
|
|
20
|
+
|
|
9
21
|
export { default as MlGeoJsonLayer } from "./components/MlGeoJsonLayer/MlGeoJsonLayer";
|
|
22
|
+
|
|
10
23
|
export { default as MlImageMarkerLayer } from "./components/MlImageMarkerLayer/MlImageMarkerLayer";
|
|
24
|
+
|
|
11
25
|
export { default as MlMeasureTool } from "./components/MlMeasureTool/MlMeasureTool";
|
|
12
26
|
export { default as MlNavigationTools } from "./components/MlNavigationTools/MlNavigationTools";
|
|
13
27
|
export { default as MlNavigationCompass } from "./components/MlNavigationCompass/MlNavigationCompass";
|
|
14
28
|
export { default as MlLayer } from "./components/MlLayer/MlLayer";
|
|
15
|
-
export { default as MlVectorTileLayer } from "./components/MlVectorTileLayer/MlVectorTileLayer";
|
|
16
|
-
export { default as MlWmsLayer } from "./components/MlWmsLayer/MlWmsLayer";
|
|
17
29
|
export { default as MlScaleReference } from "./components/MlScaleReference/MlScaleReference";
|
|
18
30
|
|
|
19
31
|
export { default as MlLayerMagnify } from "./components/MlLayerMagnify/MlLayerMagnify";
|
|
@@ -22,23 +34,34 @@ export { default as MlLayerSwipe } from "./components/MlLayerSwipe/MlLayerSwipe"
|
|
|
22
34
|
export { default as MlTransitionGeoJsonLayer } from "./components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer";
|
|
23
35
|
export { default as MlMarker } from "./components/MlMarker/MlMarker";
|
|
24
36
|
|
|
37
|
+
export { default as MlOsmLayer } from "./components/MlOsmLayer/MlOsmLayer.js";
|
|
38
|
+
|
|
25
39
|
export { default as MlGpxViewer } from "./components/MlGpxViewer/MlGpxViewer";
|
|
26
40
|
export { default as GeoJsonProvider } from "./components/MlGpxViewer/util/GeoJsonProvider";
|
|
27
41
|
export { default as GeoJsonContext } from "./components/MlGpxViewer/util/GeoJsonContext";
|
|
28
42
|
|
|
43
|
+
export { default as MlShareMapState } from "./components/MlShareMapState/MlShareMapState";
|
|
44
|
+
|
|
29
45
|
export { default as MlSpatialElevationProfile } from "./components/MlSpatialElevationProfile/MlSpatialElevationProfile";
|
|
46
|
+
export { default as MlVectorTileLayer } from "./components/MlVectorTileLayer/MlVectorTileLayer";
|
|
47
|
+
|
|
48
|
+
export { default as MlWmsFeatureInfoPopup } from "./components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup";
|
|
49
|
+
export { default as MlWmsLayer } from "./components/MlWmsLayer/MlWmsLayer";
|
|
50
|
+
export { default as MlWmsLoader } from "./components/MlWmsLoader/MlWmsLoader"
|
|
30
51
|
|
|
31
|
-
export { default as MlOsmLayer } from "./components/MlOsmLayer/MlOsmLayer.js";
|
|
32
52
|
export { default as MlBasicComponent } from "./components/MlBasicComponent.js";
|
|
33
53
|
|
|
54
|
+
export { default as useCameraFollowPath } from "./hooks/useCameraFollowPath/useCameraFollowPath";
|
|
55
|
+
export { default as useExportMap } from "./hooks/useExportMap";
|
|
56
|
+
export { default as useGpx } from "./hooks/useGpx/useGpx";
|
|
57
|
+
export { default as useLayerFilter } from "./hooks/useLayerFilter/useLayerFilter";
|
|
58
|
+
export { default as useLayerHoverPopup } from "./hooks/useLayerHoverPopup/useLayerHoverPopup";
|
|
34
59
|
export { default as useLayer } from "./hooks/useLayer";
|
|
35
|
-
export { default as
|
|
60
|
+
export { default as useLayerEvent } from "./hooks/useLayerEvent";
|
|
36
61
|
export { default as useMap } from "./hooks/useMap";
|
|
37
|
-
export { default as
|
|
62
|
+
export { default as useMapState } from "./hooks/useMapState";
|
|
38
63
|
export { default as useSource } from "./hooks/useSource";
|
|
39
|
-
export { default as
|
|
40
|
-
export { default as useCameraFollowPath } from "./hooks/useCameraFollowPath/useCameraFollowPath";
|
|
41
|
-
export { default as useLayerFilter } from "./hooks/useLayerFilter/useLayerFilter";
|
|
64
|
+
export { default as useWms } from "./hooks/useWms";
|
|
42
65
|
|
|
43
66
|
export { MapComponentsProvider } from "./contexts/MapContext";
|
|
44
67
|
export { default as MapContext } from "./contexts/MapContext";
|
package/tsconfig.json
CHANGED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
|
|
3
|
-
import MlShareMapState from "./MlShareMapState";
|
|
4
|
-
import mapContextDecorator from "../../decorators/MapContextDecorator";
|
|
5
|
-
import useMapState from "../../hooks/useMapState";
|
|
6
|
-
import useMap from "../../hooks/useMap";
|
|
7
|
-
import Sidebar from "../../ui_components/Sidebar";
|
|
8
|
-
import ListItem from "@mui/material/ListItem";
|
|
9
|
-
import IconButton from "@mui/material/IconButton";
|
|
10
|
-
import VisibilityIcon from "@mui/icons-material/Visibility";
|
|
11
|
-
import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
|
|
12
|
-
import ListItemText from "@mui/material/ListItemText";
|
|
13
|
-
import sample_geojson_1 from "../MlGeoJsonLayer/assets/sample_1.json";
|
|
14
|
-
import sample_geojson_2 from "../MlGeoJsonLayer/assets/sample_2.json";
|
|
15
|
-
import List from "@mui/material/List";
|
|
16
|
-
import MlGeoJsonLayer from "../MlGeoJsonLayer/MlGeoJsonLayer";
|
|
17
|
-
import { ToggleButton } from "@mui/material";
|
|
18
|
-
import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline";
|
|
19
|
-
import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline";
|
|
20
|
-
|
|
21
|
-
const storyoptions = {
|
|
22
|
-
title: "MapComponents/MlShareMapState",
|
|
23
|
-
component: MlShareMapState,
|
|
24
|
-
argTypes: {},
|
|
25
|
-
decorators: mapContextDecorator,
|
|
26
|
-
};
|
|
27
|
-
export default storyoptions;
|
|
28
|
-
|
|
29
|
-
const Template = () => {
|
|
30
|
-
const geoJsonArray = [sample_geojson_1, sample_geojson_2];
|
|
31
|
-
const [watchState, setWatchState] = useState(true);
|
|
32
|
-
const mapHook = useMap({ mapId: "map_1" });
|
|
33
|
-
const mapState = useMapState({
|
|
34
|
-
mapId: "map_1",
|
|
35
|
-
watch: {
|
|
36
|
-
viewport: false,
|
|
37
|
-
layers: true,
|
|
38
|
-
sources: false,
|
|
39
|
-
},
|
|
40
|
-
filter: {
|
|
41
|
-
includeBaseLayers: false,
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
<>
|
|
47
|
-
<MlShareMapState active={watchState} />
|
|
48
|
-
{geoJsonArray.map((el, i) => (
|
|
49
|
-
<MlGeoJsonLayer layerId={"GeoJson_" + i} type="line" geojson={el} key={"GeoJson_" + i} />
|
|
50
|
-
))}
|
|
51
|
-
<Sidebar sx={{ wordBreak: "break-word" }}>
|
|
52
|
-
<ToggleButton
|
|
53
|
-
size="small"
|
|
54
|
-
selected={watchState}
|
|
55
|
-
value={watchState}
|
|
56
|
-
onChange={() => {
|
|
57
|
-
setWatchState(!watchState);
|
|
58
|
-
}}
|
|
59
|
-
>
|
|
60
|
-
{watchState ? <CheckCircleOutlineIcon /> : <ErrorOutlineIcon />}
|
|
61
|
-
|
|
62
|
-
{watchState ? "active" : "inactive"}
|
|
63
|
-
</ToggleButton>
|
|
64
|
-
<List dense key="layers">
|
|
65
|
-
{mapState.layers?.map((el) => (
|
|
66
|
-
<ListItem
|
|
67
|
-
key={el.id}
|
|
68
|
-
secondaryAction={
|
|
69
|
-
<IconButton
|
|
70
|
-
edge="end"
|
|
71
|
-
aria-label="toggle visibility"
|
|
72
|
-
onClick={() => {
|
|
73
|
-
let currentVisibility = mapHook.map
|
|
74
|
-
?.getLayer?.(el.id)
|
|
75
|
-
?.getLayoutProperty("visibility");
|
|
76
|
-
mapHook.map
|
|
77
|
-
?.getLayer?.(el.id)
|
|
78
|
-
?.setLayoutProperty(
|
|
79
|
-
"visibility",
|
|
80
|
-
currentVisibility === "none" ? "visible" : "none"
|
|
81
|
-
);
|
|
82
|
-
mapHook.map.map.fire("zoom");
|
|
83
|
-
}}
|
|
84
|
-
>
|
|
85
|
-
{el.visible ? <VisibilityIcon /> : <VisibilityOffIcon />}
|
|
86
|
-
</IconButton>
|
|
87
|
-
}
|
|
88
|
-
>
|
|
89
|
-
<ListItemText primary={el.id} secondary={""} />
|
|
90
|
-
</ListItem>
|
|
91
|
-
))}
|
|
92
|
-
</List>
|
|
93
|
-
</Sidebar>
|
|
94
|
-
</>
|
|
95
|
-
);
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
export const ExampleConfig = Template.bind({});
|
|
99
|
-
ExampleConfig.parameters = {};
|
|
100
|
-
ExampleConfig.args = {};
|
package/src/custom.d.tsx
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
declare module "*.svg" {
|
|
3
|
-
const content: any;
|
|
4
|
-
export default content;
|
|
5
|
-
export { content as ReactComponent };
|
|
6
|
-
}
|
|
7
|
-
declare module "*.js" {
|
|
8
|
-
const content: any;
|
|
9
|
-
export default content;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
//declare module '../index';
|
|
13
|
-
type MapContextType= {
|
|
14
|
-
mapIds: [string?];
|
|
15
|
-
mapExists: Function;
|
|
16
|
-
maps: [];
|
|
17
|
-
map: any,
|
|
18
|
-
getMap: Function;
|
|
19
|
-
setMap: Function;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
interface GeoJSON {
|
|
23
|
-
type: string,
|
|
24
|
-
features?: any
|
|
25
|
-
geometry?: any
|
|
26
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ThemeProvider as MUIThemeProvider, createTheme } from '@mui/material/styles';
|
|
3
|
-
|
|
4
|
-
const theme = createTheme({
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
export default function ThemeWrapper(props: { children: unknown }) {
|
|
8
|
-
return <MUIThemeProvider theme={theme}>{props?.children}</MUIThemeProvider>;
|
|
9
|
-
}
|