@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.
Files changed (283) hide show
  1. package/LICENSE +20 -0
  2. package/NitroMap.podspec +42 -0
  3. package/README.md +172 -0
  4. package/android/CMakeLists.txt +27 -0
  5. package/android/build.gradle +141 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +3 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/nitromap/ClusterIconGenerator.kt +108 -0
  10. package/android/src/main/java/com/margelo/nitro/nitromap/ColorUtils.kt +63 -0
  11. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMap.kt +408 -0
  12. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMapConfig.kt +68 -0
  13. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconCache.kt +176 -0
  14. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconFactory.kt +252 -0
  15. package/android/src/main/java/com/margelo/nitro/nitromap/NitroMapPackage.kt +33 -0
  16. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +252 -0
  17. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/QuadTree.kt +195 -0
  18. package/android/src/main/java/com/margelo/nitro/nitromap/providers/GoogleMapProvider.kt +912 -0
  19. package/android/src/main/java/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +70 -0
  20. package/cpp/ClusterEngine.hpp +411 -0
  21. package/cpp/KDBush.hpp +238 -0
  22. package/cpp/QuadTree.hpp +246 -0
  23. package/ios/Clustering/ClusterEngineWrapper.h +58 -0
  24. package/ios/Clustering/ClusterEngineWrapper.mm +142 -0
  25. package/ios/Clustering/ClusterIconRenderer.swift +80 -0
  26. package/ios/Clustering/NitroClusterEngine.swift +117 -0
  27. package/ios/Clustering/NitroClusterIconGenerator.swift +35 -0
  28. package/ios/MarkerRenderer/MarkerIconFactory.swift +322 -0
  29. package/ios/MarkerRenderer/PriceMarkerRenderer.swift +140 -0
  30. package/ios/NitroMap.swift +332 -0
  31. package/ios/NitroMapConfig/HybridNitroMapConfig.swift +33 -0
  32. package/ios/Providers/GoogleMapDelegate.swift +310 -0
  33. package/ios/Providers/GoogleMapProvider+Camera.swift +164 -0
  34. package/ios/Providers/GoogleMapProvider.swift +924 -0
  35. package/ios/Providers/MapProviderProtocol.swift +78 -0
  36. package/ios/Shared/ClusterConfig+Factory.swift +58 -0
  37. package/ios/Shared/ClusteringManager.swift +211 -0
  38. package/ios/Shared/MapStyleProvider.swift +135 -0
  39. package/ios/Shared/MarkerSelectionHandler.swift +116 -0
  40. package/ios/Utils/ColorValueExtension.swift +54 -0
  41. package/lib/module/components/ImageMarker.js +146 -0
  42. package/lib/module/components/ImageMarker.js.map +1 -0
  43. package/lib/module/components/NitroMap.js +320 -0
  44. package/lib/module/components/NitroMap.js.map +1 -0
  45. package/lib/module/components/PriceMarker.js +165 -0
  46. package/lib/module/components/PriceMarker.js.map +1 -0
  47. package/lib/module/context/NitroMapContext.js +15 -0
  48. package/lib/module/context/NitroMapContext.js.map +1 -0
  49. package/lib/module/hooks/useNitroMarker.js +104 -0
  50. package/lib/module/hooks/useNitroMarker.js.map +1 -0
  51. package/lib/module/index.js +21 -0
  52. package/lib/module/index.js.map +1 -0
  53. package/lib/module/modules/index.js +4 -0
  54. package/lib/module/modules/index.js.map +1 -0
  55. package/lib/module/modules/module.js +30 -0
  56. package/lib/module/modules/module.js.map +1 -0
  57. package/lib/module/package.json +1 -0
  58. package/lib/module/specs/NitroMap.nitro.js +4 -0
  59. package/lib/module/specs/NitroMap.nitro.js.map +1 -0
  60. package/lib/module/specs/NitroMapConfig.nitro.js +4 -0
  61. package/lib/module/specs/NitroMapConfig.nitro.js.map +1 -0
  62. package/lib/module/types/map.js +2 -0
  63. package/lib/module/types/map.js.map +1 -0
  64. package/lib/module/types/marker.js +4 -0
  65. package/lib/module/types/marker.js.map +1 -0
  66. package/lib/module/utils/colors.js +147 -0
  67. package/lib/module/utils/colors.js.map +1 -0
  68. package/lib/typescript/package.json +1 -0
  69. package/lib/typescript/src/components/ImageMarker.d.ts +70 -0
  70. package/lib/typescript/src/components/ImageMarker.d.ts.map +1 -0
  71. package/lib/typescript/src/components/NitroMap.d.ts +14 -0
  72. package/lib/typescript/src/components/NitroMap.d.ts.map +1 -0
  73. package/lib/typescript/src/components/PriceMarker.d.ts +88 -0
  74. package/lib/typescript/src/components/PriceMarker.d.ts.map +1 -0
  75. package/lib/typescript/src/context/NitroMapContext.d.ts +16 -0
  76. package/lib/typescript/src/context/NitroMapContext.d.ts.map +1 -0
  77. package/lib/typescript/src/hooks/useNitroMarker.d.ts +78 -0
  78. package/lib/typescript/src/hooks/useNitroMarker.d.ts.map +1 -0
  79. package/lib/typescript/src/index.d.ts +12 -0
  80. package/lib/typescript/src/index.d.ts.map +1 -0
  81. package/lib/typescript/src/modules/index.d.ts +2 -0
  82. package/lib/typescript/src/modules/index.d.ts.map +1 -0
  83. package/lib/typescript/src/modules/module.d.ts +22 -0
  84. package/lib/typescript/src/modules/module.d.ts.map +1 -0
  85. package/lib/typescript/src/specs/NitroMap.nitro.d.ts +227 -0
  86. package/lib/typescript/src/specs/NitroMap.nitro.d.ts.map +1 -0
  87. package/lib/typescript/src/specs/NitroMapConfig.nitro.d.ts +10 -0
  88. package/lib/typescript/src/specs/NitroMapConfig.nitro.d.ts.map +1 -0
  89. package/lib/typescript/src/types/map.d.ts +154 -0
  90. package/lib/typescript/src/types/map.d.ts.map +1 -0
  91. package/lib/typescript/src/types/marker.d.ts +248 -0
  92. package/lib/typescript/src/types/marker.d.ts.map +1 -0
  93. package/lib/typescript/src/utils/colors.d.ts +82 -0
  94. package/lib/typescript/src/utils/colors.d.ts.map +1 -0
  95. package/nitro.json +21 -0
  96. package/nitrogen/generated/android/c++/JCamera.hpp +74 -0
  97. package/nitrogen/generated/android/c++/JClusterAnimationStyle.hpp +68 -0
  98. package/nitrogen/generated/android/c++/JClusterConfig.hpp +121 -0
  99. package/nitrogen/generated/android/c++/JClusterPressEvent.hpp +86 -0
  100. package/nitrogen/generated/android/c++/JClusterStrategy.hpp +59 -0
  101. package/nitrogen/generated/android/c++/JColorValue.cpp +26 -0
  102. package/nitrogen/generated/android/c++/JColorValue.hpp +70 -0
  103. package/nitrogen/generated/android/c++/JCoordinate.hpp +61 -0
  104. package/nitrogen/generated/android/c++/JEdgePadding.hpp +69 -0
  105. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  106. package/nitrogen/generated/android/c++/JFunc_void_ClusterPressEvent.hpp +81 -0
  107. package/nitrogen/generated/android/c++/JFunc_void_MapError.hpp +78 -0
  108. package/nitrogen/generated/android/c++/JFunc_void_MapPressEvent.hpp +81 -0
  109. package/nitrogen/generated/android/c++/JFunc_void_MarkerDragEvent.hpp +80 -0
  110. package/nitrogen/generated/android/c++/JFunc_void_MarkerPressEvent.hpp +80 -0
  111. package/nitrogen/generated/android/c++/JFunc_void_RegionChangeEvent.hpp +79 -0
  112. package/nitrogen/generated/android/c++/JHybridNitroMapConfigSpec.cpp +59 -0
  113. package/nitrogen/generated/android/c++/JHybridNitroMapConfigSpec.hpp +66 -0
  114. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.cpp +593 -0
  115. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.hpp +125 -0
  116. package/nitrogen/generated/android/c++/JImageMarkerConfig.hpp +86 -0
  117. package/nitrogen/generated/android/c++/JMapBoundaries.hpp +62 -0
  118. package/nitrogen/generated/android/c++/JMapError.hpp +61 -0
  119. package/nitrogen/generated/android/c++/JMapPressEvent.hpp +64 -0
  120. package/nitrogen/generated/android/c++/JMapProvider.hpp +62 -0
  121. package/nitrogen/generated/android/c++/JMapStyleElement.hpp +87 -0
  122. package/nitrogen/generated/android/c++/JMapStyler.hpp +78 -0
  123. package/nitrogen/generated/android/c++/JMapType.hpp +62 -0
  124. package/nitrogen/generated/android/c++/JMarkerAnimation.hpp +62 -0
  125. package/nitrogen/generated/android/c++/JMarkerColor.hpp +69 -0
  126. package/nitrogen/generated/android/c++/JMarkerConfig.hpp +77 -0
  127. package/nitrogen/generated/android/c++/JMarkerData.hpp +121 -0
  128. package/nitrogen/generated/android/c++/JMarkerDragEvent.hpp +63 -0
  129. package/nitrogen/generated/android/c++/JMarkerPressEvent.hpp +63 -0
  130. package/nitrogen/generated/android/c++/JMarkerStyle.hpp +62 -0
  131. package/nitrogen/generated/android/c++/JPoint.hpp +61 -0
  132. package/nitrogen/generated/android/c++/JPriceMarkerStyle.hpp +102 -0
  133. package/nitrogen/generated/android/c++/JRegion.hpp +69 -0
  134. package/nitrogen/generated/android/c++/JRegionChangeEvent.hpp +62 -0
  135. package/nitrogen/generated/android/c++/JVariant_String_MarkerColor.cpp +26 -0
  136. package/nitrogen/generated/android/c++/JVariant_String_MarkerColor.hpp +70 -0
  137. package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.cpp +144 -0
  138. package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.hpp +49 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Camera.kt +50 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterAnimationStyle.kt +24 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterConfig.kt +80 -0
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterPressEvent.kt +44 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterStrategy.kt +21 -0
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ColorValue.kt +59 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Coordinate.kt +41 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/EdgePadding.kt +47 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void.kt +80 -0
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_ClusterPressEvent.kt +80 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MapError.kt +80 -0
  150. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MapPressEvent.kt +80 -0
  151. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MarkerDragEvent.kt +80 -0
  152. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MarkerPressEvent.kt +80 -0
  153. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_RegionChangeEvent.kt +80 -0
  154. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapConfigSpec.kt +61 -0
  155. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapSpec.kt +342 -0
  156. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ImageMarkerConfig.kt +56 -0
  157. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapBoundaries.kt +41 -0
  158. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapError.kt +41 -0
  159. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapPressEvent.kt +41 -0
  160. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapProvider.kt +22 -0
  161. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapStyleElement.kt +44 -0
  162. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapStyler.kt +53 -0
  163. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapType.kt +22 -0
  164. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerAnimation.kt +22 -0
  165. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerColor.kt +47 -0
  166. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerConfig.kt +44 -0
  167. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerData.kt +71 -0
  168. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerDragEvent.kt +41 -0
  169. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerPressEvent.kt +41 -0
  170. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerStyle.kt +22 -0
  171. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Point.kt +41 -0
  172. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PriceMarkerStyle.kt +68 -0
  173. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Region.kt +47 -0
  174. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/RegionChangeEvent.kt +41 -0
  175. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Variant_String_MarkerColor.kt +59 -0
  176. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/nitromapOnLoad.kt +35 -0
  177. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/views/HybridNitroMapManager.kt +50 -0
  178. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/views/HybridNitroMapStateUpdater.kt +23 -0
  179. package/nitrogen/generated/android/nitromap+autolinking.cmake +87 -0
  180. package/nitrogen/generated/android/nitromap+autolinking.gradle +27 -0
  181. package/nitrogen/generated/android/nitromapOnLoad.cpp +70 -0
  182. package/nitrogen/generated/android/nitromapOnLoad.hpp +25 -0
  183. package/nitrogen/generated/ios/NitroMap+autolinking.rb +60 -0
  184. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.cpp +130 -0
  185. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.hpp +793 -0
  186. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Umbrella.hpp +132 -0
  187. package/nitrogen/generated/ios/NitroMapAutolinking.mm +41 -0
  188. package/nitrogen/generated/ios/NitroMapAutolinking.swift +40 -0
  189. package/nitrogen/generated/ios/c++/HybridNitroMapConfigSpecSwift.cpp +11 -0
  190. package/nitrogen/generated/ios/c++/HybridNitroMapConfigSpecSwift.hpp +84 -0
  191. package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.cpp +11 -0
  192. package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.hpp +410 -0
  193. package/nitrogen/generated/ios/c++/views/HybridNitroMapComponent.mm +206 -0
  194. package/nitrogen/generated/ios/swift/Camera.swift +80 -0
  195. package/nitrogen/generated/ios/swift/ClusterAnimationStyle.swift +52 -0
  196. package/nitrogen/generated/ios/swift/ClusterConfig.swift +268 -0
  197. package/nitrogen/generated/ios/swift/ClusterPressEvent.swift +70 -0
  198. package/nitrogen/generated/ios/swift/ClusterStrategy.swift +40 -0
  199. package/nitrogen/generated/ios/swift/ColorValue.swift +18 -0
  200. package/nitrogen/generated/ios/swift/Coordinate.swift +47 -0
  201. package/nitrogen/generated/ios/swift/EdgePadding.swift +69 -0
  202. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  203. package/nitrogen/generated/ios/swift/Func_void_Camera.swift +47 -0
  204. package/nitrogen/generated/ios/swift/Func_void_ClusterPressEvent.swift +47 -0
  205. package/nitrogen/generated/ios/swift/Func_void_MapBoundaries.swift +47 -0
  206. package/nitrogen/generated/ios/swift/Func_void_MapError.swift +47 -0
  207. package/nitrogen/generated/ios/swift/Func_void_MapPressEvent.swift +47 -0
  208. package/nitrogen/generated/ios/swift/Func_void_MarkerDragEvent.swift +47 -0
  209. package/nitrogen/generated/ios/swift/Func_void_MarkerPressEvent.swift +47 -0
  210. package/nitrogen/generated/ios/swift/Func_void_RegionChangeEvent.swift +47 -0
  211. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  212. package/nitrogen/generated/ios/swift/HybridNitroMapConfigSpec.swift +57 -0
  213. package/nitrogen/generated/ios/swift/HybridNitroMapConfigSpec_cxx.swift +142 -0
  214. package/nitrogen/generated/ios/swift/HybridNitroMapSpec.swift +93 -0
  215. package/nitrogen/generated/ios/swift/HybridNitroMapSpec_cxx.swift +953 -0
  216. package/nitrogen/generated/ios/swift/ImageMarkerConfig.swift +166 -0
  217. package/nitrogen/generated/ios/swift/MapBoundaries.swift +47 -0
  218. package/nitrogen/generated/ios/swift/MapError.swift +47 -0
  219. package/nitrogen/generated/ios/swift/MapPressEvent.swift +47 -0
  220. package/nitrogen/generated/ios/swift/MapProvider.swift +44 -0
  221. package/nitrogen/generated/ios/swift/MapStyleElement.swift +108 -0
  222. package/nitrogen/generated/ios/swift/MapStyler.swift +177 -0
  223. package/nitrogen/generated/ios/swift/MapType.swift +44 -0
  224. package/nitrogen/generated/ios/swift/MarkerAnimation.swift +44 -0
  225. package/nitrogen/generated/ios/swift/MarkerColor.swift +69 -0
  226. package/nitrogen/generated/ios/swift/MarkerConfig.swift +82 -0
  227. package/nitrogen/generated/ios/swift/MarkerData.swift +195 -0
  228. package/nitrogen/generated/ios/swift/MarkerDragEvent.swift +47 -0
  229. package/nitrogen/generated/ios/swift/MarkerPressEvent.swift +47 -0
  230. package/nitrogen/generated/ios/swift/MarkerStyle.swift +44 -0
  231. package/nitrogen/generated/ios/swift/Point.swift +47 -0
  232. package/nitrogen/generated/ios/swift/PriceMarkerStyle.swift +374 -0
  233. package/nitrogen/generated/ios/swift/Region.swift +69 -0
  234. package/nitrogen/generated/ios/swift/RegionChangeEvent.swift +47 -0
  235. package/nitrogen/generated/ios/swift/Variant_String_MarkerColor.swift +18 -0
  236. package/nitrogen/generated/shared/c++/Camera.hpp +92 -0
  237. package/nitrogen/generated/shared/c++/ClusterAnimationStyle.hpp +88 -0
  238. package/nitrogen/generated/shared/c++/ClusterConfig.hpp +140 -0
  239. package/nitrogen/generated/shared/c++/ClusterPressEvent.hpp +86 -0
  240. package/nitrogen/generated/shared/c++/ClusterStrategy.hpp +76 -0
  241. package/nitrogen/generated/shared/c++/Coordinate.hpp +79 -0
  242. package/nitrogen/generated/shared/c++/EdgePadding.hpp +87 -0
  243. package/nitrogen/generated/shared/c++/HybridNitroMapConfigSpec.cpp +22 -0
  244. package/nitrogen/generated/shared/c++/HybridNitroMapConfigSpec.hpp +65 -0
  245. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.cpp +82 -0
  246. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.hpp +173 -0
  247. package/nitrogen/generated/shared/c++/ImageMarkerConfig.hpp +103 -0
  248. package/nitrogen/generated/shared/c++/MapBoundaries.hpp +80 -0
  249. package/nitrogen/generated/shared/c++/MapError.hpp +79 -0
  250. package/nitrogen/generated/shared/c++/MapPressEvent.hpp +83 -0
  251. package/nitrogen/generated/shared/c++/MapProvider.hpp +80 -0
  252. package/nitrogen/generated/shared/c++/MapStyleElement.hpp +87 -0
  253. package/nitrogen/generated/shared/c++/MapStyler.hpp +96 -0
  254. package/nitrogen/generated/shared/c++/MapType.hpp +80 -0
  255. package/nitrogen/generated/shared/c++/MarkerAnimation.hpp +80 -0
  256. package/nitrogen/generated/shared/c++/MarkerColor.hpp +87 -0
  257. package/nitrogen/generated/shared/c++/MarkerConfig.hpp +91 -0
  258. package/nitrogen/generated/shared/c++/MarkerData.hpp +131 -0
  259. package/nitrogen/generated/shared/c++/MarkerDragEvent.hpp +81 -0
  260. package/nitrogen/generated/shared/c++/MarkerPressEvent.hpp +81 -0
  261. package/nitrogen/generated/shared/c++/MarkerStyle.hpp +80 -0
  262. package/nitrogen/generated/shared/c++/Point.hpp +79 -0
  263. package/nitrogen/generated/shared/c++/PriceMarkerStyle.hpp +119 -0
  264. package/nitrogen/generated/shared/c++/Region.hpp +87 -0
  265. package/nitrogen/generated/shared/c++/RegionChangeEvent.hpp +80 -0
  266. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.cpp +351 -0
  267. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.hpp +141 -0
  268. package/nitrogen/generated/shared/json/NitroMapConfig.json +32 -0
  269. package/package.json +176 -0
  270. package/react-native.config.js +16 -0
  271. package/src/components/ImageMarker.tsx +254 -0
  272. package/src/components/NitroMap.tsx +433 -0
  273. package/src/components/PriceMarker.tsx +311 -0
  274. package/src/context/NitroMapContext.tsx +33 -0
  275. package/src/hooks/useNitroMarker.ts +198 -0
  276. package/src/index.tsx +62 -0
  277. package/src/modules/index.ts +6 -0
  278. package/src/modules/module.ts +45 -0
  279. package/src/specs/NitroMap.nitro.ts +292 -0
  280. package/src/specs/NitroMapConfig.nitro.ts +8 -0
  281. package/src/types/map.ts +166 -0
  282. package/src/types/marker.ts +267 -0
  283. package/src/utils/colors.ts +159 -0
