@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,374 @@
1
+ ///
2
+ /// PriceMarkerStyle.swift
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
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * Represents an instance of `PriceMarkerStyle`, backed by a C++ struct.
13
+ */
14
+ public typealias PriceMarkerStyle = margelo.nitro.nitromap.PriceMarkerStyle
15
+
16
+ public extension PriceMarkerStyle {
17
+ private typealias bridge = margelo.nitro.nitromap.bridge.swift
18
+
19
+ /**
20
+ * Create a new instance of `PriceMarkerStyle`.
21
+ */
22
+ init(price: String, currency: String, selected: Bool, backgroundColor: Variant_String_MarkerColor?, selectedBackgroundColor: Variant_String_MarkerColor?, textColor: Variant_String_MarkerColor?, selectedTextColor: Variant_String_MarkerColor?, fontSize: Double?, paddingHorizontal: Double?, paddingVertical: Double?, shadowOpacity: Double?) {
23
+ self.init(std.string(price), std.string(currency), selected, { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
24
+ if let __unwrappedValue = backgroundColor {
25
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
26
+ switch __unwrappedValue {
27
+ case .first(let __value):
28
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
29
+ case .second(let __value):
30
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
31
+ }
32
+ }().variant)
33
+ } else {
34
+ return .init()
35
+ }
36
+ }(), { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
37
+ if let __unwrappedValue = selectedBackgroundColor {
38
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
39
+ switch __unwrappedValue {
40
+ case .first(let __value):
41
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
42
+ case .second(let __value):
43
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
44
+ }
45
+ }().variant)
46
+ } else {
47
+ return .init()
48
+ }
49
+ }(), { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
50
+ if let __unwrappedValue = textColor {
51
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
52
+ switch __unwrappedValue {
53
+ case .first(let __value):
54
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
55
+ case .second(let __value):
56
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
57
+ }
58
+ }().variant)
59
+ } else {
60
+ return .init()
61
+ }
62
+ }(), { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
63
+ if let __unwrappedValue = selectedTextColor {
64
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
65
+ switch __unwrappedValue {
66
+ case .first(let __value):
67
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
68
+ case .second(let __value):
69
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
70
+ }
71
+ }().variant)
72
+ } else {
73
+ return .init()
74
+ }
75
+ }(), { () -> bridge.std__optional_double_ in
76
+ if let __unwrappedValue = fontSize {
77
+ return bridge.create_std__optional_double_(__unwrappedValue)
78
+ } else {
79
+ return .init()
80
+ }
81
+ }(), { () -> bridge.std__optional_double_ in
82
+ if let __unwrappedValue = paddingHorizontal {
83
+ return bridge.create_std__optional_double_(__unwrappedValue)
84
+ } else {
85
+ return .init()
86
+ }
87
+ }(), { () -> bridge.std__optional_double_ in
88
+ if let __unwrappedValue = paddingVertical {
89
+ return bridge.create_std__optional_double_(__unwrappedValue)
90
+ } else {
91
+ return .init()
92
+ }
93
+ }(), { () -> bridge.std__optional_double_ in
94
+ if let __unwrappedValue = shadowOpacity {
95
+ return bridge.create_std__optional_double_(__unwrappedValue)
96
+ } else {
97
+ return .init()
98
+ }
99
+ }())
100
+ }
101
+
102
+ var price: String {
103
+ @inline(__always)
104
+ get {
105
+ return String(self.__price)
106
+ }
107
+ @inline(__always)
108
+ set {
109
+ self.__price = std.string(newValue)
110
+ }
111
+ }
112
+
113
+ var currency: String {
114
+ @inline(__always)
115
+ get {
116
+ return String(self.__currency)
117
+ }
118
+ @inline(__always)
119
+ set {
120
+ self.__currency = std.string(newValue)
121
+ }
122
+ }
123
+
124
+ var selected: Bool {
125
+ @inline(__always)
126
+ get {
127
+ return self.__selected
128
+ }
129
+ @inline(__always)
130
+ set {
131
+ self.__selected = newValue
132
+ }
133
+ }
134
+
135
+ var backgroundColor: Variant_String_MarkerColor? {
136
+ @inline(__always)
137
+ get {
138
+ return { () -> Variant_String_MarkerColor? in
139
+ if bridge.has_value_std__optional_std__variant_std__string__MarkerColor__(self.__backgroundColor) {
140
+ let __unwrapped = bridge.get_std__optional_std__variant_std__string__MarkerColor__(self.__backgroundColor)
141
+ return { () -> Variant_String_MarkerColor in
142
+ let __variant = bridge.std__variant_std__string__MarkerColor_(__unwrapped)
143
+ switch __variant.index() {
144
+ case 0:
145
+ let __actual = __variant.get_0()
146
+ return .first(String(__actual))
147
+ case 1:
148
+ let __actual = __variant.get_1()
149
+ return .second(__actual)
150
+ default:
151
+ fatalError("Variant can never have index \(__variant.index())!")
152
+ }
153
+ }()
154
+ } else {
155
+ return nil
156
+ }
157
+ }()
158
+ }
159
+ @inline(__always)
160
+ set {
161
+ self.__backgroundColor = { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
162
+ if let __unwrappedValue = newValue {
163
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
164
+ switch __unwrappedValue {
165
+ case .first(let __value):
166
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
167
+ case .second(let __value):
168
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
169
+ }
170
+ }().variant)
171
+ } else {
172
+ return .init()
173
+ }
174
+ }()
175
+ }
176
+ }
177
+
178
+ var selectedBackgroundColor: Variant_String_MarkerColor? {
179
+ @inline(__always)
180
+ get {
181
+ return { () -> Variant_String_MarkerColor? in
182
+ if bridge.has_value_std__optional_std__variant_std__string__MarkerColor__(self.__selectedBackgroundColor) {
183
+ let __unwrapped = bridge.get_std__optional_std__variant_std__string__MarkerColor__(self.__selectedBackgroundColor)
184
+ return { () -> Variant_String_MarkerColor in
185
+ let __variant = bridge.std__variant_std__string__MarkerColor_(__unwrapped)
186
+ switch __variant.index() {
187
+ case 0:
188
+ let __actual = __variant.get_0()
189
+ return .first(String(__actual))
190
+ case 1:
191
+ let __actual = __variant.get_1()
192
+ return .second(__actual)
193
+ default:
194
+ fatalError("Variant can never have index \(__variant.index())!")
195
+ }
196
+ }()
197
+ } else {
198
+ return nil
199
+ }
200
+ }()
201
+ }
202
+ @inline(__always)
203
+ set {
204
+ self.__selectedBackgroundColor = { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
205
+ if let __unwrappedValue = newValue {
206
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
207
+ switch __unwrappedValue {
208
+ case .first(let __value):
209
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
210
+ case .second(let __value):
211
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
212
+ }
213
+ }().variant)
214
+ } else {
215
+ return .init()
216
+ }
217
+ }()
218
+ }
219
+ }
220
+
221
+ var textColor: Variant_String_MarkerColor? {
222
+ @inline(__always)
223
+ get {
224
+ return { () -> Variant_String_MarkerColor? in
225
+ if bridge.has_value_std__optional_std__variant_std__string__MarkerColor__(self.__textColor) {
226
+ let __unwrapped = bridge.get_std__optional_std__variant_std__string__MarkerColor__(self.__textColor)
227
+ return { () -> Variant_String_MarkerColor in
228
+ let __variant = bridge.std__variant_std__string__MarkerColor_(__unwrapped)
229
+ switch __variant.index() {
230
+ case 0:
231
+ let __actual = __variant.get_0()
232
+ return .first(String(__actual))
233
+ case 1:
234
+ let __actual = __variant.get_1()
235
+ return .second(__actual)
236
+ default:
237
+ fatalError("Variant can never have index \(__variant.index())!")
238
+ }
239
+ }()
240
+ } else {
241
+ return nil
242
+ }
243
+ }()
244
+ }
245
+ @inline(__always)
246
+ set {
247
+ self.__textColor = { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
248
+ if let __unwrappedValue = newValue {
249
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
250
+ switch __unwrappedValue {
251
+ case .first(let __value):
252
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
253
+ case .second(let __value):
254
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
255
+ }
256
+ }().variant)
257
+ } else {
258
+ return .init()
259
+ }
260
+ }()
261
+ }
262
+ }
263
+
264
+ var selectedTextColor: Variant_String_MarkerColor? {
265
+ @inline(__always)
266
+ get {
267
+ return { () -> Variant_String_MarkerColor? in
268
+ if bridge.has_value_std__optional_std__variant_std__string__MarkerColor__(self.__selectedTextColor) {
269
+ let __unwrapped = bridge.get_std__optional_std__variant_std__string__MarkerColor__(self.__selectedTextColor)
270
+ return { () -> Variant_String_MarkerColor in
271
+ let __variant = bridge.std__variant_std__string__MarkerColor_(__unwrapped)
272
+ switch __variant.index() {
273
+ case 0:
274
+ let __actual = __variant.get_0()
275
+ return .first(String(__actual))
276
+ case 1:
277
+ let __actual = __variant.get_1()
278
+ return .second(__actual)
279
+ default:
280
+ fatalError("Variant can never have index \(__variant.index())!")
281
+ }
282
+ }()
283
+ } else {
284
+ return nil
285
+ }
286
+ }()
287
+ }
288
+ @inline(__always)
289
+ set {
290
+ self.__selectedTextColor = { () -> bridge.std__optional_std__variant_std__string__MarkerColor__ in
291
+ if let __unwrappedValue = newValue {
292
+ return bridge.create_std__optional_std__variant_std__string__MarkerColor__({ () -> bridge.std__variant_std__string__MarkerColor_ in
293
+ switch __unwrappedValue {
294
+ case .first(let __value):
295
+ return bridge.create_std__variant_std__string__MarkerColor_(std.string(__value))
296
+ case .second(let __value):
297
+ return bridge.create_std__variant_std__string__MarkerColor_(__value)
298
+ }
299
+ }().variant)
300
+ } else {
301
+ return .init()
302
+ }
303
+ }()
304
+ }
305
+ }
306
+
307
+ var fontSize: Double? {
308
+ @inline(__always)
309
+ get {
310
+ return self.__fontSize.value
311
+ }
312
+ @inline(__always)
313
+ set {
314
+ self.__fontSize = { () -> bridge.std__optional_double_ in
315
+ if let __unwrappedValue = newValue {
316
+ return bridge.create_std__optional_double_(__unwrappedValue)
317
+ } else {
318
+ return .init()
319
+ }
320
+ }()
321
+ }
322
+ }
323
+
324
+ var paddingHorizontal: Double? {
325
+ @inline(__always)
326
+ get {
327
+ return self.__paddingHorizontal.value
328
+ }
329
+ @inline(__always)
330
+ set {
331
+ self.__paddingHorizontal = { () -> bridge.std__optional_double_ in
332
+ if let __unwrappedValue = newValue {
333
+ return bridge.create_std__optional_double_(__unwrappedValue)
334
+ } else {
335
+ return .init()
336
+ }
337
+ }()
338
+ }
339
+ }
340
+
341
+ var paddingVertical: Double? {
342
+ @inline(__always)
343
+ get {
344
+ return self.__paddingVertical.value
345
+ }
346
+ @inline(__always)
347
+ set {
348
+ self.__paddingVertical = { () -> bridge.std__optional_double_ in
349
+ if let __unwrappedValue = newValue {
350
+ return bridge.create_std__optional_double_(__unwrappedValue)
351
+ } else {
352
+ return .init()
353
+ }
354
+ }()
355
+ }
356
+ }
357
+
358
+ var shadowOpacity: Double? {
359
+ @inline(__always)
360
+ get {
361
+ return self.__shadowOpacity.value
362
+ }
363
+ @inline(__always)
364
+ set {
365
+ self.__shadowOpacity = { () -> bridge.std__optional_double_ in
366
+ if let __unwrappedValue = newValue {
367
+ return bridge.create_std__optional_double_(__unwrappedValue)
368
+ } else {
369
+ return .init()
370
+ }
371
+ }()
372
+ }
373
+ }
374
+ }
@@ -0,0 +1,69 @@
1
+ ///
2
+ /// Region.swift
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
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * Represents an instance of `Region`, backed by a C++ struct.
13
+ */
14
+ public typealias Region = margelo.nitro.nitromap.Region
15
+
16
+ public extension Region {
17
+ private typealias bridge = margelo.nitro.nitromap.bridge.swift
18
+
19
+ /**
20
+ * Create a new instance of `Region`.
21
+ */
22
+ init(latitude: Double, longitude: Double, latitudeDelta: Double, longitudeDelta: Double) {
23
+ self.init(latitude, longitude, latitudeDelta, longitudeDelta)
24
+ }
25
+
26
+ var latitude: Double {
27
+ @inline(__always)
28
+ get {
29
+ return self.__latitude
30
+ }
31
+ @inline(__always)
32
+ set {
33
+ self.__latitude = newValue
34
+ }
35
+ }
36
+
37
+ var longitude: Double {
38
+ @inline(__always)
39
+ get {
40
+ return self.__longitude
41
+ }
42
+ @inline(__always)
43
+ set {
44
+ self.__longitude = newValue
45
+ }
46
+ }
47
+
48
+ var latitudeDelta: Double {
49
+ @inline(__always)
50
+ get {
51
+ return self.__latitudeDelta
52
+ }
53
+ @inline(__always)
54
+ set {
55
+ self.__latitudeDelta = newValue
56
+ }
57
+ }
58
+
59
+ var longitudeDelta: Double {
60
+ @inline(__always)
61
+ get {
62
+ return self.__longitudeDelta
63
+ }
64
+ @inline(__always)
65
+ set {
66
+ self.__longitudeDelta = newValue
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,47 @@
1
+ ///
2
+ /// RegionChangeEvent.swift
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
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * Represents an instance of `RegionChangeEvent`, backed by a C++ struct.
13
+ */
14
+ public typealias RegionChangeEvent = margelo.nitro.nitromap.RegionChangeEvent
15
+
16
+ public extension RegionChangeEvent {
17
+ private typealias bridge = margelo.nitro.nitromap.bridge.swift
18
+
19
+ /**
20
+ * Create a new instance of `RegionChangeEvent`.
21
+ */
22
+ init(region: Region, isGesture: Bool) {
23
+ self.init(region, isGesture)
24
+ }
25
+
26
+ var region: Region {
27
+ @inline(__always)
28
+ get {
29
+ return self.__region
30
+ }
31
+ @inline(__always)
32
+ set {
33
+ self.__region = newValue
34
+ }
35
+ }
36
+
37
+ var isGesture: Bool {
38
+ @inline(__always)
39
+ get {
40
+ return self.__isGesture
41
+ }
42
+ @inline(__always)
43
+ set {
44
+ self.__isGesture = newValue
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,18 @@
1
+ ///
2
+ /// Variant_String_MarkerColor.swift
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
+
9
+
10
+ /**
11
+ * An Swift enum with associated values representing a Variant/Union type.
12
+ * JS type: `string | struct`
13
+ */
14
+ @frozen
15
+ public indirect enum Variant_String_MarkerColor {
16
+ case first(String)
17
+ case second(MarkerColor)
18
+ }
@@ -0,0 +1,92 @@
1
+ ///
2
+ /// Camera.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ // Forward declaration of `Coordinate` to properly resolve imports.
27
+ namespace margelo::nitro::nitromap { struct Coordinate; }
28
+
29
+ #include "Coordinate.hpp"
30
+
31
+ namespace margelo::nitro::nitromap {
32
+
33
+ /**
34
+ * A struct which can be represented as a JavaScript object (Camera).
35
+ */
36
+ struct Camera {
37
+ public:
38
+ Coordinate center SWIFT_PRIVATE;
39
+ double pitch SWIFT_PRIVATE;
40
+ double heading SWIFT_PRIVATE;
41
+ double altitude SWIFT_PRIVATE;
42
+ double zoom SWIFT_PRIVATE;
43
+
44
+ public:
45
+ Camera() = default;
46
+ explicit Camera(Coordinate center, double pitch, double heading, double altitude, double zoom): center(center), pitch(pitch), heading(heading), altitude(altitude), zoom(zoom) {}
47
+ };
48
+
49
+ } // namespace margelo::nitro::nitromap
50
+
51
+ namespace margelo::nitro {
52
+
53
+ // C++ Camera <> JS Camera (object)
54
+ template <>
55
+ struct JSIConverter<margelo::nitro::nitromap::Camera> final {
56
+ static inline margelo::nitro::nitromap::Camera fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
57
+ jsi::Object obj = arg.asObject(runtime);
58
+ return margelo::nitro::nitromap::Camera(
59
+ JSIConverter<margelo::nitro::nitromap::Coordinate>::fromJSI(runtime, obj.getProperty(runtime, "center")),
60
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "pitch")),
61
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "heading")),
62
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "altitude")),
63
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, "zoom"))
64
+ );
65
+ }
66
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitromap::Camera& arg) {
67
+ jsi::Object obj(runtime);
68
+ obj.setProperty(runtime, "center", JSIConverter<margelo::nitro::nitromap::Coordinate>::toJSI(runtime, arg.center));
69
+ obj.setProperty(runtime, "pitch", JSIConverter<double>::toJSI(runtime, arg.pitch));
70
+ obj.setProperty(runtime, "heading", JSIConverter<double>::toJSI(runtime, arg.heading));
71
+ obj.setProperty(runtime, "altitude", JSIConverter<double>::toJSI(runtime, arg.altitude));
72
+ obj.setProperty(runtime, "zoom", JSIConverter<double>::toJSI(runtime, arg.zoom));
73
+ return obj;
74
+ }
75
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
76
+ if (!value.isObject()) {
77
+ return false;
78
+ }
79
+ jsi::Object obj = value.getObject(runtime);
80
+ if (!nitro::isPlainObject(runtime, obj)) {
81
+ return false;
82
+ }
83
+ if (!JSIConverter<margelo::nitro::nitromap::Coordinate>::canConvert(runtime, obj.getProperty(runtime, "center"))) return false;
84
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "pitch"))) return false;
85
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "heading"))) return false;
86
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "altitude"))) return false;
87
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, "zoom"))) return false;
88
+ return true;
89
+ }
90
+ };
91
+
92
+ } // namespace margelo::nitro
@@ -0,0 +1,88 @@
1
+ ///
2
+ /// ClusterAnimationStyle.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
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::nitromap {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (ClusterAnimationStyle).
30
+ */
31
+ enum class ClusterAnimationStyle {
32
+ DEFAULT SWIFT_NAME(default) = 0,
33
+ BOUNCE SWIFT_NAME(bounce) = 1,
34
+ SCALE SWIFT_NAME(scale) = 2,
35
+ FADE SWIFT_NAME(fade) = 3,
36
+ SPRING SWIFT_NAME(spring) = 4,
37
+ } CLOSED_ENUM;
38
+
39
+ } // namespace margelo::nitro::nitromap
40
+
41
+ namespace margelo::nitro {
42
+
43
+ // C++ ClusterAnimationStyle <> JS ClusterAnimationStyle (union)
44
+ template <>
45
+ struct JSIConverter<margelo::nitro::nitromap::ClusterAnimationStyle> final {
46
+ static inline margelo::nitro::nitromap::ClusterAnimationStyle fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
47
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
48
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
49
+ case hashString("default"): return margelo::nitro::nitromap::ClusterAnimationStyle::DEFAULT;
50
+ case hashString("bounce"): return margelo::nitro::nitromap::ClusterAnimationStyle::BOUNCE;
51
+ case hashString("scale"): return margelo::nitro::nitromap::ClusterAnimationStyle::SCALE;
52
+ case hashString("fade"): return margelo::nitro::nitromap::ClusterAnimationStyle::FADE;
53
+ case hashString("spring"): return margelo::nitro::nitromap::ClusterAnimationStyle::SPRING;
54
+ default: [[unlikely]]
55
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum ClusterAnimationStyle - invalid value!");
56
+ }
57
+ }
58
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::nitromap::ClusterAnimationStyle arg) {
59
+ switch (arg) {
60
+ case margelo::nitro::nitromap::ClusterAnimationStyle::DEFAULT: return JSIConverter<std::string>::toJSI(runtime, "default");
61
+ case margelo::nitro::nitromap::ClusterAnimationStyle::BOUNCE: return JSIConverter<std::string>::toJSI(runtime, "bounce");
62
+ case margelo::nitro::nitromap::ClusterAnimationStyle::SCALE: return JSIConverter<std::string>::toJSI(runtime, "scale");
63
+ case margelo::nitro::nitromap::ClusterAnimationStyle::FADE: return JSIConverter<std::string>::toJSI(runtime, "fade");
64
+ case margelo::nitro::nitromap::ClusterAnimationStyle::SPRING: return JSIConverter<std::string>::toJSI(runtime, "spring");
65
+ default: [[unlikely]]
66
+ throw std::invalid_argument("Cannot convert ClusterAnimationStyle to JS - invalid value: "
67
+ + std::to_string(static_cast<int>(arg)) + "!");
68
+ }
69
+ }
70
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
71
+ if (!value.isString()) {
72
+ return false;
73
+ }
74
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
75
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
76
+ case hashString("default"):
77
+ case hashString("bounce"):
78
+ case hashString("scale"):
79
+ case hashString("fade"):
80
+ case hashString("spring"):
81
+ return true;
82
+ default:
83
+ return false;
84
+ }
85
+ }
86
+ };
87
+
88
+ } // namespace margelo::nitro