@mapcomponents/react-maplibre 0.1.57 → 0.1.59
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/.eslintignore +11 -0
- package/.eslintrc.js +20 -0
- package/.github/workflows/check-formatting.yml +46 -0
- package/.prettierignore +11 -0
- package/.prettierrc.json +6 -0
- package/CHANGELOG.md +18 -0
- package/coverage/clover.xml +229 -77
- package/coverage/coverage-final.json +43 -37
- package/coverage/lcov-report/index.html +65 -20
- package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +83 -83
- package/coverage/lcov-report/src/components/MapLibreMap/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +66 -66
- package/coverage/lcov-report/src/components/MlCenterPosition/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +30 -30
- package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +1 -1
- package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +202 -0
- package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +116 -0
- package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +99 -99
- package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +66 -66
- package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +221 -221
- package/coverage/lcov-report/src/components/MlFollowGps/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGPXViewer/MlGPXViewer.tsx.html +308 -308
- package/coverage/lcov-report/src/components/MlGPXViewer/gpxConverter.js.html +497 -497
- package/coverage/lcov-report/src/components/MlGPXViewer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +85 -85
- package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +469 -0
- package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +116 -0
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +140 -140
- package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +37 -37
- package/coverage/lcov-report/src/components/MlLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +179 -179
- package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +113 -113
- package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +1 -1
- package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +181 -181
- package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +58 -58
- 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 +108 -108
- package/coverage/lcov-report/src/components/MlMarker/index.html +1 -1
- package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +39 -39
- package/coverage/lcov-report/src/components/MlMeasureTool/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +183 -183
- package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +1 -1
- package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +163 -163
- package/coverage/lcov-report/src/components/MlNavigationTools/index.html +1 -1
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +50 -50
- package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +30 -30
- package/coverage/lcov-report/src/components/MlOsmLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.js.html +83 -83
- package/coverage/lcov-report/src/components/MlScaleReference/index.html +1 -1
- package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.js.html +204 -204
- package/coverage/lcov-report/src/components/MlShareMapState/index.html +1 -1
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js.html +180 -180
- package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +1 -1
- package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +163 -163
- package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +136 -136
- package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +53 -53
- package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +1 -1
- package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +123 -123
- package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +35 -35
- package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +155 -155
- package/coverage/lcov-report/src/components/MlWmsLayer/index.html +1 -1
- package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +255 -255
- package/coverage/lcov-report/src/components/MlWmsLoader/index.html +1 -1
- package/coverage/lcov-report/src/contexts/MapContext.tsx.html +66 -66
- package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +1 -1
- package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +48 -48
- package/coverage/lcov-report/src/contexts/index.html +1 -1
- package/coverage/lcov-report/src/hooks/exportMap/index.html +131 -0
- package/coverage/lcov-report/src/hooks/exportMap/index.ts.html +175 -0
- package/coverage/lcov-report/src/hooks/exportMap/lib.ts.html +646 -0
- package/coverage/lcov-report/src/hooks/index.html +48 -18
- package/coverage/lcov-report/src/hooks/useLayer.ts.html +230 -188
- package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +232 -0
- package/coverage/lcov-report/src/hooks/useMap.ts.html +72 -69
- package/coverage/lcov-report/src/hooks/useMapState.ts.html +145 -145
- package/coverage/lcov-report/src/hooks/useSource.ts.html +337 -0
- package/coverage/lcov-report/src/hooks/useWms.js.html +72 -72
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.ts.html +11 -2
- package/coverage/lcov.info +448 -151
- package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +24 -0
- package/dist/components/MlCreatePdfForm/MlCreatePdfForm.stories.d.ts +13 -0
- package/dist/components/MlCreatePdfForm/lib/PdfContext.d.ts +21 -0
- package/dist/components/MlCreatePdfForm/lib/PdfForm.d.ts +10 -0
- package/dist/components/MlCreatePdfForm/lib/PdfPreview.d.ts +13 -0
- package/dist/components/MlCreatePdfForm/lib/pdf.templates.d.ts +11 -0
- package/dist/components/MlFeatureEditor/lib/create_vertex.d.ts +1 -1
- package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.d.ts +22 -0
- package/dist/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.d.ts +10 -0
- package/dist/components/MlLayerSwipe/MlLayerSwipe.d.ts +1 -1
- package/dist/components/MlWmsLayer/MlWmsLayer.d.ts +2 -2
- package/dist/decorators/MapContextDecoratorHooks.d.ts +2 -0
- package/dist/hooks/exportMap/index.d.ts +11 -0
- package/dist/hooks/exportMap/lib.d.ts +36 -0
- package/dist/hooks/useLayer.d.ts +6 -5
- package/dist/hooks/useLayerEvent.d.ts +2 -0
- package/dist/hooks/useMap.d.ts +1 -1
- package/dist/hooks/useMapState.stories.d.ts +2 -2
- package/dist/hooks/useSource.d.ts +17 -0
- package/dist/hooks/useSources.stories.d.ts +13 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +1055 -315
- package/dist/index.esm.js.map +1 -1
- package/eslintErrorTest.js +10 -0
- package/package.json +7 -1
- package/public/thumbnails/MlCreatePdfForm.png +0 -0
- package/src/components/MapLibreMap/MapLibreMap.stories.js +72 -72
- package/src/components/MapLibreMap/MapLibreMap.test.js +60 -60
- package/src/components/MapLibreMap/MapLibreMap.tsx +82 -82
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +343 -343
- package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +619 -619
- package/src/components/MlBasicComponent.js +25 -25
- package/src/components/MlCenterPosition/MlCenterPosition.stories.js +6 -6
- package/src/components/MlCenterPosition/MlCenterPosition.tsx +65 -65
- package/src/components/MlComponentTemplate/MlComponentTemplate.stories.js +5 -5
- package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +23 -23
- package/src/components/MlCreatePdfButton/{MlCreatePdfButton.meta.json → MlCreatePdfButton.meta_.json} +0 -0
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.js +16 -16
- package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +29 -29
- package/src/components/MlCreatePdfButton/lib/createPdf.ts +175 -175
- package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +51 -51
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +3 -0
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +15 -0
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +152 -0
- package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +39 -0
- package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +53 -0
- package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +161 -0
- package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +399 -0
- package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +82 -0
- package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +55 -55
- package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +105 -105
- package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +119 -119
- package/src/components/MlFeatureEditor/custom-direct-select-mode.js +208 -208
- package/src/components/MlFeatureEditor/custom-polygon-mode.js +148 -148
- package/src/components/MlFeatureEditor/custom-select-mode.js +314 -314
- package/src/components/MlFeatureEditor/lib/common_selectors.js +34 -34
- package/src/components/MlFeatureEditor/lib/constants.js +61 -61
- package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +51 -51
- package/src/components/MlFeatureEditor/lib/create_midpoint.js +30 -30
- package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +82 -82
- package/src/components/MlFeatureEditor/lib/create_vertex.js +16 -16
- package/src/components/MlFeatureEditor/lib/double_click_zoom.js +23 -23
- package/src/components/MlFeatureEditor/lib/euclidean_distance.js +3 -3
- package/src/components/MlFeatureEditor/lib/features_at.js +23 -23
- package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +15 -15
- package/src/components/MlFeatureEditor/lib/is_click.js +8 -8
- package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +2 -2
- package/src/components/MlFeatureEditor/lib/is_tap.js +6 -6
- package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +4 -4
- package/src/components/MlFeatureEditor/lib/mode_handler.js +105 -105
- package/src/components/MlFeatureEditor/lib/mouse_event_point.js +5 -5
- package/src/components/MlFeatureEditor/lib/move_features.js +33 -33
- package/src/components/MlFeatureEditor/lib/sort_features.js +25 -25
- package/src/components/MlFeatureEditor/lib/string_set.js +36 -36
- package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +2 -2
- package/src/components/MlFeatureEditor/lib/theme.js +230 -230
- package/src/components/MlFeatureEditor/lib/to_dense_array.js +1 -1
- package/src/components/MlFeatureEditor/lib/utils.js +40 -40
- package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +9 -9
- package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +4 -4
- package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +65 -65
- package/src/components/MlFollowGps/MlFollowGps.stories.js +6 -6
- package/src/components/MlFollowGps/MlFollowGps.test.js +44 -44
- package/src/components/MlFollowGps/MlFollowGps.tsx +220 -220
- package/src/components/MlGPXViewer/MlGPXViewer.stories.js +15 -15
- package/src/components/MlGPXViewer/MlGPXViewer.test.js +12 -12
- package/src/components/MlGPXViewer/MlGPXViewer.tsx +345 -345
- package/src/components/MlGPXViewer/gpxConverter.js +496 -496
- package/src/components/MlGPXViewer/util/GeoJsonContext.ts +4 -4
- package/src/components/MlGPXViewer/util/GeoJsonProvider.tsx +16 -16
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.js +34 -34
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +8 -8
- package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +84 -84
- package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +21 -21
- package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +27 -27
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +3 -0
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +15 -0
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.js +19 -0
- package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +128 -0
- package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.js +28 -28
- package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +8 -8
- package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +162 -162
- package/src/components/MlLayer/MlLayer.stories.js +5 -5
- package/src/components/MlLayer/MlLayer.test.js +86 -86
- package/src/components/MlLayer/MlLayer.tsx +36 -36
- package/src/components/MlLayerMagnify/MlLayerMagnify.stories.js +21 -21
- package/src/components/MlLayerMagnify/MlLayerMagnify.test.js +54 -54
- package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +201 -201
- package/src/components/MlLayerSwipe/MlLayerSwipe.stories.js +20 -20
- package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +54 -54
- package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +130 -130
- package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +194 -194
- package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +85 -85
- package/src/components/MlLayerSwitcher/components/LayerBox.js +57 -57
- package/src/components/MlMarker/MlMarker.stories.js +7 -7
- package/src/components/MlMarker/MlMarker.tsx +119 -119
- package/src/components/MlMeasureTool/MlMeasureTool.stories.js +64 -64
- package/src/components/MlMeasureTool/MlMeasureTool.tsx +38 -38
- package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +45 -45
- package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +40 -40
- package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +192 -192
- package/src/components/MlNavigationTools/MlNavigationTools.stories.js +18 -18
- package/src/components/MlNavigationTools/MlNavigationTools.tsx +173 -173
- package/src/components/MlOsmLayer/MlOsmLayer.js +49 -49
- package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +29 -29
- package/src/components/MlOsmLayer/MlOsmLayer.test.js +8 -8
- package/src/components/MlScaleReference/MlScaleReference.js +82 -82
- package/src/components/MlScaleReference/MlScaleReference.stories.js +27 -27
- package/src/components/MlShareMapState/MlShareMapState.js +203 -203
- package/src/components/MlShareMapState/MlShareMapState.stories.js +68 -68
- package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.js +201 -201
- package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.js +35 -35
- package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +8 -8
- package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +186 -186
- package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.js +21 -21
- package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +24 -24
- package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +3327 -3327
- package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +31 -30
- package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +8 -8
- package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +146 -146
- package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +207 -207
- package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +52 -52
- package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +13 -13
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +27 -27
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +27 -27
- package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +137 -137
- package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +34 -34
- package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.js +7 -7
- package/src/components/MlWmsLayer/MlWmsLayer.stories.js +26 -26
- package/src/components/MlWmsLayer/MlWmsLayer.test.js +8 -8
- package/src/components/MlWmsLayer/MlWmsLayer.tsx +167 -167
- package/src/components/MlWmsLoader/MlWmsLoader.stories.js +27 -27
- package/src/components/MlWmsLoader/MlWmsLoader.tsx +254 -254
- package/src/contexts/MapComponentsProvider.test.js +229 -229
- package/src/contexts/MapContext.tsx +65 -65
- package/src/contexts/SimpleDataProvider.js +47 -47
- package/src/contexts/SimpleDataProvider.test.js +29 -29
- package/src/custom.d.tsx +14 -14
- package/src/decorators/MapContextDecorator.js +22 -22
- package/src/decorators/MapContextDecoratorHooks.js +34 -0
- package/src/decorators/MultiMapContextDecorator.js +63 -63
- package/src/decorators/NoNavToolsDecorator.js +17 -17
- package/src/decorators/ThemeWrapper.jsx +1 -1
- package/src/hooks/assets/pointWG.json +13 -0
- package/src/hooks/exportMap/index.ts +30 -0
- package/src/hooks/exportMap/lib.ts +187 -0
- package/src/hooks/useLayer.test.js +188 -188
- package/src/hooks/useLayer.ts +194 -180
- package/src/hooks/useLayerEvent.js +49 -0
- package/src/hooks/useMap.ts +67 -66
- package/src/hooks/useMapState.stories.js +78 -78
- package/src/hooks/useMapState.ts +161 -161
- package/src/hooks/useSource.ts +84 -0
- package/src/hooks/useSources.stories.js +232 -0
- package/src/hooks/useWms.js +71 -71
- package/src/index.ts +3 -0
- package/src/setupTests.js +86 -86
- package/src/ui_components/ImageLoader.js +62 -62
- package/src/ui_components/Legend.js +34 -34
- package/src/ui_components/LoadingOverlay.js +29 -29
- package/src/ui_components/LoadingOverlayContext.js +68 -68
- package/src/ui_components/Sidebar.js +80 -80
- package/src/ui_components/Tooltip.js +9 -9
- package/src/ui_components/TopToolbar.js +23 -23
- package/src/util/layerRemovalTest.js +111 -111
- package/src/util/sourceRemovalTest.js +103 -103
|
@@ -382,12 +382,12 @@ import useMap from "../../hooks/useMap";
|
|
|
382
382
|
import PropTypes from "prop-types";
|
|
383
383
|
|
|
384
384
|
interface MlVectorTileLayerProps {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
385
|
+
mapId?: string;
|
|
386
|
+
insertBeforeLayer?: string;
|
|
387
|
+
layerId?: string;
|
|
388
|
+
sourceOptions?: any;
|
|
389
|
+
url?: string;
|
|
390
|
+
layers?: any;
|
|
391
391
|
}
|
|
392
392
|
|
|
393
393
|
/**
|
|
@@ -397,140 +397,140 @@ interface MlVectorTileLayerProps {
|
|
|
397
397
|
* @component
|
|
398
398
|
*/
|
|
399
399
|
const MlVectorTileLayer = (props: MlVectorTileLayerProps) => {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
400
|
+
const mapHook = useMap({
|
|
401
|
+
mapId: props.mapId,
|
|
402
|
+
waitForLayer: props.insertBeforeLayer,
|
|
403
|
+
});
|
|
404
404
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
405
|
+
const layerIdsRef = useRef({});
|
|
406
|
+
const layerId = useRef(props.layerId || "MlVectorTileLayer-" + mapHook.componentId);
|
|
407
|
+
const layerPaintConfsRef = useRef({});
|
|
408
|
+
const layerLayoutConfsRef = useRef({});
|
|
409
|
+
const initializedRef = useRef(false);
|
|
410
410
|
|
|
411
|
-
|
|
412
|
-
|
|
411
|
+
const createLayer = useCallback(() => {
|
|
412
|
+
if (!mapHook.map) return;
|
|
413
413
|
|
|
414
|
-
|
|
414
|
+
initializedRef.current = true;
|
|
415
415
|
|
|
416
|
-
|
|
417
|
-
<span class="cstat-no" title="statement not covered" >
|
|
418
|
-
|
|
416
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (mapHook.map.map.getLayer(layerId.current)) {
|
|
417
|
+
<span class="cstat-no" title="statement not covered" > mapHook.cleanup();</span>
|
|
418
|
+
}
|
|
419
419
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
420
|
+
// Add the new layer to the openlayers instance once it is available
|
|
421
|
+
mapHook.map.addSource(
|
|
422
|
+
layerId.current,
|
|
423
|
+
{
|
|
424
|
+
type: "vector",
|
|
425
|
+
tiles: [props.url],
|
|
426
|
+
tileSize: 512,
|
|
427
|
+
attribution: "",
|
|
428
|
+
...props.sourceOptions,
|
|
429
|
+
},
|
|
430
|
+
mapHook.componentId
|
|
431
|
+
);
|
|
432
432
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
433
|
+
for (let key in props.layers) {
|
|
434
|
+
let _layerId = layerId.current + "_" + key;
|
|
435
|
+
layerIdsRef.current[key] = _layerId;
|
|
436
436
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
437
|
+
mapHook.map.addLayer(
|
|
438
|
+
{
|
|
439
|
+
id: _layerId,
|
|
440
|
+
source: layerId.current,
|
|
441
|
+
type: "line",
|
|
442
|
+
minzoom: 0,
|
|
443
|
+
maxzoom: 22,
|
|
444
|
+
layout: {},
|
|
445
|
+
paint: {
|
|
446
|
+
"line-opacity": 0.5,
|
|
447
|
+
"line-color": "rgb(80, 80, 80)",
|
|
448
|
+
"line-width": 2,
|
|
449
|
+
},
|
|
450
|
+
...props.layers[key],
|
|
451
|
+
},
|
|
452
|
+
props.insertBeforeLayer,
|
|
453
|
+
mapHook.componentId
|
|
454
|
+
);
|
|
455
|
+
layerPaintConfsRef.current[key] = JSON.stringify(props.layers[key].paint);
|
|
456
|
+
layerLayoutConfsRef.current[key] = JSON.stringify(props.layers[key].layout);
|
|
457
457
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
<span class="fstat-no" title="function not covered" >
|
|
462
|
-
<span class="cstat-no" title="statement not covered" >
|
|
463
|
-
<span class="cstat-no" title="statement not covered" >
|
|
464
|
-
<span class="cstat-no" title="statement not covered" >
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
458
|
+
// recreate layer if style has changed
|
|
459
|
+
mapHook.map.on(
|
|
460
|
+
"styledata",
|
|
461
|
+
<span class="fstat-no" title="function not covered" > ()</span> => {
|
|
462
|
+
<span class="cstat-no" title="statement not covered" > if (initializedRef.current && !mapHook.map?.map.getSource(layerId.current)) {</span>
|
|
463
|
+
<span class="cstat-no" title="statement not covered" > console.log("Recreate Layer " + layerId.current);</span>
|
|
464
|
+
<span class="cstat-no" title="statement not covered" > createLayer();</span>
|
|
465
|
+
}
|
|
466
|
+
},
|
|
467
|
+
mapHook.componentId
|
|
468
|
+
);
|
|
469
|
+
}
|
|
470
|
+
}, [mapHook.map, props]);
|
|
471
471
|
|
|
472
|
-
|
|
473
|
-
|
|
472
|
+
useEffect(() => {
|
|
473
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
474
474
|
|
|
475
|
-
|
|
476
|
-
|
|
475
|
+
createLayer();
|
|
476
|
+
}, [createLayer]);
|
|
477
477
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
478
|
+
useEffect(() => {
|
|
479
|
+
if (!mapHook.map || !initializedRef.current) return;
|
|
480
|
+
// initialize the layer and add it to the MapLibre-gl instance or do something else with it
|
|
481
|
+
for (var key in props.layers) {
|
|
482
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (mapHook.map.map.getLayer(layerIdsRef.current[key])) {
|
|
483
|
+
// update changed paint property
|
|
484
|
+
let layerPaintConfString = JSON.stringify(props.layers[key].paint);
|
|
485
485
|
|
|
486
|
-
|
|
487
|
-
<span class="cstat-no" title="statement not covered" >
|
|
488
|
-
<span class="cstat-no" title="statement not covered" >
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
486
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (layerPaintConfString !== layerPaintConfsRef.current[key]) {
|
|
487
|
+
<span class="cstat-no" title="statement not covered" > for (let paintKey in props.layers[key].paint) {</span>
|
|
488
|
+
<span class="cstat-no" title="statement not covered" > mapHook.map.map.setPaintProperty(</span>
|
|
489
|
+
layerIdsRef.current[key],
|
|
490
|
+
paintKey,
|
|
491
|
+
props.layers[key].paint[paintKey]
|
|
492
|
+
);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
layerPaintConfsRef.current[key] = layerPaintConfString;
|
|
496
496
|
|
|
497
|
-
|
|
498
|
-
|
|
497
|
+
// update changed layout property
|
|
498
|
+
let layerLayoutConfString = JSON.stringify(props.layers[key].layout);
|
|
499
499
|
|
|
500
|
-
|
|
501
|
-
<span class="cstat-no" title="statement not covered" >
|
|
502
|
-
<span class="cstat-no" title="statement not covered" >
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
500
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (layerLayoutConfString !== layerLayoutConfsRef.current[key]) {
|
|
501
|
+
<span class="cstat-no" title="statement not covered" > for (let layoutKey in props.layers[key].layout) {</span>
|
|
502
|
+
<span class="cstat-no" title="statement not covered" > mapHook.map.map.setLayoutProperty(</span>
|
|
503
|
+
layerIdsRef.current[key],
|
|
504
|
+
layoutKey,
|
|
505
|
+
props.layers[key].layout[layoutKey]
|
|
506
|
+
);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
layerLayoutConfsRef.current[key] = layerLayoutConfString;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}, [props.layers, mapHook.map]);
|
|
513
513
|
|
|
514
|
-
|
|
514
|
+
return <></>;
|
|
515
515
|
};
|
|
516
516
|
|
|
517
517
|
MlVectorTileLayer.propTypes = {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
518
|
+
/**
|
|
519
|
+
* Id of the target MapLibre instance in mapContext
|
|
520
|
+
*/
|
|
521
|
+
mapId: PropTypes.string,
|
|
522
|
+
/**
|
|
523
|
+
* Options object that will be used as first parameter on the MapLibreGl.addSource call see MapLibre source options documentation.
|
|
524
|
+
*/
|
|
525
|
+
sourceOptions: PropTypes.object,
|
|
526
|
+
/**
|
|
527
|
+
* Object that hold layers
|
|
528
|
+
*/
|
|
529
|
+
layers: PropTypes.object,
|
|
530
|
+
/**
|
|
531
|
+
* String of the URL of a wms layer
|
|
532
|
+
*/
|
|
533
|
+
url: PropTypes.string,
|
|
534
534
|
};
|
|
535
535
|
|
|
536
536
|
export default MlVectorTileLayer;
|
|
@@ -541,7 +541,7 @@ export default MlVectorTileLayer;
|
|
|
541
541
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
542
542
|
Code coverage generated by
|
|
543
543
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
544
|
-
at Tue
|
|
544
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
545
545
|
</div>
|
|
546
546
|
<script src="../../../prettify.js"></script>
|
|
547
547
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at Tue
|
|
104
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../../prettify.js"></script>
|
|
107
107
|
<script>
|
package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html
CHANGED
|
@@ -206,53 +206,53 @@ import { v4 as uuidv4 } from "uuid";
|
|
|
206
206
|
* @component
|
|
207
207
|
*/
|
|
208
208
|
const MlWmsFeatureInfoPopup = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) => {</span>
|
|
209
|
-
|
|
210
|
-
|
|
209
|
+
// Use a useRef hook to reference the layer object to be able to access it later inside useEffect hooks
|
|
210
|
+
const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
|
|
211
211
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
212
|
+
const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
|
|
213
|
+
const mapRef = <span class="cstat-no" title="statement not covered" >useRef(undefined);</span>
|
|
214
|
+
const componentId = <span class="cstat-no" title="statement not covered" >useRef((props.idPrefix ? props.idPrefix : "MlWmsFeatureInfoPopup-") + uuidv4());</span>
|
|
215
215
|
|
|
216
|
-
<span class="cstat-no" title="statement not covered" >
|
|
217
|
-
|
|
216
|
+
<span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
217
|
+
let _componentId = <span class="cstat-no" title="statement not covered" >componentId.current;</span>
|
|
218
218
|
|
|
219
|
-
<span class="cstat-no" title="statement not covered" >
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
219
|
+
<span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
220
|
+
// This is the cleanup function, it is called when this react component is removed from react-dom
|
|
221
|
+
// try to remove anything this component has added to the MapLibre-gl instance
|
|
222
|
+
// e.g.: remove the layer
|
|
223
|
+
// mapContext.getMap(props.mapId).removeLayer(layerRef.current);
|
|
224
|
+
// check for the existence of map.style before calling getLayer or getSource
|
|
225
225
|
|
|
226
|
-
<span class="cstat-no" title="statement not covered" >
|
|
227
|
-
<span class="cstat-no" title="statement not covered" >
|
|
228
|
-
<span class="cstat-no" title="statement not covered" >
|
|
229
|
-
|
|
230
|
-
<span class="cstat-no" title="statement not covered" >
|
|
231
|
-
|
|
232
|
-
|
|
226
|
+
<span class="cstat-no" title="statement not covered" > if (mapRef.current) {</span>
|
|
227
|
+
<span class="cstat-no" title="statement not covered" > mapRef.current.cleanup(_componentId);</span>
|
|
228
|
+
<span class="cstat-no" title="statement not covered" > mapRef.current = undefined;</span>
|
|
229
|
+
}
|
|
230
|
+
<span class="cstat-no" title="statement not covered" > initializedRef.current = false;</span>
|
|
231
|
+
};
|
|
232
|
+
}, []);
|
|
233
233
|
|
|
234
|
-
<span class="cstat-no" title="statement not covered" >
|
|
235
|
-
<span class="cstat-no" title="statement not covered" >
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
<span class="cstat-no" title="statement not covered" >
|
|
239
|
-
<span class="cstat-no" title="statement not covered" >
|
|
234
|
+
<span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
235
|
+
<span class="cstat-no" title="statement not covered" > if (!mapContext.mapExists(props.mapId) || initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
236
|
+
// the MapLibre-gl instance (mapContext.getMap(props.mapId)) is accessible here
|
|
237
|
+
// initialize the layer and add it to the MapLibre-gl instance or do something else with it
|
|
238
|
+
<span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
|
|
239
|
+
<span class="cstat-no" title="statement not covered" > mapRef.current = mapContext.getMap(props.mapId);</span>
|
|
240
240
|
|
|
241
|
-
<span class="cstat-no" title="statement not covered" >
|
|
242
|
-
|
|
241
|
+
<span class="cstat-no" title="statement not covered" > mapRef.current.setCenter([7.132122000552613, 50.716405378037706]);</span>
|
|
242
|
+
}, [mapContext.mapIds, mapContext, props.mapId]);
|
|
243
243
|
|
|
244
|
-
<span class="cstat-no" title="statement not covered" >
|
|
244
|
+
<span class="cstat-no" title="statement not covered" > return <></>;</span>
|
|
245
245
|
};
|
|
246
246
|
|
|
247
247
|
<span class="cstat-no" title="statement not covered" >MlWmsFeatureInfoPopup.defaultProps = {</span>
|
|
248
|
-
|
|
248
|
+
mapId: undefined,
|
|
249
249
|
};
|
|
250
250
|
|
|
251
251
|
<span class="cstat-no" title="statement not covered" >MlWmsFeatureInfoPopup.propTypes = {</span>
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
252
|
+
/**
|
|
253
|
+
* Id of the target MapLibre instance in mapContext
|
|
254
|
+
*/
|
|
255
|
+
mapId: PropTypes.string,
|
|
256
256
|
};
|
|
257
257
|
export default MlWmsFeatureInfoPopup;
|
|
258
258
|
</pre></td></tr></table></pre>
|
|
@@ -262,7 +262,7 @@ export default MlWmsFeatureInfoPopup;
|
|
|
262
262
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
263
263
|
Code coverage generated by
|
|
264
264
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
265
|
-
at Tue
|
|
265
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
266
266
|
</div>
|
|
267
267
|
<script src="../../../prettify.js"></script>
|
|
268
268
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at Tue
|
|
104
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../../prettify.js"></script>
|
|
107
107
|
<script>
|