@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.
Files changed (179) hide show
  1. package/.github/workflows/node_version_test.yml +1 -1
  2. package/.storybook/main.js +37 -31
  3. package/.storybook/preview.js +21 -0
  4. package/CHANGELOG.md +13 -0
  5. package/coverage/clover.xml +419 -344
  6. package/coverage/coverage-final.json +15 -14
  7. package/coverage/lcov-report/index.html +61 -61
  8. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +24 -18
  9. package/coverage/lcov-report/src/components/MapLibreMap/index.html +14 -14
  10. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +2 -2
  11. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
  12. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +1 -1
  13. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
  14. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +1 -1
  15. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +1 -1
  16. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +1 -1
  17. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +1 -1
  18. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
  19. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +1 -1
  20. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
  21. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +9 -9
  22. package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
  23. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +1 -1
  24. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
  25. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +1 -1
  26. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +1 -1
  27. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +1 -1
  28. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +1 -1
  29. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +1 -1
  30. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +1 -1
  31. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +1 -1
  32. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +1 -1
  33. package/coverage/lcov-report/src/components/MlGpxViewer/index.html +1 -1
  34. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +1 -1
  35. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
  36. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +1 -1
  37. package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
  38. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +52 -40
  39. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +10 -10
  40. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +4 -4
  41. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
  42. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +1 -1
  43. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +1 -1
  44. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +1 -1
  45. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +1 -1
  46. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +1 -1
  47. package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
  48. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +1 -1
  49. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
  50. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +1 -1
  51. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
  52. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +1 -1
  53. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
  54. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +1 -1
  55. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +1 -1
  56. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
  57. package/coverage/lcov-report/src/components/MlScaleReference/{MlScaleReference.js.html → MlScaleReference.tsx.html} +57 -36
  58. package/coverage/lcov-report/src/components/MlScaleReference/index.html +2 -2
  59. package/coverage/lcov-report/src/components/MlShareMapState/{MlShareMapState.js.html → MlShareMapState.tsx.html} +192 -84
  60. package/coverage/lcov-report/src/components/MlShareMapState/index.html +20 -20
  61. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +1 -1
  62. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +1 -1
  63. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +1 -1
  64. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +1 -1
  65. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +1 -1
  66. package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +1 -1
  67. package/coverage/lcov-report/src/components/MlSketchTool/index.html +1 -1
  68. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +1 -1
  69. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
  70. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +1 -1
  71. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreejsLayer.tsx.html +769 -0
  72. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +25 -10
  73. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +1 -1
  74. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
  75. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +1 -1
  76. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
  77. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +1 -1
  78. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
  79. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +11 -11
  80. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +11 -11
  81. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +1 -1
  82. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
  83. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +27 -18
  84. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +11 -11
  85. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +50 -26
  86. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
  87. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +1 -1
  88. package/coverage/lcov-report/src/contexts/index.html +1 -1
  89. package/coverage/lcov-report/src/hooks/index.html +21 -21
  90. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +1 -1
  91. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +1 -1
  92. package/coverage/lcov-report/src/hooks/useExportMap/index.html +1 -1
  93. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +1 -1
  94. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +1 -1
  95. package/coverage/lcov-report/src/hooks/useGpx/index.html +1 -1
  96. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +1 -1
  97. package/coverage/lcov-report/src/hooks/useLayer.ts.html +1 -1
  98. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +9 -9
  99. package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +1 -1
  100. package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +1 -1
  101. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +1 -1
  102. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +9 -6
  103. package/coverage/lcov-report/src/hooks/useMap.ts.html +2 -2
  104. package/coverage/lcov-report/src/hooks/useMapState.ts.html +8 -29
  105. package/coverage/lcov-report/src/hooks/useSource.ts.html +10 -10
  106. package/coverage/lcov-report/src/hooks/useWms.ts.html +1 -1
  107. package/coverage/lcov-report/src/index.html +1 -1
  108. package/coverage/lcov-report/src/index.ts.html +80 -11
  109. package/coverage/lcov.info +741 -604
  110. package/dist/components/MapLibreMap/MapLibreMap.stories.d.ts +3 -0
  111. package/dist/components/MapLibreMap/lib/MapLibreGlWrapper.d.ts +17 -15
  112. package/dist/components/MlCenterPosition/MlCenterPosition.stories.d.ts +1 -1
  113. package/dist/components/MlComponentTemplate/MlComponentTemplate.stories.d.ts +1 -1
  114. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.stories.d.ts +1 -1
  115. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +1 -1
  116. package/dist/components/MlFeatureEditor/lib/create_supplementary_points.d.ts +1 -1
  117. package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
  118. package/dist/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.d.ts +1 -1
  119. package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +1 -1
  120. package/dist/components/MlGpxViewer/MlGpxViewer.stories.d.ts +1 -1
  121. package/dist/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.d.ts +1 -1
  122. package/dist/components/MlLayerMagnify/MlLayerMagnify.stories.d.ts +1 -1
  123. package/dist/components/MlLayerSwipe/MlLayerSwipe.stories.d.ts +1 -1
  124. package/dist/components/MlScaleReference/MlScaleReference.d.ts +7 -1
  125. package/dist/components/MlShareMapState/MlShareMapState.d.ts +32 -13
  126. package/dist/components/MlShareMapState/MlShareMapState.stories.d.ts +15 -9
  127. package/dist/components/MlSketchTool/MlSketchTool.stories.d.ts +1 -1
  128. package/dist/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.d.ts +1 -1
  129. package/dist/components/MlSpatialElevationProfile/util/getElevationData.d.ts +1 -1
  130. package/dist/components/MlThreeJsLayer/MlThreeJsLayer.stories.d.ts +1 -1
  131. package/dist/components/MlThreeJsLayer/MlThreejsLayer.d.ts +29 -0
  132. package/dist/components/MlThreeJsLayer/lib/GLTFLoader.d.ts +2 -1
  133. package/dist/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.d.ts +1 -1
  134. package/dist/components/MlWmsLoader/MlWmsLoader.stories.d.ts +1 -1
  135. package/dist/contexts/MapContext.d.ts +13 -2
  136. package/dist/custom.d.d.ts +1 -1
  137. package/dist/decorators/MapContextDecorator.d.ts +1 -1
  138. package/dist/decorators/MapContextDecoratorHooks.d.ts +1 -1
  139. package/dist/decorators/MultiMapContextDecorator.d.ts +1 -1
  140. package/dist/decorators/NoNavToolsDecorator.d.ts +1 -1
  141. package/dist/decorators/ThemeWrapper.d.ts +1 -3
  142. package/dist/hooks/useCameraFollowPath/useCameraFollowPath.stories.d.ts +1 -1
  143. package/dist/hooks/useLayerFilter/useLayerFilter.stories.d.ts +1 -1
  144. package/dist/index.d.ts +18 -8
  145. package/dist/index.esm.js +5590 -3701
  146. package/dist/index.esm.js.map +1 -1
  147. package/dist/setupTests.d.ts +6 -6
  148. package/package.json +56 -49
  149. package/public/thumbnails/{MlGPXViewer.png → MlGpxViewer.png} +0 -0
  150. package/rollup.config.js +49 -48
  151. package/src/@types/assets/index.d.ts +20 -0
  152. package/src/components/MapLibreMap/MapLibreMap.stories.js +8 -1
  153. package/src/components/MapLibreMap/MapLibreMap.tsx +11 -9
  154. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +49 -39
  155. package/src/components/MlCenterPosition/MlCenterPosition.tsx +1 -1
  156. package/src/components/MlFollowGps/MlFollowGps.tsx +8 -8
  157. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +21 -17
  158. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +3 -3
  159. package/src/components/MlScaleReference/{MlScaleReference.js → MlScaleReference.tsx} +38 -31
  160. package/src/components/MlShareMapState/MlShareMapState.stories.tsx +100 -0
  161. package/src/components/MlShareMapState/{MlShareMapState.js → MlShareMapState.tsx} +94 -58
  162. package/src/components/MlThreeJsLayer/MlThreejsLayer.tsx +228 -0
  163. package/src/components/MlWmsLoader/MlWmsLoader.tsx +7 -4
  164. package/src/contexts/MapContext.tsx +26 -19
  165. package/src/custom.d.ts +5 -0
  166. package/src/decorators/MapContextDecorator.js +39 -28
  167. package/src/decorators/MapContextDecoratorHooks.js +18 -8
  168. package/src/decorators/MultiMapContextDecorator.js +79 -69
  169. package/src/decorators/NoNavToolsDecorator.js +34 -25
  170. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +5 -4
  171. package/src/hooks/useMap.ts +1 -1
  172. package/src/hooks/useMapState.ts +6 -13
  173. package/src/hooks/useSource.ts +1 -1
  174. package/src/index.ts +31 -8
  175. package/src/ui_components/TopToolbar.tsx +1 -1
  176. package/tsconfig.json +1 -0
  177. package/src/components/MlShareMapState/MlShareMapState.stories.js +0 -100
  178. package/src/custom.d.tsx +0 -26
  179. package/src/decorators/ThemeWrapper.tsx +0 -9
