@maydon_tech/react-native-nitro-maps 0.1.0
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 +20 -0
- package/NitroMap.podspec +42 -0
- package/README.md +172 -0
- package/android/CMakeLists.txt +27 -0
- package/android/build.gradle +141 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/ClusterIconGenerator.kt +108 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/ColorUtils.kt +63 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMap.kt +408 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMapConfig.kt +68 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconCache.kt +176 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconFactory.kt +252 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/NitroMapPackage.kt +33 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +252 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/clustering/QuadTree.kt +195 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/providers/GoogleMapProvider.kt +912 -0
- package/android/src/main/java/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +70 -0
- package/cpp/ClusterEngine.hpp +411 -0
- package/cpp/KDBush.hpp +238 -0
- package/cpp/QuadTree.hpp +246 -0
- package/ios/Clustering/ClusterEngineWrapper.h +58 -0
- package/ios/Clustering/ClusterEngineWrapper.mm +142 -0
- package/ios/Clustering/ClusterIconRenderer.swift +80 -0
- package/ios/Clustering/NitroClusterEngine.swift +117 -0
- package/ios/Clustering/NitroClusterIconGenerator.swift +35 -0
- package/ios/MarkerRenderer/MarkerIconFactory.swift +322 -0
- package/ios/MarkerRenderer/PriceMarkerRenderer.swift +140 -0
- package/ios/NitroMap.swift +332 -0
- package/ios/NitroMapConfig/HybridNitroMapConfig.swift +33 -0
- package/ios/Providers/GoogleMapDelegate.swift +310 -0
- package/ios/Providers/GoogleMapProvider+Camera.swift +164 -0
- package/ios/Providers/GoogleMapProvider.swift +924 -0
- package/ios/Providers/MapProviderProtocol.swift +78 -0
- package/ios/Shared/ClusterConfig+Factory.swift +58 -0
- package/ios/Shared/ClusteringManager.swift +211 -0
- package/ios/Shared/MapStyleProvider.swift +135 -0
- package/ios/Shared/MarkerSelectionHandler.swift +116 -0
- package/ios/Utils/ColorValueExtension.swift +54 -0
- package/lib/module/components/ImageMarker.js +146 -0
- package/lib/module/components/ImageMarker.js.map +1 -0
- package/lib/module/components/NitroMap.js +320 -0
- package/lib/module/components/NitroMap.js.map +1 -0
- package/lib/module/components/PriceMarker.js +165 -0
- package/lib/module/components/PriceMarker.js.map +1 -0
- package/lib/module/context/NitroMapContext.js +15 -0
- package/lib/module/context/NitroMapContext.js.map +1 -0
- package/lib/module/hooks/useNitroMarker.js +104 -0
- package/lib/module/hooks/useNitroMarker.js.map +1 -0
- package/lib/module/index.js +21 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/modules/index.js +4 -0
- package/lib/module/modules/index.js.map +1 -0
- package/lib/module/modules/module.js +30 -0
- package/lib/module/modules/module.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/specs/NitroMap.nitro.js +4 -0
- package/lib/module/specs/NitroMap.nitro.js.map +1 -0
- package/lib/module/specs/NitroMapConfig.nitro.js +4 -0
- package/lib/module/specs/NitroMapConfig.nitro.js.map +1 -0
- package/lib/module/types/map.js +2 -0
- package/lib/module/types/map.js.map +1 -0
- package/lib/module/types/marker.js +4 -0
- package/lib/module/types/marker.js.map +1 -0
- package/lib/module/utils/colors.js +147 -0
- package/lib/module/utils/colors.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/ImageMarker.d.ts +70 -0
- package/lib/typescript/src/components/ImageMarker.d.ts.map +1 -0
- package/lib/typescript/src/components/NitroMap.d.ts +14 -0
- package/lib/typescript/src/components/NitroMap.d.ts.map +1 -0
- package/lib/typescript/src/components/PriceMarker.d.ts +88 -0
- package/lib/typescript/src/components/PriceMarker.d.ts.map +1 -0
- package/lib/typescript/src/context/NitroMapContext.d.ts +16 -0
- package/lib/typescript/src/context/NitroMapContext.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useNitroMarker.d.ts +78 -0
- package/lib/typescript/src/hooks/useNitroMarker.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +12 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/modules/index.d.ts +2 -0
- package/lib/typescript/src/modules/index.d.ts.map +1 -0
- package/lib/typescript/src/modules/module.d.ts +22 -0
- package/lib/typescript/src/modules/module.d.ts.map +1 -0
- package/lib/typescript/src/specs/NitroMap.nitro.d.ts +227 -0
- package/lib/typescript/src/specs/NitroMap.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/NitroMapConfig.nitro.d.ts +10 -0
- package/lib/typescript/src/specs/NitroMapConfig.nitro.d.ts.map +1 -0
- package/lib/typescript/src/types/map.d.ts +154 -0
- package/lib/typescript/src/types/map.d.ts.map +1 -0
- package/lib/typescript/src/types/marker.d.ts +248 -0
- package/lib/typescript/src/types/marker.d.ts.map +1 -0
- package/lib/typescript/src/utils/colors.d.ts +82 -0
- package/lib/typescript/src/utils/colors.d.ts.map +1 -0
- package/nitro.json +21 -0
- package/nitrogen/generated/android/c++/JCamera.hpp +74 -0
- package/nitrogen/generated/android/c++/JClusterAnimationStyle.hpp +68 -0
- package/nitrogen/generated/android/c++/JClusterConfig.hpp +121 -0
- package/nitrogen/generated/android/c++/JClusterPressEvent.hpp +86 -0
- package/nitrogen/generated/android/c++/JClusterStrategy.hpp +59 -0
- package/nitrogen/generated/android/c++/JColorValue.cpp +26 -0
- package/nitrogen/generated/android/c++/JColorValue.hpp +70 -0
- package/nitrogen/generated/android/c++/JCoordinate.hpp +61 -0
- package/nitrogen/generated/android/c++/JEdgePadding.hpp +69 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_ClusterPressEvent.hpp +81 -0
- package/nitrogen/generated/android/c++/JFunc_void_MapError.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_MapPressEvent.hpp +81 -0
- package/nitrogen/generated/android/c++/JFunc_void_MarkerDragEvent.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_MarkerPressEvent.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_RegionChangeEvent.hpp +79 -0
- package/nitrogen/generated/android/c++/JHybridNitroMapConfigSpec.cpp +59 -0
- package/nitrogen/generated/android/c++/JHybridNitroMapConfigSpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JHybridNitroMapSpec.cpp +593 -0
- package/nitrogen/generated/android/c++/JHybridNitroMapSpec.hpp +125 -0
- package/nitrogen/generated/android/c++/JImageMarkerConfig.hpp +86 -0
- package/nitrogen/generated/android/c++/JMapBoundaries.hpp +62 -0
- package/nitrogen/generated/android/c++/JMapError.hpp +61 -0
- package/nitrogen/generated/android/c++/JMapPressEvent.hpp +64 -0
- package/nitrogen/generated/android/c++/JMapProvider.hpp +62 -0
- package/nitrogen/generated/android/c++/JMapStyleElement.hpp +87 -0
- package/nitrogen/generated/android/c++/JMapStyler.hpp +78 -0
- package/nitrogen/generated/android/c++/JMapType.hpp +62 -0
- package/nitrogen/generated/android/c++/JMarkerAnimation.hpp +62 -0
- package/nitrogen/generated/android/c++/JMarkerColor.hpp +69 -0
- package/nitrogen/generated/android/c++/JMarkerConfig.hpp +77 -0
- package/nitrogen/generated/android/c++/JMarkerData.hpp +121 -0
- package/nitrogen/generated/android/c++/JMarkerDragEvent.hpp +63 -0
- package/nitrogen/generated/android/c++/JMarkerPressEvent.hpp +63 -0
- package/nitrogen/generated/android/c++/JMarkerStyle.hpp +62 -0
- package/nitrogen/generated/android/c++/JPoint.hpp +61 -0
- package/nitrogen/generated/android/c++/JPriceMarkerStyle.hpp +102 -0
- package/nitrogen/generated/android/c++/JRegion.hpp +69 -0
- package/nitrogen/generated/android/c++/JRegionChangeEvent.hpp +62 -0
- package/nitrogen/generated/android/c++/JVariant_String_MarkerColor.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_String_MarkerColor.hpp +70 -0
- package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.cpp +144 -0
- package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Camera.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterAnimationStyle.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterConfig.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterPressEvent.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterStrategy.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ColorValue.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Coordinate.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/EdgePadding.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_ClusterPressEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MapError.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MapPressEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MarkerDragEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MarkerPressEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_RegionChangeEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapConfigSpec.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapSpec.kt +342 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ImageMarkerConfig.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapBoundaries.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapError.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapPressEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapProvider.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapStyleElement.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapStyler.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapType.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerAnimation.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerColor.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerConfig.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerData.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerDragEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerPressEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerStyle.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Point.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PriceMarkerStyle.kt +68 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Region.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/RegionChangeEvent.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Variant_String_MarkerColor.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/nitromapOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/views/HybridNitroMapManager.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/views/HybridNitroMapStateUpdater.kt +23 -0
- package/nitrogen/generated/android/nitromap+autolinking.cmake +87 -0
- package/nitrogen/generated/android/nitromap+autolinking.gradle +27 -0
- package/nitrogen/generated/android/nitromapOnLoad.cpp +70 -0
- package/nitrogen/generated/android/nitromapOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/NitroMap+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.cpp +130 -0
- package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.hpp +793 -0
- package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Umbrella.hpp +132 -0
- package/nitrogen/generated/ios/NitroMapAutolinking.mm +41 -0
- package/nitrogen/generated/ios/NitroMapAutolinking.swift +40 -0
- package/nitrogen/generated/ios/c++/HybridNitroMapConfigSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroMapConfigSpecSwift.hpp +84 -0
- package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.hpp +410 -0
- package/nitrogen/generated/ios/c++/views/HybridNitroMapComponent.mm +206 -0
- package/nitrogen/generated/ios/swift/Camera.swift +80 -0
- package/nitrogen/generated/ios/swift/ClusterAnimationStyle.swift +52 -0
- package/nitrogen/generated/ios/swift/ClusterConfig.swift +268 -0
- package/nitrogen/generated/ios/swift/ClusterPressEvent.swift +70 -0
- package/nitrogen/generated/ios/swift/ClusterStrategy.swift +40 -0
- package/nitrogen/generated/ios/swift/ColorValue.swift +18 -0
- package/nitrogen/generated/ios/swift/Coordinate.swift +47 -0
- package/nitrogen/generated/ios/swift/EdgePadding.swift +69 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_Camera.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_ClusterPressEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_MapBoundaries.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_MapError.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_MapPressEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_MarkerDragEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_MarkerPressEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_RegionChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridNitroMapConfigSpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridNitroMapConfigSpec_cxx.swift +142 -0
- package/nitrogen/generated/ios/swift/HybridNitroMapSpec.swift +93 -0
- package/nitrogen/generated/ios/swift/HybridNitroMapSpec_cxx.swift +953 -0
- package/nitrogen/generated/ios/swift/ImageMarkerConfig.swift +166 -0
- package/nitrogen/generated/ios/swift/MapBoundaries.swift +47 -0
- package/nitrogen/generated/ios/swift/MapError.swift +47 -0
- package/nitrogen/generated/ios/swift/MapPressEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/MapProvider.swift +44 -0
- package/nitrogen/generated/ios/swift/MapStyleElement.swift +108 -0
- package/nitrogen/generated/ios/swift/MapStyler.swift +177 -0
- package/nitrogen/generated/ios/swift/MapType.swift +44 -0
- package/nitrogen/generated/ios/swift/MarkerAnimation.swift +44 -0
- package/nitrogen/generated/ios/swift/MarkerColor.swift +69 -0
- package/nitrogen/generated/ios/swift/MarkerConfig.swift +82 -0
- package/nitrogen/generated/ios/swift/MarkerData.swift +195 -0
- package/nitrogen/generated/ios/swift/MarkerDragEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/MarkerPressEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/MarkerStyle.swift +44 -0
- package/nitrogen/generated/ios/swift/Point.swift +47 -0
- package/nitrogen/generated/ios/swift/PriceMarkerStyle.swift +374 -0
- package/nitrogen/generated/ios/swift/Region.swift +69 -0
- package/nitrogen/generated/ios/swift/RegionChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Variant_String_MarkerColor.swift +18 -0
- package/nitrogen/generated/shared/c++/Camera.hpp +92 -0
- package/nitrogen/generated/shared/c++/ClusterAnimationStyle.hpp +88 -0
- package/nitrogen/generated/shared/c++/ClusterConfig.hpp +140 -0
- package/nitrogen/generated/shared/c++/ClusterPressEvent.hpp +86 -0
- package/nitrogen/generated/shared/c++/ClusterStrategy.hpp +76 -0
- package/nitrogen/generated/shared/c++/Coordinate.hpp +79 -0
- package/nitrogen/generated/shared/c++/EdgePadding.hpp +87 -0
- package/nitrogen/generated/shared/c++/HybridNitroMapConfigSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridNitroMapConfigSpec.hpp +65 -0
- package/nitrogen/generated/shared/c++/HybridNitroMapSpec.cpp +82 -0
- package/nitrogen/generated/shared/c++/HybridNitroMapSpec.hpp +173 -0
- package/nitrogen/generated/shared/c++/ImageMarkerConfig.hpp +103 -0
- package/nitrogen/generated/shared/c++/MapBoundaries.hpp +80 -0
- package/nitrogen/generated/shared/c++/MapError.hpp +79 -0
- package/nitrogen/generated/shared/c++/MapPressEvent.hpp +83 -0
- package/nitrogen/generated/shared/c++/MapProvider.hpp +80 -0
- package/nitrogen/generated/shared/c++/MapStyleElement.hpp +87 -0
- package/nitrogen/generated/shared/c++/MapStyler.hpp +96 -0
- package/nitrogen/generated/shared/c++/MapType.hpp +80 -0
- package/nitrogen/generated/shared/c++/MarkerAnimation.hpp +80 -0
- package/nitrogen/generated/shared/c++/MarkerColor.hpp +87 -0
- package/nitrogen/generated/shared/c++/MarkerConfig.hpp +91 -0
- package/nitrogen/generated/shared/c++/MarkerData.hpp +131 -0
- package/nitrogen/generated/shared/c++/MarkerDragEvent.hpp +81 -0
- package/nitrogen/generated/shared/c++/MarkerPressEvent.hpp +81 -0
- package/nitrogen/generated/shared/c++/MarkerStyle.hpp +80 -0
- package/nitrogen/generated/shared/c++/Point.hpp +79 -0
- package/nitrogen/generated/shared/c++/PriceMarkerStyle.hpp +119 -0
- package/nitrogen/generated/shared/c++/Region.hpp +87 -0
- package/nitrogen/generated/shared/c++/RegionChangeEvent.hpp +80 -0
- package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.cpp +351 -0
- package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.hpp +141 -0
- package/nitrogen/generated/shared/json/NitroMapConfig.json +32 -0
- package/package.json +176 -0
- package/react-native.config.js +16 -0
- package/src/components/ImageMarker.tsx +254 -0
- package/src/components/NitroMap.tsx +433 -0
- package/src/components/PriceMarker.tsx +311 -0
- package/src/context/NitroMapContext.tsx +33 -0
- package/src/hooks/useNitroMarker.ts +198 -0
- package/src/index.tsx +62 -0
- package/src/modules/index.ts +6 -0
- package/src/modules/module.ts +45 -0
- package/src/specs/NitroMap.nitro.ts +292 -0
- package/src/specs/NitroMapConfig.nitro.ts +8 -0
- package/src/types/map.ts +166 -0
- package/src/types/marker.ts +267 -0
- package/src/utils/colors.ts +159 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// src/components/NitroMapContext.tsx
|
|
4
|
+
import { createContext } from 'react';
|
|
5
|
+
|
|
6
|
+
// Marker event handlers
|
|
7
|
+
|
|
8
|
+
// Context value type
|
|
9
|
+
|
|
10
|
+
// Create context with null default
|
|
11
|
+
export const NitroMapContext = /*#__PURE__*/createContext(null);
|
|
12
|
+
|
|
13
|
+
// Provider display name for debugging
|
|
14
|
+
NitroMapContext.displayName = 'NitroMapContext';
|
|
15
|
+
//# sourceMappingURL=NitroMapContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","NitroMapContext","displayName"],"sourceRoot":"../../../src","sources":["context/NitroMapContext.tsx"],"mappings":";;AAAA;AACA,SAASA,aAAa,QAAQ,OAAO;;AAIrC;;AAQA;;AAeA;AACA,OAAO,MAAMC,eAAe,gBAAGD,aAAa,CAA8B,IAAI,CAAC;;AAE/E;AACAC,eAAe,CAACC,WAAW,GAAG,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// src/hooks/useNitroMarker.ts
|
|
4
|
+
import { useContext, useEffect, useRef, useCallback } from 'react';
|
|
5
|
+
import { NitroMapContext } from "../context/NitroMapContext.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Base marker data structure for internal use
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Props shared by all marker components
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
// ID generator
|
|
16
|
+
let markerIdCounter = 0;
|
|
17
|
+
const generateMarkerId = prefix => `${prefix}_${++markerIdCounter}_${Date.now()}`;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Hook options for useNitroMarker
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Shared hook for all marker components
|
|
25
|
+
* Handles ID generation, context registration, and marker lifecycle
|
|
26
|
+
*/
|
|
27
|
+
export function useNitroMarker({
|
|
28
|
+
idPrefix,
|
|
29
|
+
providedId,
|
|
30
|
+
handlers,
|
|
31
|
+
buildMarkerData
|
|
32
|
+
}) {
|
|
33
|
+
// Generate stable ID
|
|
34
|
+
const markerId = useRef(providedId || generateMarkerId(idPrefix)).current;
|
|
35
|
+
|
|
36
|
+
// Get map context
|
|
37
|
+
const mapContext = useContext(NitroMapContext);
|
|
38
|
+
|
|
39
|
+
// Track if marker has been added
|
|
40
|
+
const isAddedRef = useRef(false);
|
|
41
|
+
|
|
42
|
+
// ============ Register Event Handlers ============
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (!mapContext) {
|
|
45
|
+
console.warn(`${idPrefix} must be used inside NitroMap`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Register handlers
|
|
50
|
+
mapContext.registerMarkerHandler(markerId, handlers);
|
|
51
|
+
|
|
52
|
+
// Cleanup on unmount
|
|
53
|
+
return () => {
|
|
54
|
+
mapContext.unregisterMarkerHandler(markerId);
|
|
55
|
+
};
|
|
56
|
+
// We intentionally depend on individual handler properties instead of the handlers object
|
|
57
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
58
|
+
}, [markerId, mapContext, handlers.onPress, handlers.onDragStart, handlers.onDrag, handlers.onDragEnd, idPrefix]);
|
|
59
|
+
|
|
60
|
+
// ============ Add Marker on Mount, Remove on Unmount ============
|
|
61
|
+
// NOTE: mapContext is a ref object, so we must track mapContext.mapRef separately
|
|
62
|
+
const mapRef = mapContext?.mapRef;
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (!mapRef) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Add marker on mount
|
|
69
|
+
mapRef.addMarker(buildMarkerData(markerId));
|
|
70
|
+
isAddedRef.current = true;
|
|
71
|
+
|
|
72
|
+
// Remove marker only on unmount
|
|
73
|
+
return () => {
|
|
74
|
+
mapRef?.removeMarker(markerId);
|
|
75
|
+
isAddedRef.current = false;
|
|
76
|
+
};
|
|
77
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
78
|
+
}, [mapRef, markerId]); // mapRef is now properly tracked
|
|
79
|
+
|
|
80
|
+
// ============ Update Marker when props change ============
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
// Skip if not yet added or no map ref
|
|
83
|
+
if (!isAddedRef.current || !mapContext?.mapRef) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Update marker with new data
|
|
88
|
+
mapContext.mapRef.updateMarker(buildMarkerData(markerId));
|
|
89
|
+
}, [mapContext, buildMarkerData, markerId]);
|
|
90
|
+
return markerId;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Create stable handlers object that won't cause unnecessary re-renders
|
|
95
|
+
*/
|
|
96
|
+
export function useMarkerHandlers(onPress, onDragStart, onDrag, onDragEnd) {
|
|
97
|
+
return useCallback(() => ({
|
|
98
|
+
onPress,
|
|
99
|
+
onDragStart,
|
|
100
|
+
onDrag,
|
|
101
|
+
onDragEnd
|
|
102
|
+
}), [onPress, onDragStart, onDrag, onDragEnd])();
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=useNitroMarker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useContext","useEffect","useRef","useCallback","NitroMapContext","markerIdCounter","generateMarkerId","prefix","Date","now","useNitroMarker","idPrefix","providedId","handlers","buildMarkerData","markerId","current","mapContext","isAddedRef","console","warn","registerMarkerHandler","unregisterMarkerHandler","onPress","onDragStart","onDrag","onDragEnd","mapRef","addMarker","removeMarker","updateMarker","useMarkerHandlers"],"sourceRoot":"../../../src","sources":["hooks/useNitroMarker.ts"],"mappings":";;AAAA;AACA,SAASA,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AAClE,SACEC,eAAe,QAEV,+BAA4B;;AAInC;AACA;AACA;;AAgBA;AACA;AACA;;AAgDA;AACA,IAAIC,eAAe,GAAG,CAAC;AACvB,MAAMC,gBAAgB,GAAIC,MAAc,IACtC,GAAGA,MAAM,IAAI,EAAEF,eAAe,IAAIG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;;AAEhD;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAC;EAC7BC,QAAQ;EACRC,UAAU;EACVC,QAAQ;EACRC;AACqB,CAAC,EAAU;EAChC;EACA,MAAMC,QAAQ,GAAGb,MAAM,CAACU,UAAU,IAAIN,gBAAgB,CAACK,QAAQ,CAAC,CAAC,CAACK,OAAO;;EAEzE;EACA,MAAMC,UAAU,GAAGjB,UAAU,CAACI,eAAe,CAAC;;EAE9C;EACA,MAAMc,UAAU,GAAGhB,MAAM,CAAC,KAAK,CAAC;;EAEhC;EACAD,SAAS,CAAC,MAAM;IACd,IAAI,CAACgB,UAAU,EAAE;MACfE,OAAO,CAACC,IAAI,CAAC,GAAGT,QAAQ,+BAA+B,CAAC;MACxD;IACF;;IAEA;IACAM,UAAU,CAACI,qBAAqB,CAACN,QAAQ,EAAEF,QAAQ,CAAC;;IAEpD;IACA,OAAO,MAAM;MACXI,UAAU,CAACK,uBAAuB,CAACP,QAAQ,CAAC;IAC9C,CAAC;IACD;IACA;EACF,CAAC,EAAE,CACDA,QAAQ,EACRE,UAAU,EACVJ,QAAQ,CAACU,OAAO,EAChBV,QAAQ,CAACW,WAAW,EACpBX,QAAQ,CAACY,MAAM,EACfZ,QAAQ,CAACa,SAAS,EAClBf,QAAQ,CACT,CAAC;;EAEF;EACA;EACA,MAAMgB,MAAM,GAAGV,UAAU,EAAEU,MAAM;EAEjC1B,SAAS,CAAC,MAAM;IACd,IAAI,CAAC0B,MAAM,EAAE;MACX;IACF;;IAEA;IACAA,MAAM,CAACC,SAAS,CAACd,eAAe,CAACC,QAAQ,CAAC,CAAC;IAC3CG,UAAU,CAACF,OAAO,GAAG,IAAI;;IAEzB;IACA,OAAO,MAAM;MACXW,MAAM,EAAEE,YAAY,CAACd,QAAQ,CAAC;MAC9BG,UAAU,CAACF,OAAO,GAAG,KAAK;IAC5B,CAAC;IACD;EACF,CAAC,EAAE,CAACW,MAAM,EAAEZ,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAExB;EACAd,SAAS,CAAC,MAAM;IACd;IACA,IAAI,CAACiB,UAAU,CAACF,OAAO,IAAI,CAACC,UAAU,EAAEU,MAAM,EAAE;MAC9C;IACF;;IAEA;IACAV,UAAU,CAACU,MAAM,CAACG,YAAY,CAAChB,eAAe,CAACC,QAAQ,CAAC,CAAC;EAC3D,CAAC,EAAE,CAACE,UAAU,EAAEH,eAAe,EAAEC,QAAQ,CAAC,CAAC;EAE3C,OAAOA,QAAQ;AACjB;;AAEA;AACA;AACA;AACA,OAAO,SAASgB,iBAAiBA,CAC/BR,OAAoB,EACpBC,WAA8C,EAC9CC,MAAyC,EACzCC,SAA4C,EAC5B;EAChB,OAAOvB,WAAW,CAChB,OAAO;IACLoB,OAAO;IACPC,WAAW;IACXC,MAAM;IACNC;EACF,CAAC,CAAC,EACF,CAACH,OAAO,EAAEC,WAAW,EAAEC,MAAM,EAAEC,SAAS,CAC1C,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// src/index.ts
|
|
4
|
+
|
|
5
|
+
// ============ Components ============
|
|
6
|
+
export { NitroMap, default } from "./components/NitroMap.js";
|
|
7
|
+
|
|
8
|
+
// New specialized marker components
|
|
9
|
+
export { PriceMarker } from "./components/PriceMarker.js";
|
|
10
|
+
export { ImageMarker } from "./components/ImageMarker.js";
|
|
11
|
+
|
|
12
|
+
// ============ Types ============
|
|
13
|
+
|
|
14
|
+
export { NitroMapInitialize, IsNitroMapInitialized, getDefaultProvider } from "./modules/index.js";
|
|
15
|
+
|
|
16
|
+
// Marker component props
|
|
17
|
+
|
|
18
|
+
// ============ Utilities ============
|
|
19
|
+
// Color helpers - use these to create colors for markers and clusters
|
|
20
|
+
export { rgb, hex, Colors } from "./utils/colors.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroMap","default","PriceMarker","ImageMarker","NitroMapInitialize","IsNitroMapInitialized","getDefaultProvider","rgb","hex","Colors"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;;AAEA;AACA,SAASA,QAAQ,EAAEC,OAAO,QAAQ,0BAAuB;;AAEzD;AACA,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,WAAW,QAAQ,6BAA0B;;AAEtD;;AAqCA,SACEC,kBAAkB,EAClBC,qBAAqB,EACrBC,kBAAkB,QAEb,oBAAW;;AAElB;;AAKA;AACA;AACA,SAASC,GAAG,EAAEC,GAAG,EAAEC,MAAM,QAAQ,mBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroMapInitialize","IsNitroMapInitialized","getDefaultProvider"],"sourceRoot":"../../../src","sources":["modules/index.ts"],"mappings":";;AAAA,SACEA,kBAAkB,EAClBC,qBAAqB,EACrBC,kBAAkB,QAEb,aAAU","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
const NitroMapConfig = NitroModules.createHybridObject('NitroMapConfig');
|
|
5
|
+
|
|
6
|
+
// Store the default provider set during initialization
|
|
7
|
+
let defaultProvider = 'google';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for NitroMap initialization.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Initialize the NitroMap SDK. Must be called before rendering <NitroMap>.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* NitroMapInitialize({ provider: 'google', googleApiKey: 'YOUR_KEY' });
|
|
18
|
+
*/
|
|
19
|
+
export function NitroMapInitialize(config) {
|
|
20
|
+
const apiKey = config.provider === 'yandex' ? config.yandexApiKey ?? '' : config.googleApiKey ?? '';
|
|
21
|
+
defaultProvider = config.provider;
|
|
22
|
+
NitroMapConfig.NitroMapInitialize(apiKey, config.provider);
|
|
23
|
+
}
|
|
24
|
+
export function IsNitroMapInitialized() {
|
|
25
|
+
return NitroMapConfig.IsNitroMapInitialized();
|
|
26
|
+
}
|
|
27
|
+
export function getDefaultProvider() {
|
|
28
|
+
return defaultProvider;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","NitroMapConfig","createHybridObject","defaultProvider","NitroMapInitialize","config","apiKey","provider","yandexApiKey","googleApiKey","IsNitroMapInitialized","getDefaultProvider"],"sourceRoot":"../../../src","sources":["modules/module.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAIzD,MAAMC,cAAc,GAClBD,YAAY,CAACE,kBAAkB,CAAiB,gBAAgB,CAAC;;AAEnE;AACA,IAAIC,eAA4B,GAAG,QAAQ;;AAE3C;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,MAA0B,EAAQ;EACnE,MAAMC,MAAM,GACVD,MAAM,CAACE,QAAQ,KAAK,QAAQ,GACxBF,MAAM,CAACG,YAAY,IAAI,EAAE,GACzBH,MAAM,CAACI,YAAY,IAAI,EAAE;EAE/BN,eAAe,GAAGE,MAAM,CAACE,QAAQ;EACjCN,cAAc,CAACG,kBAAkB,CAACE,MAAM,EAAED,MAAM,CAACE,QAAQ,CAAC;AAC5D;AAEA,OAAO,SAASG,qBAAqBA,CAAA,EAAY;EAC/C,OAAOT,cAAc,CAACS,qBAAqB,CAAC,CAAC;AAC/C;AAEA,OAAO,SAASC,kBAAkBA,CAAA,EAAgB;EAChD,OAAOR,eAAe;AACxB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/NitroMap.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/NitroMapConfig.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/map.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/marker.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ============ Color Helpers ============
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Color value that can be either a MarkerColor object or a hex string
|
|
7
|
+
* Hex strings can be in formats: "#RRGGBB", "RRGGBB", "#RGB", or "RGB"
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const color1: ColorValue = "#FF0000"; // Hex string
|
|
11
|
+
* const color2: ColorValue = "#F00"; // Short hex
|
|
12
|
+
* const color3: ColorValue = { r: 255, g: 0, b: 0, a: 255 }; // MarkerColor
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Parse a ColorValue into a MarkerColor object
|
|
18
|
+
* Handles both hex strings and MarkerColor objects
|
|
19
|
+
* @param color - Color value (hex string or MarkerColor)
|
|
20
|
+
* @param defaultAlpha - Default alpha value (0-255) for hex strings
|
|
21
|
+
* @returns MarkerColor object
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export const parseColor = (color, defaultAlpha = 255) => {
|
|
25
|
+
if (color === undefined) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// If it's already a MarkerColor object, return as-is
|
|
30
|
+
if (typeof color === 'object' && 'r' in color && 'g' in color && 'b' in color) {
|
|
31
|
+
return {
|
|
32
|
+
r: color.r,
|
|
33
|
+
g: color.g,
|
|
34
|
+
b: color.b,
|
|
35
|
+
a: color.a ?? defaultAlpha
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// It's a string - parse as hex
|
|
40
|
+
if (typeof color === 'string') {
|
|
41
|
+
return hex(color, defaultAlpha);
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Parse a ColorValue with a fallback default color
|
|
48
|
+
* @param color - Color value (hex string or MarkerColor)
|
|
49
|
+
* @param fallback - Fallback MarkerColor if parsing fails
|
|
50
|
+
* @returns MarkerColor object
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
export const parseColorWithFallback = (color, fallback) => {
|
|
54
|
+
const parsed = parseColor(color);
|
|
55
|
+
return parsed ?? fallback;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Create a MarkerColor from RGB values
|
|
60
|
+
* @param r - Red component (0-255)
|
|
61
|
+
* @param g - Green component (0-255)
|
|
62
|
+
* @param b - Blue component (0-255)
|
|
63
|
+
* @param a - Alpha/opacity (0-255, default: 255)
|
|
64
|
+
* @returns MarkerColor object
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* const customRed = rgb(255, 0, 0);
|
|
68
|
+
* const semiTransparent = rgb(0, 0, 255, 128);
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export const rgb = (r, g, b, a = 255) => ({
|
|
72
|
+
r,
|
|
73
|
+
g,
|
|
74
|
+
b,
|
|
75
|
+
a
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Create a MarkerColor from a hex string
|
|
80
|
+
* @param hexStr - Hex color string (e.g., "#FF0000", "FF0000", "#F00", or "F00")
|
|
81
|
+
* @param alpha - Alpha/opacity (0-255, default: 255)
|
|
82
|
+
* @returns MarkerColor object
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const red = hex("#FF0000");
|
|
86
|
+
* const shortRed = hex("#F00");
|
|
87
|
+
* const semiTransparentBlue = hex("#0000FF", 128);
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export const hex = (hexStr, alpha = 255) => {
|
|
91
|
+
// Try 6-char hex first (#RRGGBB or RRGGBB)
|
|
92
|
+
const result6 = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
|
|
93
|
+
if (result6) {
|
|
94
|
+
return {
|
|
95
|
+
r: parseInt(result6[1], 16),
|
|
96
|
+
g: parseInt(result6[2], 16),
|
|
97
|
+
b: parseInt(result6[3], 16),
|
|
98
|
+
a: alpha
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Try 3-char hex (#RGB or RGB)
|
|
103
|
+
const result3 = /^#?([a-f\d])([a-f\d])([a-f\d])$/i.exec(hexStr);
|
|
104
|
+
if (result3) {
|
|
105
|
+
return {
|
|
106
|
+
r: parseInt(result3[1] + result3[1], 16),
|
|
107
|
+
g: parseInt(result3[2] + result3[2], 16),
|
|
108
|
+
b: parseInt(result3[3] + result3[3], 16),
|
|
109
|
+
a: alpha
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Fallback to black
|
|
114
|
+
return {
|
|
115
|
+
r: 0,
|
|
116
|
+
g: 0,
|
|
117
|
+
b: 0,
|
|
118
|
+
a: alpha
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Preset colors for convenience
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* <NitroMarker backgroundColor={Colors.red} />
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export const Colors = {
|
|
130
|
+
/** White (255, 255, 255) */
|
|
131
|
+
white: rgb(255, 255, 255),
|
|
132
|
+
/** Black (0, 0, 0) */
|
|
133
|
+
black: rgb(0, 0, 0),
|
|
134
|
+
/** iOS system red (255, 59, 48) */
|
|
135
|
+
red: rgb(255, 59, 48),
|
|
136
|
+
/** iOS system blue (0, 122, 255) */
|
|
137
|
+
blue: rgb(0, 122, 255),
|
|
138
|
+
/** Material green (76, 175, 80) */
|
|
139
|
+
green: rgb(76, 175, 80),
|
|
140
|
+
/** iOS system orange (255, 149, 0) */
|
|
141
|
+
orange: rgb(255, 149, 0),
|
|
142
|
+
/** Dark gray (51, 51, 51) */
|
|
143
|
+
gray: rgb(51, 51, 51),
|
|
144
|
+
/** Light gray (240, 240, 240) */
|
|
145
|
+
lightGray: rgb(240, 240, 240)
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseColor","color","defaultAlpha","undefined","r","g","b","a","hex","parseColorWithFallback","fallback","parsed","rgb","hexStr","alpha","result6","exec","parseInt","result3","Colors","white","black","red","blue","green","orange","gray","lightGray"],"sourceRoot":"../../../src","sources":["utils/colors.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type CommonMarkerProps } from '../hooks/useNitroMarker';
|
|
2
|
+
import { type ColorValue } from '../utils/colors';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the ImageMarker component
|
|
5
|
+
*/
|
|
6
|
+
export interface ImageMarkerProps extends CommonMarkerProps {
|
|
7
|
+
/**
|
|
8
|
+
* URL of the image to display
|
|
9
|
+
* Either imageUrl or imageBase64 is required
|
|
10
|
+
*/
|
|
11
|
+
imageUrl?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Base64-encoded image data (alternative to imageUrl)
|
|
14
|
+
* Either imageUrl or imageBase64 is required
|
|
15
|
+
*/
|
|
16
|
+
imageBase64?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Image width in pixels
|
|
19
|
+
* @default 50
|
|
20
|
+
*/
|
|
21
|
+
width?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Image height in pixels
|
|
24
|
+
* @default 50
|
|
25
|
+
*/
|
|
26
|
+
height?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Corner radius in pixels
|
|
29
|
+
* @default 8
|
|
30
|
+
*/
|
|
31
|
+
cornerRadius?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Border thickness in pixels
|
|
34
|
+
* @default 0
|
|
35
|
+
*/
|
|
36
|
+
borderWidth?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Border color (hex string like "#FF0000" or MarkerColor object)
|
|
39
|
+
*/
|
|
40
|
+
borderColor?: ColorValue;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* ImageMarker - Display images as map markers
|
|
44
|
+
*
|
|
45
|
+
* @example With URL
|
|
46
|
+
* ```tsx
|
|
47
|
+
* <ImageMarker
|
|
48
|
+
* coordinate={{ latitude: 41.29, longitude: 69.24 }}
|
|
49
|
+
* imageUrl="https://example.com/image.jpg"
|
|
50
|
+
* width={60}
|
|
51
|
+
* height={60}
|
|
52
|
+
* />
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example With Base64 and styling
|
|
56
|
+
* ```tsx
|
|
57
|
+
* <ImageMarker
|
|
58
|
+
* coordinate={{ latitude: 41.30, longitude: 69.25 }}
|
|
59
|
+
* imageBase64={base64Data}
|
|
60
|
+
* width={50}
|
|
61
|
+
* height={50}
|
|
62
|
+
* cornerRadius={25}
|
|
63
|
+
* borderWidth={2}
|
|
64
|
+
* borderColor={Colors.white}
|
|
65
|
+
* />
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare const ImageMarker: import("react").NamedExoticComponent<ImageMarkerProps>;
|
|
69
|
+
export default ImageMarker;
|
|
70
|
+
//# sourceMappingURL=ImageMarker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageMarker.d.ts","sourceRoot":"","sources":["../../../../src/components/ImageMarker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAqED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,WAAW,wDAuGP,CAAC;AAElB,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
import type { NitroMapMethods, NitroMapProps as NitroMapPropsSpec } from '../specs/NitroMap.nitro';
|
|
4
|
+
export * from '../specs/NitroMap.nitro';
|
|
5
|
+
export * from '../context/NitroMapContext';
|
|
6
|
+
export interface NitroMapProps extends Omit<NitroMapPropsSpec, 'style' | 'hybridRef'> {
|
|
7
|
+
style?: StyleProp<ViewStyle>;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export type NitroMapRef = NitroMapMethods;
|
|
11
|
+
declare const NitroMap: React.NamedExoticComponent<NitroMapProps & React.RefAttributes<NitroMapMethods>>;
|
|
12
|
+
export { NitroMap };
|
|
13
|
+
export default NitroMap;
|
|
14
|
+
//# sourceMappingURL=NitroMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NitroMap.d.ts","sourceRoot":"","sources":["../../../../src/components/NitroMap.tsx"],"names":[],"mappings":"AACA,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,KAAK,EACV,eAAe,EACf,aAAa,IAAI,iBAAiB,EACnC,MAAM,yBAAyB,CAAC;AAiBjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAa3C,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,WAAW,CAAC;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAgX1C,QAAA,MAAM,QAAQ,kFAAwC,CAAC;AAQvD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type CommonMarkerProps } from '../hooks/useNitroMarker';
|
|
2
|
+
import { type ColorValue } from '../utils/colors';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the PriceMarker component
|
|
5
|
+
*/
|
|
6
|
+
export interface PriceMarkerProps extends CommonMarkerProps {
|
|
7
|
+
/**
|
|
8
|
+
* Price text to display (e.g., "9M", "150K")
|
|
9
|
+
* @required
|
|
10
|
+
*/
|
|
11
|
+
price: string;
|
|
12
|
+
/**
|
|
13
|
+
* Currency code to display (e.g., "UZS", "USD")
|
|
14
|
+
* If provided, uses the full price marker style with currency
|
|
15
|
+
*/
|
|
16
|
+
currency?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the marker is in selected state
|
|
19
|
+
* Changes background and text colors when true
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
selected?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Background color of the marker (hex string like "#FF0000" or MarkerColor object)
|
|
25
|
+
* @default Colors.white
|
|
26
|
+
*/
|
|
27
|
+
backgroundColor?: ColorValue;
|
|
28
|
+
/**
|
|
29
|
+
* Text color of the marker (hex string like "#FF0000" or MarkerColor object)
|
|
30
|
+
* @default Colors.black
|
|
31
|
+
*/
|
|
32
|
+
textColor?: ColorValue;
|
|
33
|
+
/**
|
|
34
|
+
* Font size in pixels
|
|
35
|
+
* @default 14
|
|
36
|
+
*/
|
|
37
|
+
fontSize?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Corner radius in pixels (only for simple price style)
|
|
40
|
+
* @default 8
|
|
41
|
+
*/
|
|
42
|
+
cornerRadius?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Background color when marker is selected (hex string like "#FF0000" or MarkerColor object)
|
|
45
|
+
*/
|
|
46
|
+
selectedBackgroundColor?: ColorValue;
|
|
47
|
+
/**
|
|
48
|
+
* Text color when marker is selected (hex string like "#FF0000" or MarkerColor object)
|
|
49
|
+
*/
|
|
50
|
+
selectedTextColor?: ColorValue;
|
|
51
|
+
/**
|
|
52
|
+
* Horizontal padding in pixels
|
|
53
|
+
*/
|
|
54
|
+
paddingHorizontal?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Vertical padding in pixels
|
|
57
|
+
*/
|
|
58
|
+
paddingVertical?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Shadow opacity (0-1)
|
|
61
|
+
*/
|
|
62
|
+
shadowOpacity?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* PriceMarker - Display price tags on the map
|
|
66
|
+
*
|
|
67
|
+
* @example Simple price tag
|
|
68
|
+
* ```tsx
|
|
69
|
+
* <PriceMarker
|
|
70
|
+
* coordinate={{ latitude: 41.29, longitude: 69.24 }}
|
|
71
|
+
* price="150K"
|
|
72
|
+
* />
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @example Full price marker with currency
|
|
76
|
+
* ```tsx
|
|
77
|
+
* <PriceMarker
|
|
78
|
+
* coordinate={{ latitude: 41.30, longitude: 69.25 }}
|
|
79
|
+
* price="9M"
|
|
80
|
+
* currency="UZS"
|
|
81
|
+
* selected={isSelected}
|
|
82
|
+
* onPress={() => setSelected(true)}
|
|
83
|
+
* />
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare const PriceMarker: import("react").NamedExoticComponent<PriceMarkerProps>;
|
|
87
|
+
export default PriceMarker;
|
|
88
|
+
//# sourceMappingURL=PriceMarker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PriceMarker.d.ts","sourceRoot":"","sources":["../../../../src/components/PriceMarker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,uBAAuB,CAAC,EAAE,UAAU,CAAC;IAErC;;OAEG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,wDA2HP,CAAC;AAElB,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { NitroMapMethods } from '../specs/NitroMap.nitro';
|
|
2
|
+
import type { Coordinate } from '../types/map';
|
|
3
|
+
export interface MarkerHandlers {
|
|
4
|
+
onPress?: () => void;
|
|
5
|
+
onDragStart?: (coordinate: Coordinate) => void;
|
|
6
|
+
onDrag?: (coordinate: Coordinate) => void;
|
|
7
|
+
onDragEnd?: (coordinate: Coordinate) => void;
|
|
8
|
+
}
|
|
9
|
+
export interface NitroMapContextValue {
|
|
10
|
+
mapRef: NitroMapMethods | null;
|
|
11
|
+
registerMarkerHandler: (markerId: string, handlers: MarkerHandlers) => void;
|
|
12
|
+
unregisterMarkerHandler: (markerId: string) => void;
|
|
13
|
+
getMarkerHandler: (markerId: string) => MarkerHandlers | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare const NitroMapContext: import("react").Context<NitroMapContextValue | null>;
|
|
16
|
+
//# sourceMappingURL=NitroMapContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NitroMapContext.d.ts","sourceRoot":"","sources":["../../../../src/context/NitroMapContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC9C;AAGD,MAAM,WAAW,oBAAoB;IAEnC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAG/B,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAG5E,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAGpD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;CACpE;AAGD,eAAO,MAAM,eAAe,sDAAmD,CAAC"}
|