@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
|
@@ -415,158 +415,158 @@ import { CircleLayerSpecification, FillLayerSpecification, LineLayerSpecificatio
|
|
|
415
415
|
const msPerStep = 50;
|
|
416
416
|
|
|
417
417
|
interface MlTransitionGeoJsonLayerProps {
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
418
|
+
/**
|
|
419
|
+
* Id of the target MapLibre instance in mapContext
|
|
420
|
+
*/
|
|
421
|
+
mapId: string;
|
|
422
|
+
/**
|
|
423
|
+
* GeoJSON data that is supposed to be rendered by this component.
|
|
424
|
+
*/
|
|
425
|
+
geojson: Feature | FeatureCollection | undefined;
|
|
426
|
+
/**
|
|
427
|
+
* Type of the layer that will be added to the MapLibre instance.
|
|
428
|
+
* Possible values: "line", "circle", "fill"
|
|
429
|
+
*/
|
|
430
|
+
type?: "fill" | "line" | "circle";
|
|
431
|
+
/**
|
|
432
|
+
* Paint property object, that is passed to the addLayer call.
|
|
433
|
+
* Possible props depend on the layer type.
|
|
434
|
+
* https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#line
|
|
435
|
+
* https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
|
|
436
|
+
* https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
|
|
437
|
+
*/
|
|
438
|
+
paint?: CircleLayerSpecification['paint'] | FillLayerSpecification['paint'] | LineLayerSpecification['paint'];
|
|
439
|
+
/**
|
|
440
|
+
* Layout property object, that is passed to the addLayer call.
|
|
441
|
+
* Possible props depend on the layer type.
|
|
442
|
+
* https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#line
|
|
443
|
+
* https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#circle
|
|
444
|
+
* https://maplibre.org/maplibre-gl-js-docs/style-spec/layers/#fill
|
|
445
|
+
*/
|
|
446
|
+
layout?: CircleLayerSpecification['layout'] | FillLayerSpecification['layout'] | LineLayerSpecification['layout'];
|
|
447
|
+
/**
|
|
448
|
+
* Javascript object that is spread into the addLayer commands first parameter.
|
|
449
|
+
*/
|
|
450
|
+
options?: CircleLayerSpecification | FillLayerSpecification | LineLayerSpecification;
|
|
451
|
+
/**
|
|
452
|
+
* Javascript object with optional properties "fill", "line", "circle" to override implicit layer type default paint properties.
|
|
453
|
+
*/
|
|
454
|
+
defaultPaintOverrides?: { circle?: CircleLayerSpecification['paint'], fill?: FillLayerSpecification['paint'], line?: LineLayerSpecification['paint'] };
|
|
455
|
+
/**
|
|
456
|
+
* Id of an existing layer in the mapLibre instance to help specify the layer order
|
|
457
|
+
* This layer will be visually beneath the layer with the "insertBeforeLayer" id.
|
|
458
|
+
*/
|
|
459
|
+
insertBeforeLayer: string;
|
|
460
|
+
/**
|
|
461
|
+
* Hover event handler that is executed whenever a geometry rendered by this component is hovered.
|
|
462
|
+
*/
|
|
463
|
+
onHover?: MapLayerMouseEvent;
|
|
464
|
+
/**
|
|
465
|
+
* Click event handler that is executed whenever a geometry rendered by this component is clicked.
|
|
466
|
+
*/
|
|
467
|
+
onClick?: MapLayerMouseEvent;
|
|
468
|
+
/**
|
|
469
|
+
* Leave event handler that is executed whenever a geometry rendered by this component is
|
|
470
|
+
* left/unhovered.
|
|
471
|
+
*/
|
|
472
|
+
onLeave?: MapLayerMouseEvent;
|
|
473
|
+
/**
|
|
474
|
+
* Creates transition animation whenever the geojson prop changes.
|
|
475
|
+
* Only works with layer type "line" and LineString GeoJSON data.
|
|
476
|
+
*/
|
|
477
|
+
transitionTime: number;
|
|
478
478
|
}
|
|
479
479
|
|
|
480
480
|
/**
|
|
481
481
|
* Adds source and layer of types "line", "fill" or "circle" to display GeoJSON data on the map.
|
|
482
482
|
*/
|
|
483
483
|
const MlTransitionGeoJsonLayer = (props: MlTransitionGeoJsonLayerProps) => {
|
|
484
|
-
|
|
484
|
+
const { geojson, ...restProps } = props;
|
|
485
485
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
486
|
+
const mapHook = useMap({
|
|
487
|
+
mapId: props.mapId,
|
|
488
|
+
waitForLayer: props.insertBeforeLayer,
|
|
489
|
+
});
|
|
490
|
+
const initializedRef = useRef(false);
|
|
491
491
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
492
|
+
// transition effect variables
|
|
493
|
+
const oldGeojsonRef = useRef<Feature | FeatureCollection>();
|
|
494
|
+
const transitionInProgressRef = useRef(false);
|
|
495
|
+
const transitionTimeoutRef = useRef(undefined);
|
|
496
|
+
const currentTransitionStepRef = useRef(false);
|
|
497
|
+
const transitionGeojsonDataRef = useRef([]);
|
|
498
|
+
const transitionGeojsonCommonDataRef = useRef([]);
|
|
499
|
+
const [displayGeojson, setDisplayGeojson] = useState(
|
|
500
|
+
turf.featureCollection([])
|
|
501
|
+
);
|
|
502
502
|
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
<span class="cstat-no" title="statement not covered" >
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
503
|
+
useEffect(() => {
|
|
504
|
+
return () => {
|
|
505
|
+
// This is the cleanup function, it is called when this react component is removed from react-dom
|
|
506
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (transitionTimeoutRef.current) {
|
|
507
|
+
<span class="cstat-no" title="statement not covered" > clearTimeout(transitionTimeoutRef.current);</span>
|
|
508
|
+
}
|
|
509
|
+
};
|
|
510
|
+
}, []);
|
|
511
511
|
|
|
512
|
-
|
|
513
|
-
<span class="cstat-no" title="statement not covered" >
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
512
|
+
const transitionToGeojson = useCallback(<span class="fstat-no" title="function not covered" >()</span> => {
|
|
513
|
+
<span class="cstat-no" title="statement not covered" > _transitionToGeojson(</span>
|
|
514
|
+
props,
|
|
515
|
+
transitionGeojsonCommonDataRef,
|
|
516
|
+
transitionGeojsonDataRef,
|
|
517
|
+
transitionInProgressRef,
|
|
518
|
+
oldGeojsonRef,
|
|
519
|
+
msPerStep,
|
|
520
|
+
currentTransitionStepRef,
|
|
521
|
+
mapHook.map,
|
|
522
|
+
transitionTimeoutRef,
|
|
523
|
+
setDisplayGeojson
|
|
524
|
+
);
|
|
525
|
+
}, [props, mapHook.map]);
|
|
526
526
|
|
|
527
|
-
|
|
528
|
-
|
|
527
|
+
useEffect(() => {
|
|
528
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!mapHook.map || !initializedRef.current) return;
|
|
529
529
|
|
|
530
|
-
<span class="cstat-no" title="statement not covered" >
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
<span class="cstat-no" title="statement not covered" >
|
|
536
|
-
<span class="cstat-no" title="statement not covered" >
|
|
537
|
-
<span class="cstat-no" title="statement not covered" >
|
|
538
|
-
<span class="cstat-no" title="statement not covered" >
|
|
539
|
-
<span class="cstat-no" title="statement not covered" >
|
|
540
|
-
|
|
541
|
-
<span class="cstat-no" title="statement not covered" >
|
|
542
|
-
|
|
530
|
+
<span class="cstat-no" title="statement not covered" > if (</span>
|
|
531
|
+
typeof props.transitionTime !== "undefined" &&
|
|
532
|
+
props.type === "line" &&
|
|
533
|
+
oldGeojsonRef.current
|
|
534
|
+
) {
|
|
535
|
+
<span class="cstat-no" title="statement not covered" > transitionInProgressRef.current = false;</span>
|
|
536
|
+
<span class="cstat-no" title="statement not covered" > currentTransitionStepRef.current = false;</span>
|
|
537
|
+
<span class="cstat-no" title="statement not covered" > transitionGeojsonDataRef.current = [];</span>
|
|
538
|
+
<span class="cstat-no" title="statement not covered" > transitionGeojsonCommonDataRef.current = [];</span>
|
|
539
|
+
<span class="cstat-no" title="statement not covered" > transitionToGeojson();</span>
|
|
540
|
+
}
|
|
541
|
+
<span class="cstat-no" title="statement not covered" > oldGeojsonRef.current = props.geojson;</span>
|
|
542
|
+
}, [mapHook.map, transitionToGeojson, props]);
|
|
543
543
|
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
<span class="branch-2 cbranch-no" title="branch not covered" >
|
|
549
|
-
<span class="branch-3 cbranch-no" title="branch not covered" >
|
|
550
|
-
<span class="branch-4 cbranch-no" title="branch not covered" >
|
|
551
|
-
|
|
552
|
-
<span class="cstat-no" title="statement not covered" >
|
|
553
|
-
<span class="cstat-no" title="statement not covered" >
|
|
554
|
-
|
|
555
|
-
|
|
544
|
+
const startTransition = useCallback(() => {
|
|
545
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
546
|
+
props.type === "line" &&
|
|
547
|
+
typeof props.transitionTime !== "undefined" &&
|
|
548
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > props.transitionTime </span>&&
|
|
549
|
+
<span class="branch-3 cbranch-no" title="branch not covered" > typeof props.geojson !== "undefined" </span>&&
|
|
550
|
+
<span class="branch-4 cbranch-no" title="branch not covered" > JSON.stringify(oldGeojsonRef.current) !== JSON.stringify(props.geojson)</span>
|
|
551
|
+
) {
|
|
552
|
+
<span class="cstat-no" title="statement not covered" > transitionToGeojson();</span>
|
|
553
|
+
<span class="cstat-no" title="statement not covered" > oldGeojsonRef.current = props.geojson;</span>
|
|
554
|
+
}
|
|
555
|
+
}, [props, transitionToGeojson]);
|
|
556
556
|
|
|
557
|
-
|
|
558
|
-
|
|
557
|
+
useEffect(() => {
|
|
558
|
+
if (!mapHook.mapIsReady || !props.geojson) return;
|
|
559
559
|
|
|
560
|
-
|
|
560
|
+
initializedRef.current = true;
|
|
561
561
|
|
|
562
|
-
|
|
563
|
-
|
|
562
|
+
startTransition();
|
|
563
|
+
}, [mapHook.mapIsReady, startTransition, props]);
|
|
564
564
|
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
565
|
+
return (
|
|
566
|
+
<>
|
|
567
|
+
<MlGeoJsonLayer {...restProps} geojson={displayGeojson} />
|
|
568
|
+
</>
|
|
569
|
+
);
|
|
570
570
|
};
|
|
571
571
|
|
|
572
572
|
export default MlTransitionGeoJsonLayer;
|
|
@@ -577,7 +577,7 @@ export default MlTransitionGeoJsonLayer;
|
|
|
577
577
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
578
578
|
Code coverage generated by
|
|
579
579
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
580
|
-
at Tue
|
|
580
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
581
581
|
</div>
|
|
582
582
|
<script src="../../../prettify.js"></script>
|
|
583
583
|
<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>
|
|
@@ -227,65 +227,65 @@ import useMapState from "../../hooks/useMapState";
|
|
|
227
227
|
* @component
|
|
228
228
|
*/
|
|
229
229
|
const MlUseMapDebugger = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops) => {</span>
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
<span class="cstat-no" title="statement not covered" >
|
|
230
|
+
const map = <span class="cstat-no" title="statement not covered" >useMapState({</span>
|
|
231
|
+
mapId: props.mapId,
|
|
232
|
+
watch: {
|
|
233
|
+
layers: true,
|
|
234
|
+
sources: false, // not yet provided
|
|
235
|
+
viewport: false,
|
|
236
|
+
...props.watch,
|
|
237
|
+
},
|
|
238
|
+
filter: {
|
|
239
|
+
...props.filter,
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
const renderCounter = <span class="cstat-no" title="statement not covered" >useRef(0);</span>
|
|
243
|
+
<span class="cstat-no" title="statement not covered" > renderCounter.current = renderCounter.current + 1;</span>
|
|
244
244
|
|
|
245
|
-
<span class="cstat-no" title="statement not covered" >
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
245
|
+
<span class="cstat-no" title="statement not covered" > return (</span>
|
|
246
|
+
<>
|
|
247
|
+
{/*
|
|
248
|
+
<IconButton
|
|
249
|
+
sx={{ zIndex: 10000 }}
|
|
250
|
+
aria-label="delete"
|
|
251
|
+
size="small"
|
|
252
|
+
onClick={() => setDebuggerOpen(!debuggerOpen)}
|
|
253
|
+
>
|
|
254
|
+
<CodeIcon fontSize="inherit" />
|
|
255
|
+
</IconButton>
|
|
256
|
+
<Drawer
|
|
257
|
+
anchor="top"
|
|
258
|
+
open={debuggerOpen}
|
|
259
|
+
onClose={() => setDebuggerOpen(!debuggerOpen)}
|
|
260
|
+
PaperProps={{
|
|
261
|
+
sx: {
|
|
262
|
+
opacity: 0.85,
|
|
263
|
+
maxHeight: "100px",
|
|
264
|
+
position: "relative",
|
|
265
|
+
},
|
|
266
|
+
}}
|
|
267
|
+
hideBackdrop={true}
|
|
268
|
+
variant="persistent"
|
|
269
|
+
></Drawer>
|
|
270
|
+
*/}
|
|
271
|
+
<div style={{ overflow: "hidden", width: "100px", height: "20px" }}>
|
|
272
|
+
Render: {renderCounter.current}
|
|
273
|
+
<br />
|
|
274
|
+
<pre>{JSON.stringify(map, null, " ")}</pre>
|
|
275
|
+
</div>
|
|
276
|
+
</>
|
|
277
|
+
);
|
|
278
278
|
};
|
|
279
279
|
|
|
280
280
|
<span class="cstat-no" title="statement not covered" >MlUseMapDebugger.defaultProps = {</span>
|
|
281
|
-
|
|
281
|
+
mapId: undefined,
|
|
282
282
|
};
|
|
283
283
|
|
|
284
284
|
<span class="cstat-no" title="statement not covered" >MlUseMapDebugger.propTypes = {</span>
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
285
|
+
/**
|
|
286
|
+
* Id of the target MapLibre instance in mapContext
|
|
287
|
+
*/
|
|
288
|
+
mapId: PropTypes.string,
|
|
289
289
|
};
|
|
290
290
|
export default MlUseMapDebugger;
|
|
291
291
|
</pre></td></tr></table></pre>
|
|
@@ -295,7 +295,7 @@ export default MlUseMapDebugger;
|
|
|
295
295
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
296
296
|
Code coverage generated by
|
|
297
297
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
298
|
-
at Tue
|
|
298
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
299
299
|
</div>
|
|
300
300
|
<script src="../../../prettify.js"></script>
|
|
301
301
|
<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>
|