@maydon_tech/react-native-nitro-maps 0.1.4 → 0.2.1
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/LICENSE +1 -1
- package/NitroMap.podspec +1 -1
- package/README.md +82 -9
- package/android/CMakeLists.txt +4 -1
- package/android/build.gradle +6 -2
- package/android/gradle.properties +4 -4
- package/android/src/main/cpp/ClusterEngineJNI.cpp +198 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMap.kt +397 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapConfig.kt +53 -0
- package/android/src/main/{java → kotlin}/com/margelo/nitro/nitromap/NitroMapPackage.kt +4 -4
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapView.kt +73 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/UserLocationManager.kt +295 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusterIconRenderer.kt +111 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusteringManager.kt +104 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +166 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerIconFactory.kt +303 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerSelectionHandler.kt +72 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/PriceMarkerRenderer.kt +159 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderFactory.kt +24 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +128 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapDelegate.kt +317 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Clustering.kt +524 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Markers.kt +358 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Overlays.kt +272 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+UserLocation.kt +296 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider.kt +815 -0
- package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/MarkerTagData.kt +19 -0
- package/ios/Location/NitroLocationManager.swift +116 -0
- package/ios/MarkerRenderer/MarkerIconFactory.swift +1 -3
- package/ios/MarkerRenderer/PriceMarkerRenderer.swift +10 -6
- package/ios/NitroMap.swift +279 -13
- package/ios/NitroMapConfig/NitroMapConfig.swift +45 -0
- package/ios/Providers/{GoogleMapDelegate.swift → Google/GoogleMapDelegate.swift} +48 -23
- package/ios/Providers/Google/GoogleMapProvider+Camera.swift +180 -0
- package/ios/Providers/Google/GoogleMapProvider+Clustering.swift +541 -0
- package/ios/Providers/Google/GoogleMapProvider+Markers.swift +270 -0
- package/ios/Providers/Google/GoogleMapProvider+Overlays.swift +245 -0
- package/ios/Providers/Google/GoogleMapProvider+UserLocation.swift +180 -0
- package/ios/Providers/Google/GoogleMapProvider.swift +342 -0
- package/ios/Providers/MapProviderFactory.swift +17 -0
- package/ios/Providers/MapProviderProtocol.swift +48 -1
- package/ios/Shared/ClusterConfig+Factory.swift +2 -2
- package/ios/Shared/MapStyleProvider.swift +6 -4
- package/ios/Shared/MarkerSelectionHandler.swift +4 -1
- package/ios/Utils/ColorValueExtension.swift +46 -67
- package/lib/module/components/ImageMarker.js +39 -29
- package/lib/module/components/ImageMarker.js.map +1 -1
- package/lib/module/components/Marker.js +118 -0
- package/lib/module/components/Marker.js.map +1 -0
- package/lib/module/components/NitroCircle.js +92 -0
- package/lib/module/components/NitroCircle.js.map +1 -0
- package/lib/module/components/NitroMap.js +216 -76
- package/lib/module/components/NitroMap.js.map +1 -1
- package/lib/module/components/NitroPolygon.js +137 -0
- package/lib/module/components/NitroPolygon.js.map +1 -0
- package/lib/module/components/NitroPolyline.js +115 -0
- package/lib/module/components/NitroPolyline.js.map +1 -0
- package/lib/module/components/PriceMarker.js +16 -29
- package/lib/module/components/PriceMarker.js.map +1 -1
- package/lib/module/context/NitroMapContext.js.map +1 -1
- package/lib/module/hooks/useNitroCircle.js +18 -0
- package/lib/module/hooks/useNitroCircle.js.map +1 -0
- package/lib/module/hooks/useNitroMarker.js +26 -9
- package/lib/module/hooks/useNitroMarker.js.map +1 -1
- package/lib/module/hooks/useNitroOverlay.js +59 -0
- package/lib/module/hooks/useNitroOverlay.js.map +1 -0
- package/lib/module/hooks/useNitroPolygon.js +18 -0
- package/lib/module/hooks/useNitroPolygon.js.map +1 -0
- package/lib/module/hooks/useNitroPolyline.js +18 -0
- package/lib/module/hooks/useNitroPolyline.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/overlay.js +4 -0
- package/lib/module/types/overlay.js.map +1 -0
- package/lib/module/types/theme.js +4 -0
- package/lib/module/types/theme.js.map +1 -0
- package/lib/module/utils/colors.js +41 -13
- package/lib/module/utils/colors.js.map +1 -1
- package/lib/module/utils/validation.js +45 -0
- package/lib/module/utils/validation.js.map +1 -0
- package/lib/typescript/src/components/ImageMarker.d.ts.map +1 -1
- package/lib/typescript/src/components/Marker.d.ts +34 -0
- package/lib/typescript/src/components/Marker.d.ts.map +1 -0
- package/lib/typescript/src/components/NitroCircle.d.ts +70 -0
- package/lib/typescript/src/components/NitroCircle.d.ts.map +1 -0
- package/lib/typescript/src/components/NitroMap.d.ts +60 -3
- package/lib/typescript/src/components/NitroMap.d.ts.map +1 -1
- package/lib/typescript/src/components/NitroPolygon.d.ts +86 -0
- package/lib/typescript/src/components/NitroPolygon.d.ts.map +1 -0
- package/lib/typescript/src/components/NitroPolyline.d.ts +84 -0
- package/lib/typescript/src/components/NitroPolyline.d.ts.map +1 -0
- package/lib/typescript/src/components/PriceMarker.d.ts +0 -5
- package/lib/typescript/src/components/PriceMarker.d.ts.map +1 -1
- package/lib/typescript/src/context/NitroMapContext.d.ts +2 -0
- package/lib/typescript/src/context/NitroMapContext.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useNitroCircle.d.ts +7 -0
- package/lib/typescript/src/hooks/useNitroCircle.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useNitroMarker.d.ts +20 -0
- package/lib/typescript/src/hooks/useNitroMarker.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useNitroOverlay.d.ts +26 -0
- package/lib/typescript/src/hooks/useNitroOverlay.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useNitroPolygon.d.ts +7 -0
- package/lib/typescript/src/hooks/useNitroPolygon.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useNitroPolyline.d.ts +7 -0
- package/lib/typescript/src/hooks/useNitroPolyline.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +15 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/NitroMap.nitro.d.ts +248 -6
- package/lib/typescript/src/specs/NitroMap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types/map.d.ts +34 -4
- package/lib/typescript/src/types/map.d.ts.map +1 -1
- package/lib/typescript/src/types/marker.d.ts +24 -36
- package/lib/typescript/src/types/marker.d.ts.map +1 -1
- package/lib/typescript/src/types/overlay.d.ts +84 -0
- package/lib/typescript/src/types/overlay.d.ts.map +1 -0
- package/lib/typescript/src/types/theme.d.ts +93 -0
- package/lib/typescript/src/types/theme.d.ts.map +1 -0
- package/lib/typescript/src/utils/colors.d.ts +6 -8
- package/lib/typescript/src/utils/colors.d.ts.map +1 -1
- package/lib/typescript/src/utils/validation.d.ts +12 -0
- package/lib/typescript/src/utils/validation.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JCircleData.hpp +94 -0
- package/nitrogen/generated/android/c++/JClusterConfig.hpp +5 -7
- package/nitrogen/generated/android/c++/JCoordinateRing.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_UserLocationChangeEvent.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_UserTrackingMode.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
- package/nitrogen/generated/android/c++/JHybridNitroMapSpec.cpp +332 -21
- package/nitrogen/generated/android/c++/JHybridNitroMapSpec.hpp +53 -2
- package/nitrogen/generated/android/c++/JMarkerAnimation.hpp +3 -6
- package/nitrogen/generated/android/c++/JMarkerData.hpp +15 -3
- package/nitrogen/generated/android/c++/JPolygonData.hpp +133 -0
- package/nitrogen/generated/android/c++/JPolylineData.hpp +113 -0
- package/nitrogen/generated/android/c++/JUserLocationChangeEvent.hpp +70 -0
- package/nitrogen/generated/android/c++/JUserTrackingMode.hpp +62 -0
- package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.cpp +72 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/CircleData.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterConfig.kt +4 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/CoordinateRing.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserLocationChangeEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserTrackingMode.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapSpec.kt +228 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerAnimation.kt +1 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerData.kt +12 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolygonData.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolylineData.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/UserLocationChangeEvent.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/{ClusterAnimationStyle.kt → UserTrackingMode.kt} +6 -8
- package/nitrogen/generated/android/nitromapOnLoad.cpp +6 -0
- package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.cpp +24 -0
- package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.hpp +178 -17
- package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Umbrella.hpp +18 -3
- package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.hpp +252 -16
- package/nitrogen/generated/ios/c++/views/HybridNitroMapComponent.mm +90 -5
- package/nitrogen/generated/ios/swift/CircleData.swift +143 -0
- package/nitrogen/generated/ios/swift/ClusterConfig.swift +22 -15
- package/nitrogen/generated/ios/swift/CoordinateRing.swift +48 -0
- package/nitrogen/generated/ios/swift/Func_void_UserLocationChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_UserTrackingMode.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridNitroMapSpec.swift +35 -1
- package/nitrogen/generated/ios/swift/HybridNitroMapSpec_cxx.swift +582 -8
- package/nitrogen/generated/ios/swift/MarkerAnimation.swift +4 -8
- package/nitrogen/generated/ios/swift/MarkerData.swift +54 -2
- package/nitrogen/generated/ios/swift/PolygonData.swift +167 -0
- package/nitrogen/generated/ios/swift/PolylineData.swift +155 -0
- package/nitrogen/generated/ios/swift/UserLocationChangeEvent.swift +69 -0
- package/nitrogen/generated/ios/swift/UserTrackingMode.swift +44 -0
- package/nitrogen/generated/shared/c++/CircleData.hpp +113 -0
- package/nitrogen/generated/shared/c++/ClusterConfig.hpp +5 -8
- package/nitrogen/generated/shared/c++/CoordinateRing.hpp +77 -0
- package/nitrogen/generated/shared/c++/HybridNitroMapSpec.cpp +53 -2
- package/nitrogen/generated/shared/c++/HybridNitroMapSpec.hpp +75 -6
- package/nitrogen/generated/shared/c++/MarkerAnimation.hpp +4 -8
- package/nitrogen/generated/shared/c++/MarkerData.hpp +14 -2
- package/nitrogen/generated/shared/c++/PolygonData.hpp +117 -0
- package/nitrogen/generated/shared/c++/PolylineData.hpp +114 -0
- package/nitrogen/generated/shared/c++/UserLocationChangeEvent.hpp +88 -0
- package/nitrogen/generated/shared/c++/UserTrackingMode.hpp +80 -0
- package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.cpp +216 -12
- package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.hpp +23 -1
- package/nitrogen/generated/shared/json/NitroMapConfig.json +18 -1
- package/package.json +36 -5
- package/src/components/ImageMarker.tsx +58 -42
- package/src/components/Marker.tsx +161 -0
- package/src/components/NitroCircle.tsx +183 -0
- package/src/components/NitroMap.tsx +328 -78
- package/src/components/NitroPolygon.tsx +229 -0
- package/src/components/NitroPolyline.tsx +208 -0
- package/src/components/PriceMarker.tsx +23 -48
- package/src/context/NitroMapContext.tsx +4 -0
- package/src/hooks/useNitroCircle.ts +25 -0
- package/src/hooks/useNitroMarker.ts +49 -10
- package/src/hooks/useNitroOverlay.ts +68 -0
- package/src/hooks/useNitroPolygon.ts +25 -0
- package/src/hooks/useNitroPolyline.ts +25 -0
- package/src/index.tsx +28 -2
- package/src/specs/NitroMap.nitro.ts +294 -5
- package/src/types/map.ts +36 -4
- package/src/types/marker.ts +24 -44
- package/src/types/overlay.ts +87 -0
- package/src/types/theme.ts +101 -0
- package/src/utils/colors.ts +48 -16
- package/src/utils/validation.ts +69 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/ClusterIconGenerator.kt +0 -108
- package/android/src/main/java/com/margelo/nitro/nitromap/ColorUtils.kt +0 -63
- package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMap.kt +0 -408
- package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMapConfig.kt +0 -68
- package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconCache.kt +0 -176
- package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconFactory.kt +0 -252
- package/android/src/main/java/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +0 -252
- package/android/src/main/java/com/margelo/nitro/nitromap/clustering/QuadTree.kt +0 -195
- package/android/src/main/java/com/margelo/nitro/nitromap/providers/GoogleMapProvider.kt +0 -912
- package/android/src/main/java/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +0 -70
- package/cpp/QuadTree.hpp +0 -246
- package/ios/NitroMapConfig/HybridNitroMapConfig.swift +0 -33
- package/ios/Providers/GoogleMapProvider+Camera.swift +0 -164
- package/ios/Providers/GoogleMapProvider.swift +0 -924
- package/nitrogen/generated/android/c++/JClusterAnimationStyle.hpp +0 -68
- package/nitrogen/generated/ios/swift/ClusterAnimationStyle.swift +0 -52
- package/nitrogen/generated/shared/c++/ClusterAnimationStyle.hpp +0 -88
|
@@ -5,8 +5,8 @@ import React, { forwardRef, useImperativeHandle, useCallback, useEffect, useRef,
|
|
|
5
5
|
import { StyleSheet } from 'react-native';
|
|
6
6
|
import { getHostComponent, callback } from 'react-native-nitro-modules';
|
|
7
7
|
import { NitroMapContext } from "../context/NitroMapContext.js";
|
|
8
|
-
import {
|
|
9
|
-
import { parseColor, Colors } from "../utils/colors.js";
|
|
8
|
+
import { IsNitroMapInitialized } from "../modules/index.js";
|
|
9
|
+
import { parseColor, areColorsEqual, Colors } from "../utils/colors.js";
|
|
10
10
|
|
|
11
11
|
// Re-export all types
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -20,18 +20,58 @@ const NitroMapConfig = require('@maydon_tech/react-native-nitro-maps/nitrogen/ge
|
|
|
20
20
|
// Get native component
|
|
21
21
|
const NitroMapHostComponent = getHostComponent('NitroMap', () => NitroMapConfig);
|
|
22
22
|
|
|
23
|
-
//
|
|
23
|
+
// Sentinel region meaning "not set / cleared".
|
|
24
|
+
// Fabric sends `null` when a previously-set optional prop is removed from JSX,
|
|
25
|
+
// and the Nitro SDK's JSIConverter only handles `undefined`, not `null` — crash.
|
|
26
|
+
// React also strips `undefined` prop values (treats them as absent).
|
|
27
|
+
// Workaround: always pass region/initialRegion and use a sentinel with negative
|
|
28
|
+
// deltas that the native side recognizes as "no-op".
|
|
29
|
+
const REGION_UNSET = {
|
|
30
|
+
latitude: 0,
|
|
31
|
+
longitude: 0,
|
|
32
|
+
latitudeDelta: -1,
|
|
33
|
+
longitudeDelta: -1
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Default "disabled" cluster config — always passed to native so the prop is
|
|
37
|
+
// never removed (same Fabric null workaround as REGION_UNSET).
|
|
38
|
+
const CLUSTER_CONFIG_DISABLED = {
|
|
39
|
+
enabled: false,
|
|
40
|
+
strategy: 'supercluster',
|
|
41
|
+
radius: 80,
|
|
42
|
+
minimumClusterSize: 2,
|
|
43
|
+
maxZoom: 20,
|
|
44
|
+
backgroundColor: Colors.blue,
|
|
45
|
+
textColor: Colors.white,
|
|
46
|
+
borderWidth: 2,
|
|
47
|
+
borderColor: Colors.white,
|
|
48
|
+
animatesClusters: true,
|
|
49
|
+
animateOnReappear: true,
|
|
50
|
+
animationDuration: 0.3,
|
|
51
|
+
realtimeClustering: false,
|
|
52
|
+
renderBuffer: 0,
|
|
53
|
+
throttleInterval: 150
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Extended props with style and children.
|
|
57
|
+
// minZoom, maxZoom, mapPadding are non-optional in the Nitro spec (ADR-009)
|
|
58
|
+
// but optional for consumers — we apply defaults in the component.
|
|
59
|
+
//
|
|
60
|
+
// Generic parameter P narrows the `theme` prop to the correct type for
|
|
61
|
+
// the chosen provider. Defaults to 'google' when provider is omitted.
|
|
24
62
|
|
|
25
63
|
// Ref type
|
|
26
64
|
|
|
27
65
|
/**
|
|
28
|
-
* NitroMap - High-performance
|
|
66
|
+
* NitroMap - High-performance map component with native markers.
|
|
67
|
+
* Supports multiple providers (Google, Apple, Yandex) with type-safe theming.
|
|
29
68
|
*/
|
|
30
69
|
const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
31
70
|
style,
|
|
32
71
|
children,
|
|
33
72
|
provider,
|
|
34
73
|
initialRegion,
|
|
74
|
+
region,
|
|
35
75
|
showsUserLocation = false,
|
|
36
76
|
zoomEnabled = true,
|
|
37
77
|
scrollEnabled = true,
|
|
@@ -39,8 +79,13 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
39
79
|
pitchEnabled = true,
|
|
40
80
|
darkMode = false,
|
|
41
81
|
mapType = 'standard',
|
|
42
|
-
showsMyLocationButton = false,
|
|
43
82
|
clusterConfig,
|
|
83
|
+
mapPadding,
|
|
84
|
+
showsTraffic = false,
|
|
85
|
+
showsBuildings = true,
|
|
86
|
+
showsCompass = true,
|
|
87
|
+
minZoom,
|
|
88
|
+
maxZoom,
|
|
44
89
|
onPress,
|
|
45
90
|
onLongPress,
|
|
46
91
|
onMapReady,
|
|
@@ -51,75 +96,88 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
51
96
|
onMarkerDrag,
|
|
52
97
|
onMarkerDragEnd,
|
|
53
98
|
onClusterPress,
|
|
99
|
+
onPolylinePress,
|
|
100
|
+
onPolygonPress,
|
|
101
|
+
onCirclePress,
|
|
102
|
+
onUserLocationChange,
|
|
103
|
+
onUserTrackingModeChange,
|
|
104
|
+
onUserLocationError,
|
|
105
|
+
onMapIdle,
|
|
54
106
|
onError,
|
|
107
|
+
userTrackingMode = 'none',
|
|
108
|
+
userLocationImage = '',
|
|
109
|
+
userLocationSize = 40,
|
|
110
|
+
userLocationAnchor = {
|
|
111
|
+
x: 0.5,
|
|
112
|
+
y: 0.5
|
|
113
|
+
},
|
|
114
|
+
theme,
|
|
115
|
+
customMapStyle,
|
|
55
116
|
...rest
|
|
56
117
|
}, ref) => {
|
|
118
|
+
// Dev-mode warning for unimplemented providers
|
|
119
|
+
if (__DEV__ && provider && provider !== 'google') {
|
|
120
|
+
console.warn(`[NitroMap] Provider "${provider}" is not yet implemented. ` + 'Falling back to Google Maps. See ROADMAP for provider status.');
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Dev-mode deprecation warning for customMapStyle
|
|
124
|
+
if (__DEV__ && customMapStyle && !theme) {
|
|
125
|
+
console.warn('[NitroMap] `customMapStyle` is deprecated. Use `theme` instead.');
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Resolve theme → native bridge prop.
|
|
129
|
+
// `theme` takes precedence over deprecated `customMapStyle`.
|
|
130
|
+
// Currently only Google is implemented — theme is passed as customMapStyle.
|
|
131
|
+
// When Apple/Yandex are added, this will route to the correct native prop.
|
|
132
|
+
const resolvedMapStyle = useMemo(() => {
|
|
133
|
+
if (theme) {
|
|
134
|
+
// Google provider: theme is already MapStyleElement[] (GoogleMapTheme)
|
|
135
|
+
// Apple/Yandex: will be handled by their respective native props
|
|
136
|
+
const resolvedProvider = provider ?? 'google';
|
|
137
|
+
if (resolvedProvider === 'google') {
|
|
138
|
+
return theme;
|
|
139
|
+
}
|
|
140
|
+
// Future providers: return undefined here, pass theme via separate native prop
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
return customMapStyle;
|
|
144
|
+
}, [theme, customMapStyle, provider]);
|
|
145
|
+
|
|
57
146
|
// Native ref
|
|
58
147
|
const nativeRef = useRef(null);
|
|
59
148
|
|
|
60
149
|
// Marker handlers registry
|
|
61
150
|
const markerHandlersRef = useRef(new Map());
|
|
62
151
|
|
|
152
|
+
// Active marker ID tracking for duplicate detection (__DEV__ only)
|
|
153
|
+
const activeMarkerIdsRef = useRef(new Set());
|
|
154
|
+
|
|
63
155
|
// Track if map is ready
|
|
64
156
|
const [isReady, setIsReady] = useState(false);
|
|
65
157
|
|
|
66
|
-
// Expose
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
},
|
|
86
|
-
getMapBoundaries: () => {
|
|
87
|
-
if (!nativeRef.current) {
|
|
88
|
-
return Promise.reject(new Error('Map not ready'));
|
|
158
|
+
// Expose all NitroMapMethods via ref by forwarding calls to the native ref.
|
|
159
|
+
// Uses a Proxy to avoid maintaining a 1:1 list of ~25 wrapper methods.
|
|
160
|
+
useImperativeHandle(ref, () => {
|
|
161
|
+
const handler = {
|
|
162
|
+
get(_target, prop) {
|
|
163
|
+
return (...args) => {
|
|
164
|
+
const native = nativeRef.current;
|
|
165
|
+
if (!native) {
|
|
166
|
+
// Methods that return Promises should reject; void methods silently no-op.
|
|
167
|
+
if (prop === 'getCamera' || prop === 'getMapBoundaries') {
|
|
168
|
+
return Promise.reject(new Error('Map not ready'));
|
|
169
|
+
}
|
|
170
|
+
if (prop === 'pointForCoordinate' || prop === 'coordinateForPoint') {
|
|
171
|
+
throw new Error('Map not ready');
|
|
172
|
+
}
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
return native[prop]?.(...args);
|
|
176
|
+
};
|
|
89
177
|
}
|
|
90
|
-
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
nativeRef.current?.addMarker(marker);
|
|
94
|
-
},
|
|
95
|
-
addMarkers: markers => {
|
|
96
|
-
nativeRef.current?.addMarkers(markers);
|
|
97
|
-
},
|
|
98
|
-
updateMarker: marker => {
|
|
99
|
-
nativeRef.current?.updateMarker(marker);
|
|
100
|
-
},
|
|
101
|
-
removeMarker: id => {
|
|
102
|
-
nativeRef.current?.removeMarker(id);
|
|
103
|
-
},
|
|
104
|
-
clearMarkers: () => {
|
|
105
|
-
nativeRef.current?.clearMarkers();
|
|
106
|
-
},
|
|
107
|
-
setClusteringEnabled: enabled => {
|
|
108
|
-
nativeRef.current?.setClusteringEnabled(enabled);
|
|
109
|
-
},
|
|
110
|
-
refreshClusters: () => {
|
|
111
|
-
nativeRef.current?.refreshClusters();
|
|
112
|
-
},
|
|
113
|
-
selectMarker: id => {
|
|
114
|
-
nativeRef.current?.selectMarker(id);
|
|
115
|
-
},
|
|
116
|
-
setMapStyle: mapStyle => {
|
|
117
|
-
nativeRef.current?.setMapStyle(mapStyle);
|
|
118
|
-
},
|
|
119
|
-
setIsDarkMode: enabled => {
|
|
120
|
-
nativeRef.current?.setIsDarkMode(enabled);
|
|
121
|
-
}
|
|
122
|
-
}));
|
|
178
|
+
};
|
|
179
|
+
return new Proxy({}, handler);
|
|
180
|
+
});
|
|
123
181
|
|
|
124
182
|
// Handle hybridRef callback
|
|
125
183
|
|
|
@@ -129,17 +187,23 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
129
187
|
onMapReady?.();
|
|
130
188
|
}, [onMapReady]);
|
|
131
189
|
|
|
190
|
+
// Cleanup marker handlers on unmount to prevent memory leaks
|
|
191
|
+
useEffect(() => {
|
|
192
|
+
const handlers = markerHandlersRef.current;
|
|
193
|
+
return () => {
|
|
194
|
+
handlers.clear();
|
|
195
|
+
};
|
|
196
|
+
}, []);
|
|
197
|
+
|
|
132
198
|
// Safety guard: warn if NitroMapInitialize() was not called before rendering
|
|
133
199
|
useEffect(() => {
|
|
134
|
-
const {
|
|
135
|
-
IsNitroMapInitialized
|
|
136
|
-
} = require('../modules');
|
|
137
200
|
if (!IsNitroMapInitialized()) {
|
|
138
201
|
onError?.({
|
|
139
202
|
code: 'NOT_INITIALIZED',
|
|
140
203
|
message: 'NitroMapInitialize() must be called before rendering <NitroMap>. ' + 'Call it in your app entry point or a useEffect before the map mounts.'
|
|
141
204
|
});
|
|
142
205
|
}
|
|
206
|
+
// onError is excluded — we only check initialization once on mount.
|
|
143
207
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
144
208
|
}, []);
|
|
145
209
|
|
|
@@ -176,7 +240,9 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
176
240
|
onClusterPress?.(event);
|
|
177
241
|
}, [onClusterPress]);
|
|
178
242
|
|
|
179
|
-
// Context value
|
|
243
|
+
// Context value — uses useRef to create a stable reference that won't
|
|
244
|
+
// trigger re-renders on children. mapRef is mutated in the hybridRef
|
|
245
|
+
// callback, but consumers access it lazily (in effects, not during render).
|
|
180
246
|
const contextValue = useRef({
|
|
181
247
|
mapRef: null,
|
|
182
248
|
registerMarkerHandler: (id, handlers) => {
|
|
@@ -187,6 +253,15 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
187
253
|
},
|
|
188
254
|
getMarkerHandler: id => {
|
|
189
255
|
return markerHandlersRef.current.get(id);
|
|
256
|
+
},
|
|
257
|
+
trackMarkerId: id => {
|
|
258
|
+
if (__DEV__ && activeMarkerIdsRef.current.has(id)) {
|
|
259
|
+
console.warn(`[NitroMap] Duplicate marker ID "${id}" detected. ` + 'Each marker must have a unique ID. The previous marker with this ID will be replaced.');
|
|
260
|
+
}
|
|
261
|
+
activeMarkerIdsRef.current.add(id);
|
|
262
|
+
},
|
|
263
|
+
untrackMarkerId: id => {
|
|
264
|
+
activeMarkerIdsRef.current.delete(id);
|
|
190
265
|
}
|
|
191
266
|
}).current;
|
|
192
267
|
|
|
@@ -211,8 +286,8 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
211
286
|
borderWidth: clusterConfig.borderWidth ?? 2,
|
|
212
287
|
borderColor: parseColor(clusterConfig.borderColor) ?? defaultBorderColor,
|
|
213
288
|
animatesClusters: clusterConfig.animatesClusters ?? true,
|
|
289
|
+
animateOnReappear: clusterConfig.animateOnReappear ?? true,
|
|
214
290
|
animationDuration: clusterConfig.animationDuration ?? 0.3,
|
|
215
|
-
animationStyle: clusterConfig.animationStyle ?? 'default',
|
|
216
291
|
realtimeClustering: clusterConfig.realtimeClustering ?? false,
|
|
217
292
|
renderBuffer: clusterConfig.renderBuffer ?? 0,
|
|
218
293
|
throttleInterval: clusterConfig.throttleInterval ?? 150
|
|
@@ -237,15 +312,23 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
237
312
|
onMarkerDrag: callback(handleMarkerDrag),
|
|
238
313
|
onMarkerDragEnd: callback(handleMarkerDragEnd),
|
|
239
314
|
onClusterPress: callback(handleClusterPress),
|
|
315
|
+
onPolylinePress: callback(onPolylinePress),
|
|
316
|
+
onPolygonPress: callback(onPolygonPress),
|
|
317
|
+
onCirclePress: callback(onCirclePress),
|
|
318
|
+
onUserLocationChange: callback(onUserLocationChange),
|
|
319
|
+
onUserTrackingModeChange: callback(onUserTrackingModeChange),
|
|
320
|
+
onUserLocationError: callback(onUserLocationError),
|
|
321
|
+
onMapIdle: callback(onMapIdle),
|
|
240
322
|
onError: callback(onError)
|
|
241
|
-
}), [onPress, onLongPress, handleMapReady, onRegionChange, onRegionChangeComplete, handleMarkerPress, handleMarkerDragStart, handleMarkerDrag, handleMarkerDragEnd, handleClusterPress, onError]);
|
|
323
|
+
}), [onPress, onLongPress, handleMapReady, onRegionChange, onRegionChangeComplete, handleMarkerPress, handleMarkerDragStart, handleMarkerDrag, handleMarkerDragEnd, handleClusterPress, onPolylinePress, onPolygonPress, onCirclePress, onUserLocationChange, onUserTrackingModeChange, onUserLocationError, onMapIdle, onError]);
|
|
242
324
|
return /*#__PURE__*/_jsxs(NitroMapContext.Provider, {
|
|
243
325
|
value: contextValue,
|
|
244
326
|
children: [/*#__PURE__*/_jsx(NitroMapHostComponent, {
|
|
245
327
|
style: combinedStyle,
|
|
246
328
|
hybridRef: hybridRefCallback,
|
|
247
|
-
provider: provider ??
|
|
248
|
-
initialRegion: initialRegion,
|
|
329
|
+
provider: provider ?? 'google',
|
|
330
|
+
initialRegion: initialRegion ?? REGION_UNSET,
|
|
331
|
+
region: region ?? REGION_UNSET,
|
|
249
332
|
showsUserLocation: showsUserLocation,
|
|
250
333
|
zoomEnabled: zoomEnabled,
|
|
251
334
|
scrollEnabled: scrollEnabled,
|
|
@@ -253,8 +336,28 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
253
336
|
pitchEnabled: pitchEnabled,
|
|
254
337
|
mapType: mapType,
|
|
255
338
|
darkMode: darkMode,
|
|
256
|
-
|
|
257
|
-
|
|
339
|
+
clusterConfig: parsedClusterConfig ?? CLUSTER_CONFIG_DISABLED,
|
|
340
|
+
mapPadding: typeof mapPadding === 'number' ? {
|
|
341
|
+
top: mapPadding,
|
|
342
|
+
right: mapPadding,
|
|
343
|
+
bottom: mapPadding,
|
|
344
|
+
left: mapPadding
|
|
345
|
+
} : mapPadding ?? {
|
|
346
|
+
top: 0,
|
|
347
|
+
right: 0,
|
|
348
|
+
bottom: 0,
|
|
349
|
+
left: 0
|
|
350
|
+
},
|
|
351
|
+
showsCompass: showsCompass,
|
|
352
|
+
showsTraffic: showsTraffic,
|
|
353
|
+
showsBuildings: showsBuildings,
|
|
354
|
+
minZoom: minZoom ?? 1,
|
|
355
|
+
maxZoom: maxZoom ?? 22,
|
|
356
|
+
userTrackingMode: userTrackingMode,
|
|
357
|
+
userLocationImage: userLocationImage,
|
|
358
|
+
userLocationSize: userLocationSize,
|
|
359
|
+
userLocationAnchor: userLocationAnchor,
|
|
360
|
+
customMapStyle: resolvedMapStyle ?? [],
|
|
258
361
|
onPress: memoizedCallbacks.onPress,
|
|
259
362
|
onLongPress: memoizedCallbacks.onLongPress,
|
|
260
363
|
onMapReady: memoizedCallbacks.onMapReady,
|
|
@@ -265,18 +368,41 @@ const NitroMapInner = /*#__PURE__*/forwardRef(({
|
|
|
265
368
|
onMarkerDrag: memoizedCallbacks.onMarkerDrag,
|
|
266
369
|
onMarkerDragEnd: memoizedCallbacks.onMarkerDragEnd,
|
|
267
370
|
onClusterPress: memoizedCallbacks.onClusterPress,
|
|
371
|
+
onPolylinePress: memoizedCallbacks.onPolylinePress,
|
|
372
|
+
onPolygonPress: memoizedCallbacks.onPolygonPress,
|
|
373
|
+
onCirclePress: memoizedCallbacks.onCirclePress,
|
|
374
|
+
onUserLocationChange: memoizedCallbacks.onUserLocationChange,
|
|
375
|
+
onUserTrackingModeChange: memoizedCallbacks.onUserTrackingModeChange,
|
|
376
|
+
onUserLocationError: memoizedCallbacks.onUserLocationError,
|
|
377
|
+
onMapIdle: memoizedCallbacks.onMapIdle,
|
|
268
378
|
onError: memoizedCallbacks.onError,
|
|
269
379
|
...rest
|
|
270
380
|
}), isReady && children]
|
|
271
381
|
});
|
|
272
382
|
});
|
|
273
|
-
NitroMapInner.displayName = '
|
|
383
|
+
NitroMapInner.displayName = 'NitroMapInner';
|
|
274
384
|
|
|
275
385
|
// ============ Custom Props Comparison ============
|
|
276
386
|
// Deep compare map props to prevent unnecessary re-renders
|
|
277
387
|
const areMapPropsEqual = (prevProps, nextProps) => {
|
|
278
388
|
// Compare primitive props
|
|
279
|
-
if (prevProps.provider !== nextProps.provider || prevProps.showsUserLocation !== nextProps.showsUserLocation || prevProps.zoomEnabled !== nextProps.zoomEnabled || prevProps.scrollEnabled !== nextProps.scrollEnabled || prevProps.rotateEnabled !== nextProps.rotateEnabled || prevProps.pitchEnabled !== nextProps.pitchEnabled || prevProps.darkMode !== nextProps.darkMode || prevProps.mapType !== nextProps.mapType || prevProps.
|
|
389
|
+
if (prevProps.provider !== nextProps.provider || prevProps.showsUserLocation !== nextProps.showsUserLocation || prevProps.userTrackingMode !== nextProps.userTrackingMode || prevProps.userLocationImage !== nextProps.userLocationImage || prevProps.userLocationSize !== nextProps.userLocationSize || prevProps.userLocationAnchor?.x !== nextProps.userLocationAnchor?.x || prevProps.userLocationAnchor?.y !== nextProps.userLocationAnchor?.y || prevProps.zoomEnabled !== nextProps.zoomEnabled || prevProps.scrollEnabled !== nextProps.scrollEnabled || prevProps.rotateEnabled !== nextProps.rotateEnabled || prevProps.pitchEnabled !== nextProps.pitchEnabled || prevProps.darkMode !== nextProps.darkMode || prevProps.mapType !== nextProps.mapType || prevProps.showsTraffic !== nextProps.showsTraffic || prevProps.showsBuildings !== nextProps.showsBuildings || prevProps.showsCompass !== nextProps.showsCompass || prevProps.minZoom !== nextProps.minZoom || prevProps.maxZoom !== nextProps.maxZoom || prevProps.theme !== nextProps.theme || prevProps.customMapStyle !== nextProps.customMapStyle) {
|
|
390
|
+
return false;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
// Compare mapPadding (handles number | EdgePadding union)
|
|
394
|
+
const prevPadding = prevProps.mapPadding;
|
|
395
|
+
const nextPadding = nextProps.mapPadding;
|
|
396
|
+
if (typeof prevPadding !== typeof nextPadding) {
|
|
397
|
+
return false;
|
|
398
|
+
}
|
|
399
|
+
if (typeof prevPadding === 'number') {
|
|
400
|
+
if (prevPadding !== nextPadding) return false;
|
|
401
|
+
} else if (prevPadding && nextPadding && typeof nextPadding === 'object') {
|
|
402
|
+
if (prevPadding.top !== nextPadding.top || prevPadding.right !== nextPadding.right || prevPadding.bottom !== nextPadding.bottom || prevPadding.left !== nextPadding.left) {
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
} else if (prevPadding !== nextPadding) {
|
|
280
406
|
return false;
|
|
281
407
|
}
|
|
282
408
|
|
|
@@ -295,7 +421,7 @@ const areMapPropsEqual = (prevProps, nextProps) => {
|
|
|
295
421
|
const prevCluster = prevProps.clusterConfig;
|
|
296
422
|
const nextCluster = nextProps.clusterConfig;
|
|
297
423
|
if (prevCluster && nextCluster) {
|
|
298
|
-
if (prevCluster.enabled !== nextCluster.enabled || prevCluster.strategy !== nextCluster.strategy || prevCluster.radius !== nextCluster.radius || prevCluster.minimumClusterSize !== nextCluster.minimumClusterSize || prevCluster.maxZoom !== nextCluster.maxZoom || prevCluster.animatesClusters !== nextCluster.animatesClusters || prevCluster.animationDuration !== nextCluster.animationDuration || prevCluster.
|
|
424
|
+
if (prevCluster.enabled !== nextCluster.enabled || prevCluster.strategy !== nextCluster.strategy || prevCluster.radius !== nextCluster.radius || prevCluster.minimumClusterSize !== nextCluster.minimumClusterSize || prevCluster.maxZoom !== nextCluster.maxZoom || prevCluster.animatesClusters !== nextCluster.animatesClusters || prevCluster.animateOnReappear !== nextCluster.animateOnReappear || prevCluster.animationDuration !== nextCluster.animationDuration || prevCluster.borderWidth !== nextCluster.borderWidth || prevCluster.realtimeClustering !== nextCluster.realtimeClustering || prevCluster.renderBuffer !== nextCluster.renderBuffer || prevCluster.throttleInterval !== nextCluster.throttleInterval || !areColorsEqual(prevCluster.backgroundColor, nextCluster.backgroundColor) || !areColorsEqual(prevCluster.textColor, nextCluster.textColor) || !areColorsEqual(prevCluster.borderColor, nextCluster.borderColor)) {
|
|
299
425
|
return false;
|
|
300
426
|
}
|
|
301
427
|
} else if (prevCluster !== nextCluster) {
|
|
@@ -320,13 +446,27 @@ const areMapPropsEqual = (prevProps, nextProps) => {
|
|
|
320
446
|
return true;
|
|
321
447
|
};
|
|
322
448
|
|
|
449
|
+
// ============ Generic Component Type ============
|
|
450
|
+
// React's forwardRef + memo erase generics, so we define a generic
|
|
451
|
+
// function signature and cast the memoized component to it.
|
|
452
|
+
// This lets consumers write <NitroMap provider="apple" theme={...} />
|
|
453
|
+
// and get proper type narrowing on the `theme` prop.
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Generic NitroMap component type that preserves provider-aware theme typing.
|
|
457
|
+
*/
|
|
458
|
+
|
|
323
459
|
// Memoized NitroMap to prevent unnecessary re-renders
|
|
324
|
-
const
|
|
460
|
+
const NitroMapMemoized = /*#__PURE__*/memo(NitroMapInner, areMapPropsEqual);
|
|
461
|
+
|
|
462
|
+
// Cast to generic component type so consumers get provider-aware theme narrowing
|
|
463
|
+
const NitroMap = NitroMapMemoized;
|
|
464
|
+
NitroMap.displayName = 'NitroMap';
|
|
325
465
|
const styles = StyleSheet.create({
|
|
326
466
|
default: {
|
|
327
467
|
flex: 1
|
|
328
468
|
}
|
|
329
469
|
});
|
|
330
|
-
export { NitroMap };
|
|
470
|
+
export { NitroMap, areMapPropsEqual };
|
|
331
471
|
export default NitroMap;
|
|
332
472
|
//# sourceMappingURL=NitroMap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useImperativeHandle","useCallback","useEffect","useRef","useState","useMemo","memo","StyleSheet","getHostComponent","callback","NitroMapContext","getDefaultProvider","parseColor","Colors","jsx","_jsx","jsxs","_jsxs","NitroMapConfig","require","NitroMapHostComponent","NitroMapInner","style","children","provider","initialRegion","showsUserLocation","zoomEnabled","scrollEnabled","rotateEnabled","pitchEnabled","darkMode","mapType","showsMyLocationButton","clusterConfig","onPress","onLongPress","onMapReady","onRegionChange","onRegionChangeComplete","onMarkerPress","onMarkerDragStart","onMarkerDrag","onMarkerDragEnd","onClusterPress","onError","rest","ref","nativeRef","markerHandlersRef","Map","isReady","setIsReady","animateToRegion","region","duration","current","fitToCoordinates","coordinates","edgePadding","animated","animateCamera","camera","getCamera","Promise","reject","Error","setCamera","getMapBoundaries","addMarker","marker","addMarkers","markers","updateMarker","removeMarker","id","clearMarkers","setClusteringEnabled","enabled","refreshClusters","selectMarker","setMapStyle","mapStyle","setIsDarkMode","handleMapReady","IsNitroMapInitialized","code","message","handleMarkerPress","event","handlers","get","handleMarkerDragStart","onDragStart","coordinate","handleMarkerDrag","onDrag","handleMarkerDragEnd","onDragEnd","handleClusterPress","contextValue","mapRef","registerMarkerHandler","set","unregisterMarkerHandler","delete","getMarkerHandler","combinedStyle","styles","default","parsedClusterConfig","undefined","defaultColor","blue","defaultTextColor","white","defaultBorderColor","strategy","radius","minimumClusterSize","maxZoom","backgroundColor","textColor","borderWidth","borderColor","animatesClusters","animationDuration","animationStyle","realtimeClustering","renderBuffer","throttleInterval","hybridRefCallback","native","memoizedCallbacks","Provider","value","hybridRef","displayName","areMapPropsEqual","prevProps","nextProps","prevRegion","nextRegion","latitude","longitude","latitudeDelta","longitudeDelta","prevCluster","nextCluster","NitroMap","create","flex"],"sourceRoot":"../../../src","sources":["components/NitroMap.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useImperativeHandle","useCallback","useEffect","useRef","useState","useMemo","memo","StyleSheet","getHostComponent","callback","NitroMapContext","IsNitroMapInitialized","parseColor","areColorsEqual","Colors","jsx","_jsx","jsxs","_jsxs","NitroMapConfig","require","NitroMapHostComponent","REGION_UNSET","latitude","longitude","latitudeDelta","longitudeDelta","CLUSTER_CONFIG_DISABLED","enabled","strategy","radius","minimumClusterSize","maxZoom","backgroundColor","blue","textColor","white","borderWidth","borderColor","animatesClusters","animateOnReappear","animationDuration","realtimeClustering","renderBuffer","throttleInterval","NitroMapInner","style","children","provider","initialRegion","region","showsUserLocation","zoomEnabled","scrollEnabled","rotateEnabled","pitchEnabled","darkMode","mapType","clusterConfig","mapPadding","showsTraffic","showsBuildings","showsCompass","minZoom","onPress","onLongPress","onMapReady","onRegionChange","onRegionChangeComplete","onMarkerPress","onMarkerDragStart","onMarkerDrag","onMarkerDragEnd","onClusterPress","onPolylinePress","onPolygonPress","onCirclePress","onUserLocationChange","onUserTrackingModeChange","onUserLocationError","onMapIdle","onError","userTrackingMode","userLocationImage","userLocationSize","userLocationAnchor","x","y","theme","customMapStyle","rest","ref","__DEV__","console","warn","resolvedMapStyle","resolvedProvider","undefined","nativeRef","markerHandlersRef","Map","activeMarkerIdsRef","Set","isReady","setIsReady","handler","get","_target","prop","args","native","current","Promise","reject","Error","Proxy","handleMapReady","handlers","clear","code","message","handleMarkerPress","event","id","handleMarkerDragStart","onDragStart","coordinate","handleMarkerDrag","onDrag","handleMarkerDragEnd","onDragEnd","handleClusterPress","contextValue","mapRef","registerMarkerHandler","set","unregisterMarkerHandler","delete","getMarkerHandler","trackMarkerId","has","add","untrackMarkerId","combinedStyle","styles","default","parsedClusterConfig","defaultColor","defaultTextColor","defaultBorderColor","hybridRefCallback","memoizedCallbacks","Provider","value","hybridRef","top","right","bottom","left","displayName","areMapPropsEqual","prevProps","nextProps","prevPadding","nextPadding","prevRegion","nextRegion","prevCluster","nextCluster","NitroMapMemoized","NitroMap","create","flex"],"sourceRoot":"../../../src","sources":["components/NitroMap.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IACVC,UAAU,EACVC,mBAAmB,EACnBC,WAAW,EACXC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,IAAI,QACC,OAAO;AACd,SAASC,UAAU,QAAwC,cAAc;AACzE,SAASC,gBAAgB,EAAEC,QAAQ,QAAQ,4BAA4B;AAOvE,SACEC,eAAe,QAEV,+BAA4B;AASnC,SAASC,qBAAqB,QAAQ,qBAAY;AAClD,SAASC,UAAU,EAAEC,cAAc,EAAEC,MAAM,QAAQ,oBAAiB;;AAEpE;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,cAAc,4BAAyB;AACvC,cAAc,+BAA4B;;AAE1C;;AAEA,MAAMC,cAAc,GAAGC,OAAO,CAAC,yFAAyF,CAAC;;AAEzH;AACA,MAAMC,qBAAqB,GAAGb,gBAAgB,CAG5C,UAAU,EAAE,MAAMW,cAAc,CAAC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,YAAY,GAAG;EACnBC,QAAQ,EAAE,CAAC;EACXC,SAAS,EAAE,CAAC;EACZC,aAAa,EAAE,CAAC,CAAC;EACjBC,cAAc,EAAE,CAAC;AACnB,CAAC;;AAED;AACA;AACA,MAAMC,uBAAuB,GAAG;EAC9BC,OAAO,EAAE,KAAK;EACdC,QAAQ,EAAE,cAAuB;EACjCC,MAAM,EAAE,EAAE;EACVC,kBAAkB,EAAE,CAAC;EACrBC,OAAO,EAAE,EAAE;EACXC,eAAe,EAAEnB,MAAM,CAACoB,IAAI;EAC5BC,SAAS,EAAErB,MAAM,CAACsB,KAAK;EACvBC,WAAW,EAAE,CAAC;EACdC,WAAW,EAAExB,MAAM,CAACsB,KAAK;EACzBG,gBAAgB,EAAE,IAAI;EACtBC,iBAAiB,EAAE,IAAI;EACvBC,iBAAiB,EAAE,GAAG;EACtBC,kBAAkB,EAAE,KAAK;EACzBC,YAAY,EAAE,CAAC;EACfC,gBAAgB,EAAE;AACpB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAoEA;;AAGA;AACA;AACA;AACA;AACA,MAAMC,aAAa,gBAAG9C,UAAU,CAC9B,CACE;EACE+C,KAAK;EACLC,QAAQ;EACRC,QAAQ;EACRC,aAAa;EACbC,MAAM;EACNC,iBAAiB,GAAG,KAAK;EACzBC,WAAW,GAAG,IAAI;EAClBC,aAAa,GAAG,IAAI;EACpBC,aAAa,GAAG,IAAI;EACpBC,YAAY,GAAG,IAAI;EACnBC,QAAQ,GAAG,KAAK;EAChBC,OAAO,GAAG,UAAU;EACpBC,aAAa;EACbC,UAAU;EACVC,YAAY,GAAG,KAAK;EACpBC,cAAc,GAAG,IAAI;EACrBC,YAAY,GAAG,IAAI;EACnBC,OAAO;EACP/B,OAAO;EACPgC,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC,cAAc;EACdC,sBAAsB;EACtBC,aAAa;EACbC,iBAAiB;EACjBC,YAAY;EACZC,eAAe;EACfC,cAAc;EACdC,eAAe;EACfC,cAAc;EACdC,aAAa;EACbC,oBAAoB;EACpBC,wBAAwB;EACxBC,mBAAmB;EACnBC,SAAS;EACTC,OAAO;EACPC,gBAAgB,GAAG,MAAM;EACzBC,iBAAiB,GAAG,EAAE;EACtBC,gBAAgB,GAAG,EAAE;EACrBC,kBAAkB,GAAG;IAAEC,CAAC,EAAE,GAAG;IAAEC,CAAC,EAAE;EAAI,CAAC;EACvCC,KAAK;EACLC,cAAc;EACd,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH;EACA,IAAIC,OAAO,IAAI5C,QAAQ,IAAIA,QAAQ,KAAK,QAAQ,EAAE;IAChD6C,OAAO,CAACC,IAAI,CACV,wBAAwB9C,QAAQ,4BAA4B,GAC1D,+DACJ,CAAC;EACH;;EAEA;EACA,IAAI4C,OAAO,IAAIH,cAAc,IAAI,CAACD,KAAK,EAAE;IACvCK,OAAO,CAACC,IAAI,CACV,iEACF,CAAC;EACH;;EAEA;EACA;EACA;EACA;EACA,MAAMC,gBAAsC,GAAG1F,OAAO,CAAC,MAAM;IAC3D,IAAImF,KAAK,EAAE;MACT;MACA;MACA,MAAMQ,gBAAgB,GAAGhD,QAAQ,IAAI,QAAQ;MAC7C,IAAIgD,gBAAgB,KAAK,QAAQ,EAAE;QACjC,OAAOR,KAAK;MACd;MACA;MACA,OAAOS,SAAS;IAClB;IACA,OAAOR,cAAc;EACvB,CAAC,EAAE,CAACD,KAAK,EAAEC,cAAc,EAAEzC,QAAQ,CAAC,CAAC;;EAErC;EACA,MAAMkD,SAAS,GAAG/F,MAAM,CAAyB,IAAI,CAAC;;EAEtD;EACA,MAAMgG,iBAAiB,GAAGhG,MAAM,CAA8B,IAAIiG,GAAG,CAAC,CAAC,CAAC;;EAExE;EACA,MAAMC,kBAAkB,GAAGlG,MAAM,CAAc,IAAImG,GAAG,CAAC,CAAC,CAAC;;EAEzD;EACA,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGpG,QAAQ,CAAC,KAAK,CAAC;;EAE7C;EACA;EACAJ,mBAAmB,CAAC2F,GAAG,EAAE,MAAM;IAC7B,MAAMc,OAAsC,GAAG;MAC7CC,GAAGA,CAACC,OAAO,EAAEC,IAAY,EAAE;QACzB,OAAO,CAAC,GAAGC,IAAe,KAAK;UAC7B,MAAMC,MAAM,GAAGZ,SAAS,CAACa,OAAO;UAChC,IAAI,CAACD,MAAM,EAAE;YACX;YACA,IAAIF,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,kBAAkB,EAAE;cACvD,OAAOI,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAAC,eAAe,CAAC,CAAC;YACnD;YACA,IACEN,IAAI,KAAK,oBAAoB,IAC7BA,IAAI,KAAK,oBAAoB,EAC7B;cACA,MAAM,IAAIM,KAAK,CAAC,eAAe,CAAC;YAClC;YACA,OAAOjB,SAAS;UAClB;UAEA,OAAQa,MAAM,CAASF,IAAI,CAAC,GAAG,GAAGC,IAAI,CAAC;QACzC,CAAC;MACH;IACF,CAAC;IACD,OAAO,IAAIM,KAAK,CAAC,CAAC,CAAC,EAAqBV,OAAO,CAAC;EAClD,CAAC,CAAC;;EAEF;;EAEA;EACA,MAAMW,cAAc,GAAGnH,WAAW,CAAC,MAAM;IACvCuG,UAAU,CAAC,IAAI,CAAC;IAChBtC,UAAU,GAAG,CAAC;EAChB,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;;EAEhB;EACAhE,SAAS,CAAC,MAAM;IACd,MAAMmH,QAAQ,GAAGlB,iBAAiB,CAACY,OAAO;IAC1C,OAAO,MAAM;MACXM,QAAQ,CAACC,KAAK,CAAC,CAAC;IAClB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACApH,SAAS,CAAC,MAAM;IACd,IAAI,CAACS,qBAAqB,CAAC,CAAC,EAAE;MAC5BsE,OAAO,GAAG;QACRsC,IAAI,EAAE,iBAAiB;QACvBC,OAAO,EACL,mEAAmE,GACnE;MACJ,CAAC,CAAC;IACJ;IACA;IACA;EACF,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAMC,iBAAiB,GAAGxH,WAAW,CAClCyH,KAAuB,IAAK;IAC3B,MAAML,QAAQ,GAAGlB,iBAAiB,CAACY,OAAO,CAACL,GAAG,CAACgB,KAAK,CAACC,EAAE,CAAC;IACxDN,QAAQ,EAAErD,OAAO,GAAG,CAAC;IACrBK,aAAa,GAAGqD,KAAK,CAAC;EACxB,CAAC,EACD,CAACrD,aAAa,CAChB,CAAC;;EAED;EACA,MAAMuD,qBAAqB,GAAG3H,WAAW,CACtCyH,KAAsB,IAAK;IAC1B,MAAML,QAAQ,GAAGlB,iBAAiB,CAACY,OAAO,CAACL,GAAG,CAACgB,KAAK,CAACC,EAAE,CAAC;IACxDN,QAAQ,EAAEQ,WAAW,GAAGH,KAAK,CAACI,UAAU,CAAC;IACzCxD,iBAAiB,GAAGoD,KAAK,CAAC;EAC5B,CAAC,EACD,CAACpD,iBAAiB,CACpB,CAAC;;EAED;EACA,MAAMyD,gBAAgB,GAAG9H,WAAW,CACjCyH,KAAsB,IAAK;IAC1B,MAAML,QAAQ,GAAGlB,iBAAiB,CAACY,OAAO,CAACL,GAAG,CAACgB,KAAK,CAACC,EAAE,CAAC;IACxDN,QAAQ,EAAEW,MAAM,GAAGN,KAAK,CAACI,UAAU,CAAC;IACpCvD,YAAY,GAAGmD,KAAK,CAAC;EACvB,CAAC,EACD,CAACnD,YAAY,CACf,CAAC;;EAED;EACA,MAAM0D,mBAAmB,GAAGhI,WAAW,CACpCyH,KAAsB,IAAK;IAC1B,MAAML,QAAQ,GAAGlB,iBAAiB,CAACY,OAAO,CAACL,GAAG,CAACgB,KAAK,CAACC,EAAE,CAAC;IACxDN,QAAQ,EAAEa,SAAS,GAAGR,KAAK,CAACI,UAAU,CAAC;IACvCtD,eAAe,GAAGkD,KAAK,CAAC;EAC1B,CAAC,EACD,CAAClD,eAAe,CAClB,CAAC;;EAED;EACA,MAAM2D,kBAAkB,GAAGlI,WAAW,CACnCyH,KAAwB,IAAK;IAC5BjD,cAAc,GAAGiD,KAAK,CAAC;EACzB,CAAC,EACD,CAACjD,cAAc,CACjB,CAAC;;EAED;EACA;EACA;EACA,MAAM2D,YAAY,GAAGjI,MAAM,CAAC;IAC1BkI,MAAM,EAAE,IAA8B;IAEtCC,qBAAqB,EAAEA,CAACX,EAAU,EAAEN,QAAwB,KAAK;MAC/DlB,iBAAiB,CAACY,OAAO,CAACwB,GAAG,CAACZ,EAAE,EAAEN,QAAQ,CAAC;IAC7C,CAAC;IAEDmB,uBAAuB,EAAGb,EAAU,IAAK;MACvCxB,iBAAiB,CAACY,OAAO,CAAC0B,MAAM,CAACd,EAAE,CAAC;IACtC,CAAC;IAEDe,gBAAgB,EAAGf,EAAU,IAAK;MAChC,OAAOxB,iBAAiB,CAACY,OAAO,CAACL,GAAG,CAACiB,EAAE,CAAC;IAC1C,CAAC;IAEDgB,aAAa,EAAGhB,EAAU,IAAK;MAC7B,IAAI/B,OAAO,IAAIS,kBAAkB,CAACU,OAAO,CAAC6B,GAAG,CAACjB,EAAE,CAAC,EAAE;QACjD9B,OAAO,CAACC,IAAI,CACV,mCAAmC6B,EAAE,cAAc,GACjD,uFACJ,CAAC;MACH;MACAtB,kBAAkB,CAACU,OAAO,CAAC8B,GAAG,CAAClB,EAAE,CAAC;IACpC,CAAC;IAEDmB,eAAe,EAAGnB,EAAU,IAAK;MAC/BtB,kBAAkB,CAACU,OAAO,CAAC0B,MAAM,CAACd,EAAE,CAAC;IACvC;EACF,CAAC,CAAC,CAACZ,OAAO;;EAEV;EACA,MAAMgC,aAAa,GAAG1I,OAAO,CAAC,MAAM,CAAC2I,MAAM,CAACC,OAAO,EAAEnG,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;;EAErE;EACA;EACA,MAAMoG,mBAAmB,GAAG7I,OAAO,CAAC,MAAM;IACxC,IAAI,CAACqD,aAAa,EAAE,OAAOuC,SAAS;IAEpC,MAAMkD,YAAyB,GAAGrI,MAAM,CAACoB,IAAI;IAC7C,MAAMkH,gBAA6B,GAAGtI,MAAM,CAACsB,KAAK;IAClD,MAAMiH,kBAA+B,GAAGvI,MAAM,CAACsB,KAAK;IAEpD,OAAO;MACLR,OAAO,EAAE8B,aAAa,CAAC9B,OAAO;MAC9BC,QAAQ,EAAE6B,aAAa,CAAC7B,QAAQ,IAAI,cAAc;MAClDC,MAAM,EAAE4B,aAAa,CAAC5B,MAAM,IAAI,EAAE;MAClCC,kBAAkB,EAAE2B,aAAa,CAAC3B,kBAAkB,IAAI,CAAC;MACzDC,OAAO,EAAE0B,aAAa,CAAC1B,OAAO,IAAI,EAAE;MACpCC,eAAe,EACbrB,UAAU,CAAC8C,aAAa,CAACzB,eAAe,CAAC,IAAIkH,YAAY;MAC3DhH,SAAS,EAAEvB,UAAU,CAAC8C,aAAa,CAACvB,SAAS,CAAC,IAAIiH,gBAAgB;MAClE/G,WAAW,EAAEqB,aAAa,CAACrB,WAAW,IAAI,CAAC;MAC3CC,WAAW,EACT1B,UAAU,CAAC8C,aAAa,CAACpB,WAAW,CAAC,IAAI+G,kBAAkB;MAC7D9G,gBAAgB,EAAEmB,aAAa,CAACnB,gBAAgB,IAAI,IAAI;MACxDC,iBAAiB,EAAEkB,aAAa,CAAClB,iBAAiB,IAAI,IAAI;MAC1DC,iBAAiB,EAAEiB,aAAa,CAACjB,iBAAiB,IAAI,GAAG;MACzDC,kBAAkB,EAAEgB,aAAa,CAAChB,kBAAkB,IAAI,KAAK;MAC7DC,YAAY,EAAEe,aAAa,CAACf,YAAY,IAAI,CAAC;MAC7CC,gBAAgB,EAAEc,aAAa,CAACd,gBAAgB,IAAI;IACtD,CAAC;EACH,CAAC,EAAE,CAACc,aAAa,CAAC,CAAC;;EAEnB;EACA,MAAM4F,iBAAiB,GAAGjJ,OAAO,CAC/B,MACEI,QAAQ,CAAEqG,MAA8B,IAAK;IAC3CZ,SAAS,CAACa,OAAO,GAAGD,MAAM;IAC1BsB,YAAY,CAACC,MAAM,GAAGvB,MAAM;EAC9B,CAAC,CAAC,EACJ,CAACsB,YAAY,CACf,CAAC;;EAED;EACA,MAAMmB,iBAAiB,GAAGlJ,OAAO,CAC/B,OAAO;IACL2D,OAAO,EAAEvD,QAAQ,CAACuD,OAAO,CAAC;IAC1BC,WAAW,EAAExD,QAAQ,CAACwD,WAAW,CAAC;IAClCC,UAAU,EAAEzD,QAAQ,CAAC2G,cAAc,CAAC;IACpCjD,cAAc,EAAE1D,QAAQ,CAAC0D,cAAc,CAAC;IACxCC,sBAAsB,EAAE3D,QAAQ,CAAC2D,sBAAsB,CAAC;IACxDC,aAAa,EAAE5D,QAAQ,CAACgH,iBAAiB,CAAC;IAC1CnD,iBAAiB,EAAE7D,QAAQ,CAACmH,qBAAqB,CAAC;IAClDrD,YAAY,EAAE9D,QAAQ,CAACsH,gBAAgB,CAAC;IACxCvD,eAAe,EAAE/D,QAAQ,CAACwH,mBAAmB,CAAC;IAC9CxD,cAAc,EAAEhE,QAAQ,CAAC0H,kBAAkB,CAAC;IAC5CzD,eAAe,EAAEjE,QAAQ,CAACiE,eAAe,CAAC;IAC1CC,cAAc,EAAElE,QAAQ,CAACkE,cAAc,CAAC;IACxCC,aAAa,EAAEnE,QAAQ,CAACmE,aAAa,CAAC;IACtCC,oBAAoB,EAAEpE,QAAQ,CAACoE,oBAAoB,CAAC;IACpDC,wBAAwB,EAAErE,QAAQ,CAACqE,wBAAwB,CAAC;IAC5DC,mBAAmB,EAAEtE,QAAQ,CAACsE,mBAAmB,CAAC;IAClDC,SAAS,EAAEvE,QAAQ,CAACuE,SAAS,CAAC;IAC9BC,OAAO,EAAExE,QAAQ,CAACwE,OAAO;EAC3B,CAAC,CAAC,EACF,CACEjB,OAAO,EACPC,WAAW,EACXmD,cAAc,EACdjD,cAAc,EACdC,sBAAsB,EACtBqD,iBAAiB,EACjBG,qBAAqB,EACrBG,gBAAgB,EAChBE,mBAAmB,EACnBE,kBAAkB,EAClBzD,eAAe,EACfC,cAAc,EACdC,aAAa,EACbC,oBAAoB,EACpBC,wBAAwB,EACxBC,mBAAmB,EACnBC,SAAS,EACTC,OAAO,CAEX,CAAC;EAED,oBACE/D,KAAA,CAACR,eAAe,CAAC8I,QAAQ;IAACC,KAAK,EAAErB,YAAa;IAAArF,QAAA,gBAC5C/B,IAAA,CAACK,qBAAqB;MACpByB,KAAK,EAAEiG,aAAc;MACrBW,SAAS,EAAEJ,iBAAkB;MAC7BtG,QAAQ,EAAEA,QAAQ,IAAI,QAAS;MAC/BC,aAAa,EAAEA,aAAa,IAAI3B,YAAa;MAC7C4B,MAAM,EAAEA,MAAM,IAAI5B,YAAa;MAC/B6B,iBAAiB,EAAEA,iBAAkB;MACrCC,WAAW,EAAEA,WAAY;MACzBC,aAAa,EAAEA,aAAc;MAC7BC,aAAa,EAAEA,aAAc;MAC7BC,YAAY,EAAEA,YAAa;MAC3BE,OAAO,EAAEA,OAAQ;MACjBD,QAAQ,EAAEA,QAAS;MACnBE,aAAa,EAAEwF,mBAAmB,IAAIvH,uBAAwB;MAC9DgC,UAAU,EACR,OAAOA,UAAU,KAAK,QAAQ,GAC1B;QACEgG,GAAG,EAAEhG,UAAU;QACfiG,KAAK,EAAEjG,UAAU;QACjBkG,MAAM,EAAElG,UAAU;QAClBmG,IAAI,EAAEnG;MACR,CAAC,GACDA,UAAU,IAAI;QAAEgG,GAAG,EAAE,CAAC;QAAEC,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE,CAAC;QAAEC,IAAI,EAAE;MAAE,CAC1D;MACDhG,YAAY,EAAEA,YAAa;MAC3BF,YAAY,EAAEA,YAAa;MAC3BC,cAAc,EAAEA,cAAe;MAC/BE,OAAO,EAAEA,OAAO,IAAI,CAAE;MACtB/B,OAAO,EAAEA,OAAO,IAAI,EAAG;MACvBkD,gBAAgB,EAAEA,gBAAiB;MACnCC,iBAAiB,EAAEA,iBAAkB;MACrCC,gBAAgB,EAAEA,gBAAiB;MACnCC,kBAAkB,EAAEA,kBAAmB;MACvCI,cAAc,EAAEM,gBAAgB,IAAI,EAAG;MACvC/B,OAAO,EAAEuF,iBAAiB,CAACvF,OAAQ;MACnCC,WAAW,EAAEsF,iBAAiB,CAACtF,WAAY;MAC3CC,UAAU,EAAEqF,iBAAiB,CAACrF,UAAW;MACzCC,cAAc,EAAEoF,iBAAiB,CAACpF,cAAe;MACjDC,sBAAsB,EAAEmF,iBAAiB,CAACnF,sBAAuB;MACjEC,aAAa,EAAEkF,iBAAiB,CAAClF,aAAc;MAC/CC,iBAAiB,EAAEiF,iBAAiB,CAACjF,iBAAkB;MACvDC,YAAY,EAAEgF,iBAAiB,CAAChF,YAAa;MAC7CC,eAAe,EAAE+E,iBAAiB,CAAC/E,eAAgB;MACnDC,cAAc,EAAE8E,iBAAiB,CAAC9E,cAAe;MACjDC,eAAe,EAAE6E,iBAAiB,CAAC7E,eAAgB;MACnDC,cAAc,EAAE4E,iBAAiB,CAAC5E,cAAe;MACjDC,aAAa,EAAE2E,iBAAiB,CAAC3E,aAAc;MAC/CC,oBAAoB,EAAE0E,iBAAiB,CAAC1E,oBAAqB;MAC7DC,wBAAwB,EAAEyE,iBAAiB,CAACzE,wBAAyB;MACrEC,mBAAmB,EAAEwE,iBAAiB,CAACxE,mBAAoB;MAC3DC,SAAS,EAAEuE,iBAAiB,CAACvE,SAAU;MACvCC,OAAO,EAAEsE,iBAAiB,CAACtE,OAAQ;MAAA,GAC/BS;IAAI,CACT,CAAC,EAEDa,OAAO,IAAIxD,QAAQ;EAAA,CACI,CAAC;AAE/B,CACF,CAAC;AAEDF,aAAa,CAACkH,WAAW,GAAG,eAAe;;AAE3C;AACA;AACA,MAAMC,gBAAgB,GAAGA,CACvBC,SAAwB,EACxBC,SAAwB,KACZ;EACZ;EACA,IACED,SAAS,CAACjH,QAAQ,KAAKkH,SAAS,CAAClH,QAAQ,IACzCiH,SAAS,CAAC9G,iBAAiB,KAAK+G,SAAS,CAAC/G,iBAAiB,IAC3D8G,SAAS,CAAC/E,gBAAgB,KAAKgF,SAAS,CAAChF,gBAAgB,IACzD+E,SAAS,CAAC9E,iBAAiB,KAAK+E,SAAS,CAAC/E,iBAAiB,IAC3D8E,SAAS,CAAC7E,gBAAgB,KAAK8E,SAAS,CAAC9E,gBAAgB,IACzD6E,SAAS,CAAC5E,kBAAkB,EAAEC,CAAC,KAAK4E,SAAS,CAAC7E,kBAAkB,EAAEC,CAAC,IACnE2E,SAAS,CAAC5E,kBAAkB,EAAEE,CAAC,KAAK2E,SAAS,CAAC7E,kBAAkB,EAAEE,CAAC,IACnE0E,SAAS,CAAC7G,WAAW,KAAK8G,SAAS,CAAC9G,WAAW,IAC/C6G,SAAS,CAAC5G,aAAa,KAAK6G,SAAS,CAAC7G,aAAa,IACnD4G,SAAS,CAAC3G,aAAa,KAAK4G,SAAS,CAAC5G,aAAa,IACnD2G,SAAS,CAAC1G,YAAY,KAAK2G,SAAS,CAAC3G,YAAY,IACjD0G,SAAS,CAACzG,QAAQ,KAAK0G,SAAS,CAAC1G,QAAQ,IACzCyG,SAAS,CAACxG,OAAO,KAAKyG,SAAS,CAACzG,OAAO,IACvCwG,SAAS,CAACrG,YAAY,KAAKsG,SAAS,CAACtG,YAAY,IACjDqG,SAAS,CAACpG,cAAc,KAAKqG,SAAS,CAACrG,cAAc,IACrDoG,SAAS,CAACnG,YAAY,KAAKoG,SAAS,CAACpG,YAAY,IACjDmG,SAAS,CAAClG,OAAO,KAAKmG,SAAS,CAACnG,OAAO,IACvCkG,SAAS,CAACjI,OAAO,KAAKkI,SAAS,CAAClI,OAAO,IACvCiI,SAAS,CAACzE,KAAK,KAAK0E,SAAS,CAAC1E,KAAK,IACnCyE,SAAS,CAACxE,cAAc,KAAKyE,SAAS,CAACzE,cAAc,EACrD;IACA,OAAO,KAAK;EACd;;EAEA;EACA,MAAM0E,WAAW,GAAGF,SAAS,CAACtG,UAAU;EACxC,MAAMyG,WAAW,GAAGF,SAAS,CAACvG,UAAU;EACxC,IAAI,OAAOwG,WAAW,KAAK,OAAOC,WAAW,EAAE;IAC7C,OAAO,KAAK;EACd;EACA,IAAI,OAAOD,WAAW,KAAK,QAAQ,EAAE;IACnC,IAAIA,WAAW,KAAKC,WAAW,EAAE,OAAO,KAAK;EAC/C,CAAC,MAAM,IAAID,WAAW,IAAIC,WAAW,IAAI,OAAOA,WAAW,KAAK,QAAQ,EAAE;IACxE,IACED,WAAW,CAACR,GAAG,KAAKS,WAAW,CAACT,GAAG,IACnCQ,WAAW,CAACP,KAAK,KAAKQ,WAAW,CAACR,KAAK,IACvCO,WAAW,CAACN,MAAM,KAAKO,WAAW,CAACP,MAAM,IACzCM,WAAW,CAACL,IAAI,KAAKM,WAAW,CAACN,IAAI,EACrC;MACA,OAAO,KAAK;IACd;EACF,CAAC,MAAM,IAAIK,WAAW,KAAKC,WAAW,EAAE;IACtC,OAAO,KAAK;EACd;;EAEA;EACA,MAAMC,UAAU,GAAGJ,SAAS,CAAChH,aAAa;EAC1C,MAAMqH,UAAU,GAAGJ,SAAS,CAACjH,aAAa;EAC1C,IAAIoH,UAAU,IAAIC,UAAU,EAAE;IAC5B,IACED,UAAU,CAAC9I,QAAQ,KAAK+I,UAAU,CAAC/I,QAAQ,IAC3C8I,UAAU,CAAC7I,SAAS,KAAK8I,UAAU,CAAC9I,SAAS,IAC7C6I,UAAU,CAAC5I,aAAa,KAAK6I,UAAU,CAAC7I,aAAa,IACrD4I,UAAU,CAAC3I,cAAc,KAAK4I,UAAU,CAAC5I,cAAc,EACvD;MACA,OAAO,KAAK;IACd;EACF,CAAC,MAAM,IAAI2I,UAAU,KAAKC,UAAU,EAAE;IACpC,OAAO,KAAK;EACd;;EAEA;EACA,MAAMC,WAAW,GAAGN,SAAS,CAACvG,aAAa;EAC3C,MAAM8G,WAAW,GAAGN,SAAS,CAACxG,aAAa;EAC3C,IAAI6G,WAAW,IAAIC,WAAW,EAAE;IAC9B,IACED,WAAW,CAAC3I,OAAO,KAAK4I,WAAW,CAAC5I,OAAO,IAC3C2I,WAAW,CAAC1I,QAAQ,KAAK2I,WAAW,CAAC3I,QAAQ,IAC7C0I,WAAW,CAACzI,MAAM,KAAK0I,WAAW,CAAC1I,MAAM,IACzCyI,WAAW,CAACxI,kBAAkB,KAAKyI,WAAW,CAACzI,kBAAkB,IACjEwI,WAAW,CAACvI,OAAO,KAAKwI,WAAW,CAACxI,OAAO,IAC3CuI,WAAW,CAAChI,gBAAgB,KAAKiI,WAAW,CAACjI,gBAAgB,IAC7DgI,WAAW,CAAC/H,iBAAiB,KAAKgI,WAAW,CAAChI,iBAAiB,IAC/D+H,WAAW,CAAC9H,iBAAiB,KAAK+H,WAAW,CAAC/H,iBAAiB,IAC/D8H,WAAW,CAAClI,WAAW,KAAKmI,WAAW,CAACnI,WAAW,IACnDkI,WAAW,CAAC7H,kBAAkB,KAAK8H,WAAW,CAAC9H,kBAAkB,IACjE6H,WAAW,CAAC5H,YAAY,KAAK6H,WAAW,CAAC7H,YAAY,IACrD4H,WAAW,CAAC3H,gBAAgB,KAAK4H,WAAW,CAAC5H,gBAAgB,IAC7D,CAAC/B,cAAc,CACb0J,WAAW,CAACtI,eAAe,EAC3BuI,WAAW,CAACvI,eACd,CAAC,IACD,CAACpB,cAAc,CAAC0J,WAAW,CAACpI,SAAS,EAAEqI,WAAW,CAACrI,SAAS,CAAC,IAC7D,CAACtB,cAAc,CAAC0J,WAAW,CAACjI,WAAW,EAAEkI,WAAW,CAAClI,WAAW,CAAC,EACjE;MACA,OAAO,KAAK;IACd;EACF,CAAC,MAAM,IAAIiI,WAAW,KAAKC,WAAW,EAAE;IACtC,OAAO,KAAK;EACd;;EAEA;EACA,IAAIP,SAAS,CAACnH,KAAK,KAAKoH,SAAS,CAACpH,KAAK,EAAE;IACvC,OAAO,KAAK;EACd;;EAEA;EACA;EACA;EACA,IAAImH,SAAS,CAAClH,QAAQ,KAAKmH,SAAS,CAACnH,QAAQ,EAAE;IAC7C,OAAO,KAAK;EACd;;EAEA;EACA;;EAEA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAQA;AACA,MAAM0H,gBAAgB,gBAAGnK,IAAI,CAACuC,aAAa,EAAEmH,gBAAgB,CAAC;;AAE9D;AACA,MAAMU,QAAQ,GAAGD,gBAAgD;AACjEC,QAAQ,CAACX,WAAW,GAAG,UAAU;AAEjC,MAAMf,MAAM,GAAGzI,UAAU,CAACoK,MAAM,CAAC;EAC/B1B,OAAO,EAAE;IACP2B,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,SAASF,QAAQ,EAAEV,gBAAgB;AACnC,eAAeU,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// src/components/NitroPolygon.tsx
|
|
4
|
+
import { memo, useCallback, useEffect, useRef } from 'react';
|
|
5
|
+
import { useNitroPolygon } from "../hooks/useNitroPolygon.js";
|
|
6
|
+
import { parseColor, areColorsEqual, Colors } from "../utils/colors.js";
|
|
7
|
+
import { validateCoordinates } from "../utils/validation.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Props for the NitroPolygon component
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// ID generator — monotonic counter, unique within a JS runtime session
|
|
14
|
+
let polygonIdCounter = 0;
|
|
15
|
+
const generatePolygonId = () => `polygon_${++polygonIdCounter}`;
|
|
16
|
+
|
|
17
|
+
// Default colors
|
|
18
|
+
const defaultFillColor = {
|
|
19
|
+
r: 0,
|
|
20
|
+
g: 0,
|
|
21
|
+
b: 0,
|
|
22
|
+
a: 77
|
|
23
|
+
}; // ~30% opacity black
|
|
24
|
+
const defaultStrokeColor = Colors.black;
|
|
25
|
+
|
|
26
|
+
// ============ Custom Memo Comparison ============
|
|
27
|
+
const arePropsEqual = (prev, next) => {
|
|
28
|
+
// Compare primitives
|
|
29
|
+
if (prev.id !== next.id || prev.strokeWidth !== next.strokeWidth || prev.zIndex !== next.zIndex || prev.tappable !== next.tappable || prev.accessibilityLabel !== next.accessibilityLabel) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (!areColorsEqual(prev.fillColor, next.fillColor)) return false;
|
|
33
|
+
if (!areColorsEqual(prev.strokeColor, next.strokeColor)) return false;
|
|
34
|
+
|
|
35
|
+
// Compare coordinates array (deep)
|
|
36
|
+
const prevCoords = prev.coordinates;
|
|
37
|
+
const nextCoords = next.coordinates;
|
|
38
|
+
if (prevCoords.length !== nextCoords.length) return false;
|
|
39
|
+
for (let i = 0; i < prevCoords.length; i++) {
|
|
40
|
+
if (prevCoords[i].latitude !== nextCoords[i].latitude || prevCoords[i].longitude !== nextCoords[i].longitude) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Compare holes
|
|
46
|
+
const prevHoles = prev.holes ?? [];
|
|
47
|
+
const nextHoles = next.holes ?? [];
|
|
48
|
+
if (prevHoles.length !== nextHoles.length) return false;
|
|
49
|
+
for (let i = 0; i < prevHoles.length; i++) {
|
|
50
|
+
const ph = prevHoles[i];
|
|
51
|
+
const nh = nextHoles[i];
|
|
52
|
+
if (ph.length !== nh.length) return false;
|
|
53
|
+
for (let j = 0; j < ph.length; j++) {
|
|
54
|
+
if (ph[j].latitude !== nh[j].latitude || ph[j].longitude !== nh[j].longitude) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* NitroPolygon - Draw a closed polygon shape on the map
|
|
64
|
+
*
|
|
65
|
+
* @example Basic polygon
|
|
66
|
+
* ```tsx
|
|
67
|
+
* <NitroPolygon
|
|
68
|
+
* coordinates={[
|
|
69
|
+
* { latitude: 41.29, longitude: 69.24 },
|
|
70
|
+
* { latitude: 41.31, longitude: 69.28 },
|
|
71
|
+
* { latitude: 41.33, longitude: 69.26 },
|
|
72
|
+
* ]}
|
|
73
|
+
* fillColor="#4285F440"
|
|
74
|
+
* strokeColor="#4285F4"
|
|
75
|
+
* strokeWidth={2}
|
|
76
|
+
* />
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @example Polygon with a hole
|
|
80
|
+
* ```tsx
|
|
81
|
+
* <NitroPolygon
|
|
82
|
+
* coordinates={outerBoundary}
|
|
83
|
+
* holes={[innerHole]}
|
|
84
|
+
* fillColor="#FF000040"
|
|
85
|
+
* strokeColor="#FF0000"
|
|
86
|
+
* />
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export const NitroPolygon = /*#__PURE__*/memo(function NitroPolygon({
|
|
90
|
+
id,
|
|
91
|
+
coordinates,
|
|
92
|
+
holes = [],
|
|
93
|
+
fillColor,
|
|
94
|
+
strokeColor,
|
|
95
|
+
strokeWidth = 1,
|
|
96
|
+
zIndex = 0,
|
|
97
|
+
tappable = false,
|
|
98
|
+
accessibilityLabel
|
|
99
|
+
}) {
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
if (__DEV__) {
|
|
102
|
+
if (coordinates.length < 3) {
|
|
103
|
+
console.warn('NitroPolygon: at least 3 coordinates are required to render a visible polygon. ' + `Received ${coordinates.length}.`);
|
|
104
|
+
}
|
|
105
|
+
validateCoordinates(coordinates, 'NitroPolygon');
|
|
106
|
+
holes.forEach((hole, i) => validateCoordinates(hole, `NitroPolygon hole[${i}]`));
|
|
107
|
+
}
|
|
108
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
109
|
+
}, []);
|
|
110
|
+
|
|
111
|
+
// Generate stable ID
|
|
112
|
+
const polygonId = useRef(id || generatePolygonId()).current;
|
|
113
|
+
|
|
114
|
+
// Build polygon data
|
|
115
|
+
const buildPolygonData = useCallback(() => ({
|
|
116
|
+
id: polygonId,
|
|
117
|
+
coordinates,
|
|
118
|
+
holes: holes.map(ring => ({
|
|
119
|
+
coordinates: ring
|
|
120
|
+
})),
|
|
121
|
+
fillColor: parseColor(fillColor) ?? defaultFillColor,
|
|
122
|
+
strokeColor: parseColor(strokeColor) ?? defaultStrokeColor,
|
|
123
|
+
strokeWidth,
|
|
124
|
+
zIndex,
|
|
125
|
+
tappable,
|
|
126
|
+
accessibilityLabel
|
|
127
|
+
}), [polygonId, coordinates, holes, fillColor, strokeColor, strokeWidth, zIndex, tappable, accessibilityLabel]);
|
|
128
|
+
|
|
129
|
+
// Use polygon lifecycle hook
|
|
130
|
+
useNitroPolygon(buildPolygonData);
|
|
131
|
+
|
|
132
|
+
// Render nothing — polygon is rendered natively
|
|
133
|
+
return null;
|
|
134
|
+
}, arePropsEqual);
|
|
135
|
+
export { arePropsEqual as arePolygonPropsEqual };
|
|
136
|
+
export default NitroPolygon;
|
|
137
|
+
//# sourceMappingURL=NitroPolygon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useEffect","useRef","useNitroPolygon","parseColor","areColorsEqual","Colors","validateCoordinates","polygonIdCounter","generatePolygonId","defaultFillColor","r","g","b","a","defaultStrokeColor","black","arePropsEqual","prev","next","id","strokeWidth","zIndex","tappable","accessibilityLabel","fillColor","strokeColor","prevCoords","coordinates","nextCoords","length","i","latitude","longitude","prevHoles","holes","nextHoles","ph","nh","j","NitroPolygon","__DEV__","console","warn","forEach","hole","polygonId","current","buildPolygonData","map","ring","arePolygonPropsEqual"],"sourceRoot":"../../../src","sources":["components/NitroPolygon.tsx"],"mappings":"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","ignoreList":[]}
|