@@ -1,31 +1,40 @@
1
- import React from "react";
1
+ import React, { useMemo } from 'react';
2
2
 
3
- import { MapComponentsProvider } from "../index";
4
- import MapLibreMap from "../components/MapLibreMap/MapLibreMap";
5
- import "./style.css";
6
- import { createTheme, ThemeProvider } from "@mui/material/styles";
7
- import MlNavgiationTools from "../components/MlNavigationTools/MlNavigationTools";
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
- <div className="fullscreen_map">
14
- <ThemeProvider theme={theme}>
15
- <MapComponentsProvider>
16
- <Story />
17
- <MapLibreMap
18
- options={{
19
- zoom: 14.5,
20
- style: "https://wms.wheregroup.com/tileserver/style/osm-bright.json",
21
- center: [7.0851268, 50.73884],
22
- }}
23
- mapId="map_1"
24
- />
25
- </MapComponentsProvider>
26
- </ThemeProvider>
27
- </div>
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
- GeoJSONFeature,
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?: GeoJSONFeature[] | undefined;
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
@@ -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
 
@@ -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.baseLayer) {
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
- let _layerState = mapRef.current.wrapper.layerState.filter(layerIdFilter);
83
- let _layerStateString = JSON.stringify(_layerState);
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
- let _componentId = componentId.current;
84
+ const _componentId = componentId.current;
92
85
 
93
86
  return () => {
94
87
  // cleanup all event listeners
@@ -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 useMapState } from "./hooks/useMapState";
60
+ export { default as useLayerEvent } from "./hooks/useLayerEvent";
36
61
  export { default as useMap } from "./hooks/useMap";
37
- export { default as useWms } from "./hooks/useWms";
62
+ export { default as useMapState } from "./hooks/useMapState";
38
63
  export { default as useSource } from "./hooks/useSource";
39
- export { default as useExportMap } from "./hooks/useExportMap";
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";
@@ -11,7 +11,7 @@ export default function TopToolbar({ toolbarProps, appBarStyle, ...props }: TopT
11
11
  <AppBar
12
12
  sx={{
13
13
  minHeight: '62px',
14
- backgroundColor: '#f1f1f1',
14
+ backgroundColor: 'background.default',
15
15
  position: 'absolute',
16
16
  zIndex: 120,
17
17
  ...appBarStyle
package/tsconfig.json CHANGED
@@ -9,6 +9,7 @@
9
9
  "sourceMap": true,
10
10
  "strict": false,
11
11
  "types": ["node", "jest", "geojson", "cypress"],
12
+ "typeRoots": ["./src/@types", "./node_modules/@types"],
12
13
  "outDir": "build/esm",
13
14
  "module": "esnext",
14
15
  "target": "es5",
@@ -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
- }