@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
|
@@ -508,31 +508,31 @@
|
|
|
508
508
|
<span class="cline-any cline-neutral"> </span>
|
|
509
509
|
<span class="cline-any cline-neutral"> </span>
|
|
510
510
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import React, {
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
511
|
+
useContext,
|
|
512
|
+
useCallback,
|
|
513
|
+
useRef,
|
|
514
|
+
useEffect,
|
|
515
|
+
useState,
|
|
516
|
+
useMemo
|
|
517
517
|
} from "react";
|
|
518
518
|
// @ts-ignore
|
|
519
519
|
import syncMove from "@mapbox/mapbox-gl-sync-move";
|
|
520
520
|
import "./style.css";
|
|
521
|
-
import
|
|
521
|
+
import MapContext from "../../contexts/MapContext";
|
|
522
522
|
|
|
523
523
|
interface MlLayerMagnifyProps {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
524
|
+
/**
|
|
525
|
+
* Id of the first MapLibre instance
|
|
526
|
+
*/
|
|
527
|
+
map1Id: string;
|
|
528
|
+
/**
|
|
529
|
+
* Id of the second MapLibre instance
|
|
530
|
+
*/
|
|
531
|
+
map2Id: string;
|
|
532
|
+
/**
|
|
533
|
+
* Size of the "magnifier"-circle
|
|
534
|
+
*/
|
|
535
|
+
magnifierRadius?: number;
|
|
536
536
|
}
|
|
537
537
|
|
|
538
538
|
/**
|
|
@@ -541,191 +541,191 @@ interface MlLayerMagnifyProps {
|
|
|
541
541
|
* the map and can be dragged around on top of the MapLibreMap referenced by props.map1Id
|
|
542
542
|
*/
|
|
543
543
|
const MlLayerMagnify = (props: MlLayerMagnifyProps) => {
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
544
|
+
const mapContext:MapContextType = useContext(MapContext);
|
|
545
|
+
const syncMoveInitializedRef = useRef(false);
|
|
546
|
+
const syncCleanupFunctionRef = useRef(<span class="fstat-no" title="function not covered" >()</span> => {});
|
|
547
547
|
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
548
|
+
const [swipeX, setSwipeX] = useState('50');
|
|
549
|
+
const swipeXRef = useRef('50');
|
|
550
|
+
const [swipeY, setSwipeY] = useState('50');
|
|
551
|
+
const swipeYRef = useRef('50');
|
|
552
552
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
553
|
+
const magnifierRadius = useMemo(() => {
|
|
554
|
+
return props.magnifierRadius || <span class="branch-1 cbranch-no" title="branch not covered" >200;</span>
|
|
555
|
+
},[props.magnifierRadius]);
|
|
556
556
|
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
<span class="cstat-no" title="statement not covered" >
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
557
|
+
const mapExists = useCallback(() => {
|
|
558
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!props.map1Id || !props.map2Id) {
|
|
559
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
560
|
+
}
|
|
561
|
+
if (!mapContext.getMap(props.map1Id) || !mapContext.getMap(props.map2Id)) {
|
|
562
|
+
return false;
|
|
563
|
+
}
|
|
564
564
|
|
|
565
|
-
|
|
566
|
-
|
|
565
|
+
return true;
|
|
566
|
+
}, [props, mapContext]);
|
|
567
567
|
|
|
568
|
-
|
|
569
|
-
<span class="cstat-no" title="statement not covered" >
|
|
568
|
+
const onResize = useRef(<span class="fstat-no" title="function not covered" >()</span> => {
|
|
569
|
+
<span class="cstat-no" title="statement not covered" > if (!mapExists()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
570
570
|
|
|
571
|
-
<span class="cstat-no" title="statement not covered" >
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
571
|
+
<span class="cstat-no" title="statement not covered" > onMove({</span>
|
|
572
|
+
clientX: swipeXRef.current,
|
|
573
|
+
clientY: swipeYRef.current,
|
|
574
|
+
});
|
|
575
|
+
});
|
|
576
576
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
577
|
+
useEffect(() => {
|
|
578
|
+
window.addEventListener("resize", onResize.current);
|
|
579
|
+
let _onResize = onResize.current;
|
|
580
580
|
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
581
|
+
return () => {
|
|
582
|
+
window.removeEventListener("resize", _onResize);
|
|
583
|
+
syncCleanupFunctionRef.current();
|
|
584
|
+
};
|
|
585
|
+
}, []);
|
|
586
586
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
587
|
+
const onMove = useCallback(
|
|
588
|
+
(e) => {
|
|
589
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!mapExists()) <span class="cstat-no" title="statement not covered" >return;</span>
|
|
590
590
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
591
|
+
let bounds = mapContext.maps[props.map1Id]
|
|
592
|
+
.getCanvas()
|
|
593
|
+
.getBoundingClientRect();
|
|
594
|
+
let clientX =
|
|
595
|
+
e.clientX ||
|
|
596
|
+
(typeof e.touches !== "undefined" && <span class="branch-1 cbranch-no" title="branch not covered" >typeof e.touches[0] !== "undefined"</span>
|
|
597
|
+
? <span class="branch-0 cbranch-no" title="branch not covered" >e.touches[0].clientX</span>
|
|
598
|
+
: 0);
|
|
599
|
+
let clientY =
|
|
600
|
+
e.clientY ||
|
|
601
|
+
(typeof e.touches !== "undefined" && <span class="branch-1 cbranch-no" title="branch not covered" >typeof e.touches[0] !== "undefined"</span>
|
|
602
|
+
? <span class="branch-0 cbranch-no" title="branch not covered" >e.touches[0].clientY</span>
|
|
603
|
+
: 0);
|
|
604
604
|
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
605
|
+
clientX -= bounds.x;
|
|
606
|
+
clientY -= bounds.y;
|
|
607
|
+
let swipeX_tmp = ((clientX / bounds.width) * 100).toFixed(2);
|
|
608
|
+
let swipeY_tmp = ((clientY / bounds.height) * 100).toFixed(2);
|
|
609
609
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
<span class="branch-1 cbranch-no" title="branch not covered" >
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
610
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (
|
|
611
|
+
swipeXRef.current !== swipeX_tmp ||
|
|
612
|
+
<span class="branch-1 cbranch-no" title="branch not covered" > swipeYRef.current !== swipeY_tmp</span>
|
|
613
|
+
) {
|
|
614
|
+
setSwipeX(swipeX_tmp);
|
|
615
|
+
swipeXRef.current = swipeX_tmp;
|
|
616
|
+
setSwipeY(swipeY_tmp);
|
|
617
|
+
swipeYRef.current = swipeY_tmp;
|
|
618
618
|
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
619
|
+
mapContext.maps[props.map2Id].getContainer().style.clipPath =
|
|
620
|
+
`circle(${magnifierRadius}px at ` +
|
|
621
|
+
(parseFloat(swipeXRef.current) * bounds.width) / 100 +
|
|
622
|
+
"px " +
|
|
623
|
+
(parseFloat(swipeYRef.current) * bounds.height) / 100 +
|
|
624
|
+
"px)";
|
|
625
|
+
}
|
|
626
|
+
},
|
|
627
|
+
[mapContext, mapExists, props, magnifierRadius]
|
|
628
|
+
);
|
|
629
629
|
|
|
630
|
-
|
|
631
|
-
|
|
630
|
+
useEffect(() => {
|
|
631
|
+
if (!mapExists() || syncMoveInitializedRef.current) return;
|
|
632
632
|
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
633
|
+
syncMoveInitializedRef.current = true;
|
|
634
|
+
syncCleanupFunctionRef.current = syncMove(
|
|
635
|
+
mapContext.getMap(props.map1Id).map,
|
|
636
|
+
mapContext.getMap(props.map2Id).map
|
|
637
|
+
);
|
|
638
638
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
639
|
+
/*
|
|
640
|
+
automatically adjust radius for small screens
|
|
641
|
+
if (
|
|
642
|
+
mapContext.maps[props.map1Id].getCanvas().clientWidth >
|
|
643
|
+
mapContext.maps[props.map1Id].getCanvas().clientHeight &&
|
|
644
|
+
magnifierRadius * 2 >
|
|
645
|
+
mapContext.maps[props.map1Id].getCanvas().clientHeight
|
|
646
|
+
) {
|
|
647
|
+
magnifierRadius = Math.floor(
|
|
648
|
+
mapContext.maps[props.map1Id].getCanvas().clientHeight / 2
|
|
649
|
+
);
|
|
650
|
+
setMagnifierRadius(magnifierRadius);
|
|
651
|
+
}
|
|
652
652
|
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
653
|
+
if (
|
|
654
|
+
mapContext.maps[props.map1Id].getCanvas().clientHeight >
|
|
655
|
+
mapContext.maps[props.map1Id].getCanvas().clientWidth &&
|
|
656
|
+
magnifierRadius * 2 >
|
|
657
|
+
mapContext.maps[props.map1Id].getCanvas().clientWidth
|
|
658
|
+
) {
|
|
659
|
+
magnifierRadius = Math.floor(
|
|
660
|
+
mapContext.maps[props.map1Id].getCanvas().clientWidth / 2
|
|
661
|
+
);
|
|
662
|
+
setMagnifierRadius(magnifierRadius);
|
|
663
|
+
}
|
|
664
|
+
*/
|
|
665
665
|
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
666
|
+
onMove({
|
|
667
|
+
clientX: mapContext.maps[props.map1Id].getCanvas().clientWidth / 2,
|
|
668
|
+
clientY: mapContext.maps[props.map1Id].getCanvas().clientHeight / 2,
|
|
669
|
+
});
|
|
670
|
+
}, [mapContext.mapIds, mapContext, mapExists, props, onMove]);
|
|
671
671
|
|
|
672
|
-
|
|
673
|
-
<span class="cstat-no" title="statement not covered" >
|
|
674
|
-
<span class="cstat-no" title="statement not covered" >
|
|
675
|
-
<span class="cstat-no" title="statement not covered" >
|
|
676
|
-
|
|
677
|
-
<span class="cstat-no" title="statement not covered" >
|
|
678
|
-
<span class="cstat-no" title="statement not covered" >
|
|
679
|
-
|
|
680
|
-
|
|
672
|
+
const onDown = <span class="fstat-no" title="function not covered" >(e</span>:any) => {
|
|
673
|
+
<span class="cstat-no" title="statement not covered" > if (e.touches) {</span>
|
|
674
|
+
<span class="cstat-no" title="statement not covered" > document.addEventListener("touchmove", onMove);</span>
|
|
675
|
+
<span class="cstat-no" title="statement not covered" > document.addEventListener("touchend", onTouchEnd);</span>
|
|
676
|
+
} else {
|
|
677
|
+
<span class="cstat-no" title="statement not covered" > document.addEventListener("mousemove", onMove);</span>
|
|
678
|
+
<span class="cstat-no" title="statement not covered" > document.addEventListener("mouseup", onMouseUp);</span>
|
|
679
|
+
}
|
|
680
|
+
};
|
|
681
681
|
|
|
682
|
-
|
|
683
|
-
<span class="cstat-no" title="statement not covered" >
|
|
684
|
-
<span class="cstat-no" title="statement not covered" >
|
|
685
|
-
|
|
682
|
+
const onTouchEnd = <span class="fstat-no" title="function not covered" >()</span> => {
|
|
683
|
+
<span class="cstat-no" title="statement not covered" > document.removeEventListener("touchmove", onMove);</span>
|
|
684
|
+
<span class="cstat-no" title="statement not covered" > document.removeEventListener("touchend", onTouchEnd);</span>
|
|
685
|
+
};
|
|
686
686
|
|
|
687
|
-
|
|
688
|
-
<span class="cstat-no" title="statement not covered" >
|
|
689
|
-
<span class="cstat-no" title="statement not covered" >
|
|
690
|
-
|
|
687
|
+
const onMouseUp = <span class="fstat-no" title="function not covered" >()</span> => {
|
|
688
|
+
<span class="cstat-no" title="statement not covered" > document.removeEventListener("mousemove", onMove);</span>
|
|
689
|
+
<span class="cstat-no" title="statement not covered" > document.removeEventListener("mouseup", onMouseUp);</span>
|
|
690
|
+
};
|
|
691
691
|
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
<span class="cstat-no" title="statement not covered" >
|
|
695
|
-
|
|
692
|
+
const onWheel = <span class="fstat-no" title="function not covered" >(e</span>:any) => {
|
|
693
|
+
let evCopy = <span class="cstat-no" title="statement not covered" >new WheelEvent(e.type, e);</span>
|
|
694
|
+
<span class="cstat-no" title="statement not covered" > mapContext.map.getCanvas().dispatchEvent(evCopy);</span>
|
|
695
|
+
};
|
|
696
696
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
697
|
+
return (
|
|
698
|
+
<div
|
|
699
|
+
style={{
|
|
700
|
+
position: "absolute",
|
|
701
|
+
left: swipeX + "%",
|
|
702
|
+
top: swipeY + "%",
|
|
703
|
+
borderRadius: "50%",
|
|
704
|
+
width: magnifierRadius * 2 + 1 + "px",
|
|
705
|
+
height: magnifierRadius * 2 + 1 + "px",
|
|
706
|
+
background: "rgba(0,0,0,0)",
|
|
707
|
+
border: "2px solid #fafafa",
|
|
708
|
+
boxShadow:
|
|
709
|
+
"1px 2px 2px rgba(19, 19, 19, .5), inset 1px 1px 1px rgba(19, 19, 19, .2)",
|
|
710
|
+
cursor: "pointer",
|
|
711
|
+
zIndex: "110",
|
|
712
|
+
marginLeft: magnifierRadius * -1 - 1 + "px",
|
|
713
|
+
marginTop: magnifierRadius * -1 - 1 + "px",
|
|
714
|
+
textAlign: "center",
|
|
715
|
+
lineHeight: "91px",
|
|
716
|
+
fontSize: "2em",
|
|
717
|
+
color: "#fafafa",
|
|
718
|
+
userSelect: "none",
|
|
719
|
+
}}
|
|
720
|
+
onTouchStart={onDown}
|
|
721
|
+
onMouseDown={onDown}
|
|
722
|
+
onWheel={onWheel}
|
|
723
|
+
></div>
|
|
724
|
+
);
|
|
725
725
|
};
|
|
726
726
|
|
|
727
727
|
MlLayerMagnify.defaultProps = {
|
|
728
|
-
|
|
728
|
+
magnifierRadius: 200,
|
|
729
729
|
};
|
|
730
730
|
|
|
731
731
|
export default MlLayerMagnify;
|
|
@@ -736,7 +736,7 @@ export default MlLayerMagnify;
|
|
|
736
736
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
737
737
|
Code coverage generated by
|
|
738
738
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
739
|
-
at Tue
|
|
739
|
+
at Tue Oct 04 2022 12:11:13 GMT+0000 (Coordinated Universal Time)
|
|
740
740
|
</div>
|
|
741
741
|
<script src="../../../prettify.js"></script>
|
|
742
742
|
<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>
|