@@ -0,0 +1,86 @@
1
+ ///
2
+ /// JClusterPressEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "ClusterPressEvent.hpp"
12
+
13
+ #include "Coordinate.hpp"
14
+ #include "JCoordinate.hpp"
15
+ #include <string>
16
+ #include <vector>
17
+
18
+ namespace margelo::nitro::nitromap {
19
+
20
+ using namespace facebook;
21
+
22
+ /**
23
+ * The C++ JNI bridge between the C++ struct "ClusterPressEvent" and the the Kotlin data class "ClusterPressEvent".
24
+ */
25
+ struct JClusterPressEvent final: public jni::JavaClass<JClusterPressEvent> {
26
+ public:
27
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/ClusterPressEvent;";
28
+
29
+ public:
30
+ /**
31
+ * Convert this Java/Kotlin-based struct to the C++ struct ClusterPressEvent by copying all values to C++.
32
+ */
33
+ [[maybe_unused]]
34
+ [[nodiscard]]
35
+ ClusterPressEvent toCpp() const {
36
+ static const auto clazz = javaClassStatic();
37
+ static const auto fieldCoordinate = clazz->getField<JCoordinate>("coordinate");
38
+ jni::local_ref<JCoordinate> coordinate = this->getFieldValue(fieldCoordinate);
39
+ static const auto fieldMarkerIds = clazz->getField<jni::JArrayClass<jni::JString>>("markerIds");
40
+ jni::local_ref<jni::JArrayClass<jni::JString>> markerIds = this->getFieldValue(fieldMarkerIds);
41
+ static const auto fieldCount = clazz->getField<double>("count");
42
+ double count = this->getFieldValue(fieldCount);
43
+ return ClusterPressEvent(
44
+ coordinate->toCpp(),
45
+ [&]() {
46
+ size_t __size = markerIds->size();
47
+ std::vector<std::string> __vector;
48
+ __vector.reserve(__size);
49
+ for (size_t __i = 0; __i < __size; __i++) {
50
+ auto __element = markerIds->getElement(__i);
51
+ __vector.push_back(__element->toStdString());
52
+ }
53
+ return __vector;
54
+ }(),
55
+ count
56
+ );
57
+ }
58
+
59
+ public:
60
+ /**
61
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
62
+ */
63
+ [[maybe_unused]]
64
+ static jni::local_ref<JClusterPressEvent::javaobject> fromCpp(const ClusterPressEvent& value) {
65
+ using JSignature = JClusterPressEvent(jni::alias_ref<JCoordinate>, jni::alias_ref<jni::JArrayClass<jni::JString>>, double);
66
+ static const auto clazz = javaClassStatic();
67
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
68
+ return create(
69
+ clazz,
70
+ JCoordinate::fromCpp(value.coordinate),
71
+ [&]() {
72
+ size_t __size = value.markerIds.size();
73
+ jni::local_ref<jni::JArrayClass<jni::JString>> __array = jni::JArrayClass<jni::JString>::newArray(__size);
74
+ for (size_t __i = 0; __i < __size; __i++) {
75
+ const auto& __element = value.markerIds[__i];
76
+ auto __elementJni = jni::make_jstring(__element);
77
+ __array->setElement(__i, *__elementJni);
78
+ }
79
+ return __array;
80
+ }(),
81
+ value.count
82
+ );
83
+ }
84
+ };
85
+
86
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,59 @@
1
+ ///
2
+ /// JClusterStrategy.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "ClusterStrategy.hpp"
12
+
13
+ namespace margelo::nitro::nitromap {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "ClusterStrategy" and the the Kotlin enum "ClusterStrategy".
19
+ */
20
+ struct JClusterStrategy final: public jni::JavaClass<JClusterStrategy> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/ClusterStrategy;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum ClusterStrategy.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ ClusterStrategy toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<ClusterStrategy>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JClusterStrategy> fromCpp(ClusterStrategy value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldSUPERCLUSTER = clazz->getStaticField<JClusterStrategy>("SUPERCLUSTER");
45
+ static const auto fieldHIDEONOVERLAP = clazz->getStaticField<JClusterStrategy>("HIDEONOVERLAP");
46
+
47
+ switch (value) {
48
+ case ClusterStrategy::SUPERCLUSTER:
49
+ return clazz->getStaticFieldValue(fieldSUPERCLUSTER);
50
+ case ClusterStrategy::HIDEONOVERLAP:
51
+ return clazz->getStaticFieldValue(fieldHIDEONOVERLAP);
52
+ default:
53
+ std::string stringValue = std::to_string(static_cast<int>(value));
54
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
55
+ }
56
+ }
57
+ };
58
+
59
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,26 @@
1
+ ///
2
+ /// JColorValue.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "JColorValue.hpp"
9
+
10
+ namespace margelo::nitro::nitromap {
11
+ /**
12
+ * Converts JColorValue to std::variant<std::string, MarkerColor>
13
+ */
14
+ std::variant<std::string, MarkerColor> JColorValue::toCpp() const {
15
+ if (isInstanceOf(JColorValue_impl::First::javaClassStatic())) {
16
+ // It's a `std::string`
17
+ auto jniValue = static_cast<const JColorValue_impl::First*>(this)->getValue();
18
+ return jniValue->toStdString();
19
+ } else if (isInstanceOf(JColorValue_impl::Second::javaClassStatic())) {
20
+ // It's a `MarkerColor`
21
+ auto jniValue = static_cast<const JColorValue_impl::Second*>(this)->getValue();
22
+ return jniValue->toCpp();
23
+ }
24
+ throw std::invalid_argument("Variant is unknown Kotlin instance!");
25
+ }
26
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,70 @@
1
+ ///
2
+ /// JColorValue.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <variant>
12
+
13
+ #include <string>
14
+ #include "MarkerColor.hpp"
15
+ #include <variant>
16
+ #include "JMarkerColor.hpp"
17
+
18
+ namespace margelo::nitro::nitromap {
19
+
20
+ using namespace facebook;
21
+
22
+ /**
23
+ * The C++ JNI bridge between the C++ std::variant and the Java class "ColorValue".
24
+ */
25
+ class JColorValue: public jni::JavaClass<JColorValue> {
26
+ public:
27
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/ColorValue;";
28
+
29
+ static jni::local_ref<JColorValue> create_0(jni::alias_ref<jni::JString> value) {
30
+ static const auto method = javaClassStatic()->getStaticMethod<JColorValue(jni::alias_ref<jni::JString>)>("create");
31
+ return method(javaClassStatic(), value);
32
+ }
33
+ static jni::local_ref<JColorValue> create_1(jni::alias_ref<JMarkerColor> value) {
34
+ static const auto method = javaClassStatic()->getStaticMethod<JColorValue(jni::alias_ref<JMarkerColor>)>("create");
35
+ return method(javaClassStatic(), value);
36
+ }
37
+
38
+ static jni::local_ref<JColorValue> fromCpp(const std::variant<std::string, MarkerColor>& variant) {
39
+ switch (variant.index()) {
40
+ case 0: return create_0(jni::make_jstring(std::get<0>(variant)));
41
+ case 1: return create_1(JMarkerColor::fromCpp(std::get<1>(variant)));
42
+ default: throw std::invalid_argument("Variant holds unknown index! (" + std::to_string(variant.index()) + ")");
43
+ }
44
+ }
45
+
46
+ [[nodiscard]] std::variant<std::string, MarkerColor> toCpp() const;
47
+ };
48
+
49
+ namespace JColorValue_impl {
50
+ class First: public jni::JavaClass<First, JColorValue> {
51
+ public:
52
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/ColorValue$First;";
53
+
54
+ [[nodiscard]] jni::local_ref<jni::JString> getValue() const {
55
+ static const auto field = javaClassStatic()->getField<jni::JString>("value");
56
+ return getFieldValue(field);
57
+ }
58
+ };
59
+
60
+ class Second: public jni::JavaClass<Second, JColorValue> {
61
+ public:
62
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/ColorValue$Second;";
63
+
64
+ [[nodiscard]] jni::local_ref<JMarkerColor> getValue() const {
65
+ static const auto field = javaClassStatic()->getField<JMarkerColor>("value");
66
+ return getFieldValue(field);
67
+ }
68
+ };
69
+ } // namespace JColorValue_impl
70
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JCoordinate.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "Coordinate.hpp"
12
+
13
+
14
+
15
+ namespace margelo::nitro::nitromap {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "Coordinate" and the the Kotlin data class "Coordinate".
21
+ */
22
+ struct JCoordinate final: public jni::JavaClass<JCoordinate> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Coordinate;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct Coordinate by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ Coordinate toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldLatitude = clazz->getField<double>("latitude");
35
+ double latitude = this->getFieldValue(fieldLatitude);
36
+ static const auto fieldLongitude = clazz->getField<double>("longitude");
37
+ double longitude = this->getFieldValue(fieldLongitude);
38
+ return Coordinate(
39
+ latitude,
40
+ longitude
41
+ );
42
+ }
43
+
44
+ public:
45
+ /**
46
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
47
+ */
48
+ [[maybe_unused]]
49
+ static jni::local_ref<JCoordinate::javaobject> fromCpp(const Coordinate& value) {
50
+ using JSignature = JCoordinate(double, double);
51
+ static const auto clazz = javaClassStatic();
52
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
+ return create(
54
+ clazz,
55
+ value.latitude,
56
+ value.longitude
57
+ );
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,69 @@
1
+ ///
2
+ /// JEdgePadding.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "EdgePadding.hpp"
12
+
13
+
14
+
15
+ namespace margelo::nitro::nitromap {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "EdgePadding" and the the Kotlin data class "EdgePadding".
21
+ */
22
+ struct JEdgePadding final: public jni::JavaClass<JEdgePadding> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/EdgePadding;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct EdgePadding by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ EdgePadding toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldTop = clazz->getField<double>("top");
35
+ double top = this->getFieldValue(fieldTop);
36
+ static const auto fieldRight = clazz->getField<double>("right");
37
+ double right = this->getFieldValue(fieldRight);
38
+ static const auto fieldBottom = clazz->getField<double>("bottom");
39
+ double bottom = this->getFieldValue(fieldBottom);
40
+ static const auto fieldLeft = clazz->getField<double>("left");
41
+ double left = this->getFieldValue(fieldLeft);
42
+ return EdgePadding(
43
+ top,
44
+ right,
45
+ bottom,
46
+ left
47
+ );
48
+ }
49
+
50
+ public:
51
+ /**
52
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
53
+ */
54
+ [[maybe_unused]]
55
+ static jni::local_ref<JEdgePadding::javaobject> fromCpp(const EdgePadding& value) {
56
+ using JSignature = JEdgePadding(double, double, double, double);
57
+ static const auto clazz = javaClassStatic();
58
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
59
+ return create(
60
+ clazz,
61
+ value.top,
62
+ value.right,
63
+ value.bottom,
64
+ value.left
65
+ );
66
+ }
67
+ };
68
+
69
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,75 @@
1
+ ///
2
+ /// JFunc_void.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include <functional>
14
+ #include <NitroModules/JNICallable.hpp>
15
+
16
+ namespace margelo::nitro::nitromap {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * Represents the Java/Kotlin callback `() -> Unit`.
22
+ * This can be passed around between C++ and Java/Kotlin.
23
+ */
24
+ struct JFunc_void: public jni::JavaClass<JFunc_void> {
25
+ public:
26
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void;";
27
+
28
+ public:
29
+ /**
30
+ * Invokes the function this `JFunc_void` instance holds through JNI.
31
+ */
32
+ void invoke() const {
33
+ static const auto method = javaClassStatic()->getMethod<void()>("invoke");
34
+ method(self());
35
+ }
36
+ };
37
+
38
+ /**
39
+ * An implementation of Func_void that is backed by a C++ implementation (using `std::function<...>`)
40
+ */
41
+ class JFunc_void_cxx final: public jni::HybridClass<JFunc_void_cxx, JFunc_void> {
42
+ public:
43
+ static jni::local_ref<JFunc_void::javaobject> fromCpp(const std::function<void()>& func) {
44
+ return JFunc_void_cxx::newObjectCxxArgs(func);
45
+ }
46
+
47
+ public:
48
+ /**
49
+ * Invokes the C++ `std::function<...>` this `JFunc_void_cxx` instance holds.
50
+ */
51
+ void invoke_cxx() {
52
+ _func();
53
+ }
54
+
55
+ public:
56
+ [[nodiscard]]
57
+ inline const std::function<void()>& getFunction() const {
58
+ return _func;
59
+ }
60
+
61
+ public:
62
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void_cxx;";
63
+ static void registerNatives() {
64
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_cxx::invoke_cxx)});
65
+ }
66
+
67
+ private:
68
+ explicit JFunc_void_cxx(const std::function<void()>& func): _func(func) { }
69
+
70
+ private:
71
+ friend HybridBase;
72
+ std::function<void()> _func;
73
+ };
74
+
75
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,81 @@
1
+ ///
2
+ /// JFunc_void_ClusterPressEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "ClusterPressEvent.hpp"
14
+ #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
16
+ #include "JClusterPressEvent.hpp"
17
+ #include "Coordinate.hpp"
18
+ #include "JCoordinate.hpp"
19
+ #include <string>
20
+ #include <vector>
21
+
22
+ namespace margelo::nitro::nitromap {
23
+
24
+ using namespace facebook;
25
+
26
+ /**
27
+ * Represents the Java/Kotlin callback `(event: ClusterPressEvent) -> Unit`.
28
+ * This can be passed around between C++ and Java/Kotlin.
29
+ */
30
+ struct JFunc_void_ClusterPressEvent: public jni::JavaClass<JFunc_void_ClusterPressEvent> {
31
+ public:
32
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void_ClusterPressEvent;";
33
+
34
+ public:
35
+ /**
36
+ * Invokes the function this `JFunc_void_ClusterPressEvent` instance holds through JNI.
37
+ */
38
+ void invoke(const ClusterPressEvent& event) const {
39
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JClusterPressEvent> /* event */)>("invoke");
40
+ method(self(), JClusterPressEvent::fromCpp(event));
41
+ }
42
+ };
43
+
44
+ /**
45
+ * An implementation of Func_void_ClusterPressEvent that is backed by a C++ implementation (using `std::function<...>`)
46
+ */
47
+ class JFunc_void_ClusterPressEvent_cxx final: public jni::HybridClass<JFunc_void_ClusterPressEvent_cxx, JFunc_void_ClusterPressEvent> {
48
+ public:
49
+ static jni::local_ref<JFunc_void_ClusterPressEvent::javaobject> fromCpp(const std::function<void(const ClusterPressEvent& /* event */)>& func) {
50
+ return JFunc_void_ClusterPressEvent_cxx::newObjectCxxArgs(func);
51
+ }
52
+
53
+ public:
54
+ /**
55
+ * Invokes the C++ `std::function<...>` this `JFunc_void_ClusterPressEvent_cxx` instance holds.
56
+ */
57
+ void invoke_cxx(jni::alias_ref<JClusterPressEvent> event) {
58
+ _func(event->toCpp());
59
+ }
60
+
61
+ public:
62
+ [[nodiscard]]
63
+ inline const std::function<void(const ClusterPressEvent& /* event */)>& getFunction() const {
64
+ return _func;
65
+ }
66
+
67
+ public:
68
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void_ClusterPressEvent_cxx;";
69
+ static void registerNatives() {
70
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_ClusterPressEvent_cxx::invoke_cxx)});
71
+ }
72
+
73
+ private:
74
+ explicit JFunc_void_ClusterPressEvent_cxx(const std::function<void(const ClusterPressEvent& /* event */)>& func): _func(func) { }
75
+
76
+ private:
77
+ friend HybridBase;
78
+ std::function<void(const ClusterPressEvent& /* event */)> _func;
79
+ };
80
+
81
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,78 @@
1
+ ///
2
+ /// JFunc_void_MapError.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "MapError.hpp"
14
+ #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
16
+ #include "JMapError.hpp"
17
+ #include <string>
18
+
19
+ namespace margelo::nitro::nitromap {
20
+
21
+ using namespace facebook;
22
+
23
+ /**
24
+ * Represents the Java/Kotlin callback `(error: MapError) -> Unit`.
25
+ * This can be passed around between C++ and Java/Kotlin.
26
+ */
27
+ struct JFunc_void_MapError: public jni::JavaClass<JFunc_void_MapError> {
28
+ public:
29
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void_MapError;";
30
+
31
+ public:
32
+ /**
33
+ * Invokes the function this `JFunc_void_MapError` instance holds through JNI.
34
+ */
35
+ void invoke(const MapError& error) const {
36
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JMapError> /* error */)>("invoke");
37
+ method(self(), JMapError::fromCpp(error));
38
+ }
39
+ };
40
+
41
+ /**
42
+ * An implementation of Func_void_MapError that is backed by a C++ implementation (using `std::function<...>`)
43
+ */
44
+ class JFunc_void_MapError_cxx final: public jni::HybridClass<JFunc_void_MapError_cxx, JFunc_void_MapError> {
45
+ public:
46
+ static jni::local_ref<JFunc_void_MapError::javaobject> fromCpp(const std::function<void(const MapError& /* error */)>& func) {
47
+ return JFunc_void_MapError_cxx::newObjectCxxArgs(func);
48
+ }
49
+
50
+ public:
51
+ /**
52
+ * Invokes the C++ `std::function<...>` this `JFunc_void_MapError_cxx` instance holds.
53
+ */
54
+ void invoke_cxx(jni::alias_ref<JMapError> error) {
55
+ _func(error->toCpp());
56
+ }
57
+
58
+ public:
59
+ [[nodiscard]]
60
+ inline const std::function<void(const MapError& /* error */)>& getFunction() const {
61
+ return _func;
62
+ }
63
+
64
+ public:
65
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void_MapError_cxx;";
66
+ static void registerNatives() {
67
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_MapError_cxx::invoke_cxx)});
68
+ }
69
+
70
+ private:
71
+ explicit JFunc_void_MapError_cxx(const std::function<void(const MapError& /* error */)>& func): _func(func) { }
72
+
73
+ private:
74
+ friend HybridBase;
75
+ std::function<void(const MapError& /* error */)> _func;
76
+ };
77
+
78
+ } // namespace margelo::nitro::nitromap
@@ -0,0 +1,81 @@
1
+ ///
2
+ /// JFunc_void_MapPressEvent.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "MapPressEvent.hpp"
14
+ #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
16
+ #include "JMapPressEvent.hpp"
17
+ #include "Coordinate.hpp"
18
+ #include "JCoordinate.hpp"
19
+ #include "Point.hpp"
20
+ #include "JPoint.hpp"
21
+
22
+ namespace margelo::nitro::nitromap {
23
+
24
+ using namespace facebook;
25
+
26
+ /**
27
+ * Represents the Java/Kotlin callback `(event: MapPressEvent) -> Unit`.
28
+ * This can be passed around between C++ and Java/Kotlin.
29
+ */
30
+ struct JFunc_void_MapPressEvent: public jni::JavaClass<JFunc_void_MapPressEvent> {
31
+ public:
32
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void_MapPressEvent;";
33
+
34
+ public:
35
+ /**
36
+ * Invokes the function this `JFunc_void_MapPressEvent` instance holds through JNI.
37
+ */
38
+ void invoke(const MapPressEvent& event) const {
39
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JMapPressEvent> /* event */)>("invoke");
40
+ method(self(), JMapPressEvent::fromCpp(event));
41
+ }
42
+ };
43
+
44
+ /**
45
+ * An implementation of Func_void_MapPressEvent that is backed by a C++ implementation (using `std::function<...>`)
46
+ */
47
+ class JFunc_void_MapPressEvent_cxx final: public jni::HybridClass<JFunc_void_MapPressEvent_cxx, JFunc_void_MapPressEvent> {
48
+ public:
49
+ static jni::local_ref<JFunc_void_MapPressEvent::javaobject> fromCpp(const std::function<void(const MapPressEvent& /* event */)>& func) {
50
+ return JFunc_void_MapPressEvent_cxx::newObjectCxxArgs(func);
51
+ }
52
+
53
+ public:
54
+ /**
55
+ * Invokes the C++ `std::function<...>` this `JFunc_void_MapPressEvent_cxx` instance holds.
56
+ */
57
+ void invoke_cxx(jni::alias_ref<JMapPressEvent> event) {
58
+ _func(event->toCpp());
59
+ }
60
+
61
+ public:
62
+ [[nodiscard]]
63
+ inline const std::function<void(const MapPressEvent& /* event */)>& getFunction() const {
64
+ return _func;
65
+ }
66
+
67
+ public:
68
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitromap/Func_void_MapPressEvent_cxx;";
69
+ static void registerNatives() {
70
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_MapPressEvent_cxx::invoke_cxx)});
71
+ }
72
+
73
+ private:
74
+ explicit JFunc_void_MapPressEvent_cxx(const std::function<void(const MapPressEvent& /* event */)>& func): _func(func) { }
75
+
76
+ private:
77
+ friend HybridBase;
78
+ std::function<void(const MapPressEvent& /* event */)> _func;
79
+ };
80
+
81
+ } // namespace margelo::nitro::nitromap