@rnmapbox/maps 10.1.0 → 10.1.2

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 (661) hide show
  1. package/CHANGELOG.md +9 -5
  2. package/README.md +5 -31
  3. package/android/build.gradle +6 -2
  4. package/android/install.md +5 -21
  5. package/android/src/main/AndroidManifest.xml +1 -1
  6. package/android/src/main/java/com/rnmapbox/rnmbx/RNMBXPackage.kt +76 -12
  7. package/android/src/main/java/com/rnmapbox/rnmbx/components/AbstractEvent.kt +24 -0
  8. package/android/src/main/java/com/rnmapbox/rnmbx/components/AbstractEventEmitter.kt +5 -0
  9. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerView.kt +17 -6
  10. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerViewContent.kt +31 -0
  11. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerViewContentManager.kt +23 -0
  12. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerViewManager.kt +8 -9
  13. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotation.kt +33 -35
  14. package/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationManager.kt +8 -7
  15. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXCamera.kt +4 -4
  16. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXVIewportManager.kt +55 -0
  17. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXViewport.kt +408 -0
  18. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXViewportModule.kt +66 -0
  19. package/android/src/main/java/com/rnmapbox/rnmbx/components/images/ImageManager.kt +53 -0
  20. package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImages.kt +2 -1
  21. package/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt +31 -6
  22. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/LocationComponentManager.kt +78 -47
  23. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXCustomLocationProvider.kt +114 -0
  24. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXCustomLocationProviderManager.kt +54 -0
  25. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocation.kt +246 -25
  26. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocationManager.kt +90 -7
  27. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/NativeMapViewModule.kt +1 -8
  28. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt +185 -114
  29. package/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt +16 -8
  30. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyle.kt +1 -1
  31. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleFactory.kt +1184 -109
  32. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXCircleLayerManager.kt +8 -0
  33. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXFillLayerManager.kt +12 -5
  34. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXHeatmapLayerManager.kt +7 -0
  35. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLayer.kt +25 -6
  36. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXLineLayerManager.kt +7 -0
  37. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXModelLayer.kt +33 -0
  38. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXModelLayerManager.kt +85 -0
  39. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterLayer.kt +4 -0
  40. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXRasterLayerManager.kt +8 -2
  41. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/RNMBXSymbolLayerManager.kt +8 -0
  42. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/layers/codeparts/LayerManagerCommonProps.codepart-kt.ejs +59 -0
  43. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/model/RNMBXModels.kt +33 -0
  44. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/model/RNMBXModelsManager.kt +59 -0
  45. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSource.kt +56 -6
  46. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt +7 -5
  47. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSource.kt +1 -1
  48. package/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXVectorSourceManager.kt +5 -4
  49. package/android/src/main/java/com/rnmapbox/rnmbx/events/AndroidCallbackEvent.java +1 -1
  50. package/android/src/main/java/com/rnmapbox/rnmbx/events/FeatureClickEvent.java +3 -3
  51. package/android/src/main/java/com/rnmapbox/rnmbx/events/IEvent.kt +1 -4
  52. package/android/src/main/java/com/rnmapbox/rnmbx/events/ImageMissingEvent.java +1 -1
  53. package/android/src/main/java/com/rnmapbox/rnmbx/events/LocationEvent.kt +1 -1
  54. package/android/src/main/java/com/rnmapbox/rnmbx/events/MapChangeEvent.kt +1 -1
  55. package/android/src/main/java/com/rnmapbox/rnmbx/events/MapClickEvent.java +2 -2
  56. package/android/src/main/java/com/rnmapbox/rnmbx/events/MapUserTrackingModeEvent.kt +4 -4
  57. package/android/src/main/java/com/rnmapbox/rnmbx/events/PointAnnotationClickEvent.java +1 -1
  58. package/android/src/main/java/com/rnmapbox/rnmbx/events/PointAnnotationDragEvent.java +3 -3
  59. package/android/src/main/java/com/rnmapbox/rnmbx/events/constants/EventKeys.kt +44 -0
  60. package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXModule.kt +18 -1
  61. package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXOfflineModule.kt +4 -1
  62. package/android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXOfflineModuleLegacy.kt +444 -0
  63. package/android/src/main/java/com/rnmapbox/rnmbx/shape_animators/RNMBXMovePointShapeAnimatorModule.kt +55 -0
  64. package/android/src/main/java/com/rnmapbox/rnmbx/shape_animators/ShapeAnimatorCommon.kt +110 -0
  65. package/android/src/main/java/com/rnmapbox/rnmbx/utils/BitmapUtils.kt +3 -0
  66. package/android/src/main/java/com/rnmapbox/rnmbx/utils/DownloadMapImageTask.kt +5 -2
  67. package/android/src/main/java/com/rnmapbox/rnmbx/utils/GeoJSONUtils.kt +5 -0
  68. package/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableArray.kt +21 -1
  69. package/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableMap.kt +111 -0
  70. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Annotation.kt +33 -1
  71. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Cancelable.kt +15 -0
  72. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Image.kt +17 -1
  73. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Layer.kt +7 -0
  74. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/Location.kt +6 -9
  75. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/MapboxMap.kt +11 -0
  76. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/OfflineManager.kt +6 -0
  77. package/android/src/main/mapbox-v11-compat/v10/com/rnmapbox/rnmbx/v11compat/StyleFactory.kt +395 -0
  78. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Annotation.kt +29 -1
  79. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Cancelable.kt +3 -0
  80. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Image.kt +21 -1
  81. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Layer.kt +3 -0
  82. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/Location.kt +2 -2
  83. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/MapboxMap.kt +5 -0
  84. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/OfflineManager.kt +4 -0
  85. package/android/src/main/mapbox-v11-compat/v11/com/rnmapbox/rnmbx/v11compat/StyleFactory.kt +8 -0
  86. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCircleLayerManagerDelegate.java +9 -6
  87. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCircleLayerManagerInterface.java +3 -2
  88. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCustomLocationProviderManagerDelegate.java +35 -0
  89. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXCustomLocationProviderManagerInterface.java +18 -0
  90. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXFillLayerManagerDelegate.java +9 -6
  91. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXFillLayerManagerInterface.java +3 -2
  92. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXHeatmapLayerManagerDelegate.java +9 -6
  93. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXHeatmapLayerManagerInterface.java +3 -2
  94. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLineLayerManagerDelegate.java +9 -6
  95. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXLineLayerManagerInterface.java +3 -2
  96. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMapViewManagerDelegate.java +3 -0
  97. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMapViewManagerInterface.java +1 -0
  98. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewContentManagerDelegate.java +25 -0
  99. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewContentManagerInterface.java +16 -0
  100. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewManagerDelegate.java +3 -0
  101. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXMarkerViewManagerInterface.java +1 -0
  102. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelLayerManagerDelegate.java +65 -0
  103. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelLayerManagerInterface.java +28 -0
  104. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerDelegate.java +32 -0
  105. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXModelsManagerInterface.java +17 -0
  106. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerDelegate.java +23 -2
  107. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerInterface.java +8 -1
  108. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterLayerManagerDelegate.java +9 -6
  109. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXRasterLayerManagerInterface.java +3 -2
  110. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXSymbolLayerManagerDelegate.java +9 -6
  111. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXSymbolLayerManagerInterface.java +3 -2
  112. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXViewportManagerDelegate.java +35 -0
  113. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXViewportManagerInterface.java +18 -0
  114. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXMovePointShapeAnimatorModuleSpec.java +44 -0
  115. package/android/src/main/old-arch/com/rnmapbox/rnmbx/NativeRNMBXViewportModuleSpec.java +49 -0
  116. package/ios/RNMBX/CommonLayerProperties.H +2 -0
  117. package/ios/RNMBX/CustomHttpHeaders.swift +2 -9
  118. package/ios/RNMBX/ImageManager.swift +41 -0
  119. package/ios/RNMBX/RNMBXCamera.swift +4 -4
  120. package/ios/RNMBX/RNMBXCustomLocationProvider.swift +274 -0
  121. package/ios/RNMBX/RNMBXCustomLocationProviderComponentView.h +15 -0
  122. package/ios/RNMBX/RNMBXCustomLocationProviderComponentView.mm +67 -0
  123. package/ios/RNMBX/RNMBXCustomLocationProviderVIewManager.swift +13 -0
  124. package/ios/RNMBX/RNMBXCustomLocationProviderViewManager.m +10 -0
  125. package/ios/RNMBX/RNMBXEvent.swift +2 -0
  126. package/ios/RNMBX/RNMBXFabricPropConvert.h +47 -0
  127. package/ios/RNMBX/RNMBXFabricPropConvert.mm +136 -0
  128. package/ios/RNMBX/RNMBXImageModule.mm +2 -2
  129. package/ios/RNMBX/RNMBXImages.swift +22 -6
  130. package/ios/RNMBX/RNMBXImagesComponentView.mm +19 -1
  131. package/ios/RNMBX/RNMBXInteractiveElement.swift +1 -1
  132. package/ios/RNMBX/RNMBXLayer.swift +27 -0
  133. package/ios/RNMBX/RNMBXLocationModule.swift +25 -14
  134. package/ios/RNMBX/RNMBXLocationModuleV11.swift +81 -14
  135. package/ios/RNMBX/RNMBXLogging.swift +8 -0
  136. package/ios/RNMBX/RNMBXMapView.swift +521 -210
  137. package/ios/RNMBX/RNMBXMapViewComponentView.mm +28 -20
  138. package/ios/RNMBX/RNMBXMapViewManager.m +1 -0
  139. package/ios/RNMBX/RNMBXMapViewManager.swift +0 -1
  140. package/ios/RNMBX/RNMBXMapViewModule.mm +0 -1
  141. package/ios/RNMBX/RNMBXMarkerView.swift +11 -3
  142. package/ios/RNMBX/RNMBXMarkerViewComponentView.mm +5 -0
  143. package/ios/RNMBX/RNMBXMarkerViewContentComponentView.h +15 -0
  144. package/ios/RNMBX/RNMBXMarkerViewContentComponentView.mm +55 -0
  145. package/ios/RNMBX/RNMBXMarkerViewContentManager.m +6 -0
  146. package/ios/RNMBX/RNMBXMarkerViewContentManager.swift +14 -0
  147. package/ios/RNMBX/RNMBXMarkerViewManager.m +1 -0
  148. package/ios/RNMBX/RNMBXModelLayer.swift +59 -0
  149. package/ios/RNMBX/RNMBXModelLayerComponentView.h +15 -0
  150. package/ios/RNMBX/RNMBXModelLayerComponentView.mm +70 -0
  151. package/ios/RNMBX/RNMBXModelLayerViewManager.m +12 -0
  152. package/ios/RNMBX/RNMBXModelLayerViewManager.swift +13 -0
  153. package/ios/RNMBX/RNMBXModels.swift +63 -0
  154. package/ios/RNMBX/RNMBXModelsComponentView.h +17 -0
  155. package/ios/RNMBX/RNMBXModelsComponentView.mm +67 -0
  156. package/ios/RNMBX/RNMBXModelsManager.mm +9 -0
  157. package/ios/RNMBX/RNMBXModelsManager.swift +13 -0
  158. package/ios/RNMBX/RNMBXModule.m +1 -1
  159. package/ios/RNMBX/RNMBXModule.swift +24 -0
  160. package/ios/RNMBX/RNMBXNativeUserLocation.swift +248 -19
  161. package/ios/RNMBX/RNMBXNativeUserLocationComponentView.mm +15 -6
  162. package/ios/RNMBX/RNMBXNativeUserLocationViewManager.m +8 -0
  163. package/ios/RNMBX/RNMBXOfflineModule.m +1 -1
  164. package/ios/RNMBX/RNMBXOfflineModuleLegacy.m +33 -0
  165. package/ios/RNMBX/RNMBXOfflineModuleLegacy.swift +431 -0
  166. package/ios/RNMBX/RNMBXPointAnnotation.swift +34 -1
  167. package/ios/RNMBX/RNMBXPointAnnotationModule.mm +2 -2
  168. package/ios/RNMBX/RNMBXShapeSource.swift +54 -15
  169. package/ios/RNMBX/RNMBXStyle.swift +786 -1
  170. package/ios/RNMBX/RNMBXStyleValue.swift +56 -4
  171. package/ios/RNMBX/RNMBXUtils.swift +2 -7
  172. package/ios/RNMBX/RNMBXViewport.swift +349 -0
  173. package/ios/RNMBX/RNMBXViewportComponentView.h +17 -0
  174. package/ios/RNMBX/RNMBXViewportComponentView.mm +119 -0
  175. package/ios/RNMBX/RNMBXViewportManager.m +12 -0
  176. package/ios/RNMBX/RNMBXViewportManager.swift +38 -0
  177. package/ios/RNMBX/RNMBXViewportModule.h +18 -0
  178. package/ios/RNMBX/RNMBXViewportModule.mm +87 -0
  179. package/ios/RNMBX/ShapeAnimators/RNMBXMovePointShapeAnimatorModule.m +61 -0
  180. package/ios/RNMBX/ShapeAnimators/RNMBXMovePointShapeAnimatorModule.swift +47 -0
  181. package/ios/RNMBX/ShapeAnimators/ShapeAnimatorCommon.swift +76 -0
  182. package/ios/RNMBX/ShapeAnimators/ShapeAnimatorManager.swift +45 -0
  183. package/ios/RNMBX/Uitls/PropertyChanges.swift +57 -0
  184. package/ios/RNMBX/rnmapbox_maps-Swift.pre.h +3 -0
  185. package/ios/install.md +5 -26
  186. package/lib/commonjs/Mapbox.js +63 -0
  187. package/lib/commonjs/Mapbox.js.map +1 -1
  188. package/lib/commonjs/RNMBXModule.js +3 -1
  189. package/lib/commonjs/RNMBXModule.js.map +1 -1
  190. package/lib/commonjs/classes/AnimatedCoordinatesArray.js.map +1 -1
  191. package/lib/commonjs/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
  192. package/lib/commonjs/classes/AnimatedPoint.js.map +1 -1
  193. package/lib/commonjs/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
  194. package/lib/commonjs/classes/AnimatedShape.js.map +1 -1
  195. package/lib/commonjs/classes/index.d.js.map +1 -1
  196. package/lib/commonjs/classes/index.js.map +1 -1
  197. package/lib/commonjs/components/AbstractLayer.js +1 -1
  198. package/lib/commonjs/components/AbstractLayer.js.map +1 -1
  199. package/lib/commonjs/components/AbstractSource.js.map +1 -1
  200. package/lib/commonjs/components/Annotation.js.map +1 -1
  201. package/lib/commonjs/components/Atmosphere.js.map +1 -1
  202. package/lib/commonjs/components/BackgroundLayer.js.map +1 -1
  203. package/lib/commonjs/components/Callout.js.map +1 -1
  204. package/lib/commonjs/components/Camera.js.map +1 -1
  205. package/lib/commonjs/components/CircleLayer.js +7 -2
  206. package/lib/commonjs/components/CircleLayer.js.map +1 -1
  207. package/lib/commonjs/components/{NativeUserLocation.js → CustomLocationProvider.js} +5 -5
  208. package/lib/commonjs/components/CustomLocationProvider.js.map +1 -0
  209. package/lib/commonjs/components/FillExtrusionLayer.js.map +1 -1
  210. package/lib/commonjs/components/FillLayer.js +7 -2
  211. package/lib/commonjs/components/FillLayer.js.map +1 -1
  212. package/lib/commonjs/components/HeadingIndicator.js.map +1 -1
  213. package/lib/commonjs/components/HeatmapLayer.js +7 -2
  214. package/lib/commonjs/components/HeatmapLayer.js.map +1 -1
  215. package/lib/commonjs/components/Image.js.map +1 -1
  216. package/lib/commonjs/components/ImageSource.js.map +1 -1
  217. package/lib/commonjs/components/Images.js.map +1 -1
  218. package/lib/commonjs/components/Light.js.map +1 -1
  219. package/lib/commonjs/components/LineLayer.js +7 -2
  220. package/lib/commonjs/components/LineLayer.js.map +1 -1
  221. package/lib/commonjs/components/LocationPuck.js +66 -0
  222. package/lib/commonjs/components/LocationPuck.js.map +1 -0
  223. package/lib/commonjs/components/MapView.js +0 -8
  224. package/lib/commonjs/components/MapView.js.map +1 -1
  225. package/lib/commonjs/components/MarkerView.js +5 -3
  226. package/lib/commonjs/components/MarkerView.js.map +1 -1
  227. package/lib/commonjs/components/ModelLayer.js +37 -0
  228. package/lib/commonjs/components/ModelLayer.js.map +1 -0
  229. package/lib/commonjs/components/Models.js +43 -0
  230. package/lib/commonjs/components/Models.js.map +1 -0
  231. package/lib/commonjs/components/NativeBridgeComponent.js.map +1 -1
  232. package/lib/commonjs/components/PointAnnotation.js.map +1 -1
  233. package/lib/commonjs/components/RasterDemSource.js.map +1 -1
  234. package/lib/commonjs/components/RasterLayer.js +7 -2
  235. package/lib/commonjs/components/RasterLayer.js.map +1 -1
  236. package/lib/commonjs/components/RasterSource.js.map +1 -1
  237. package/lib/commonjs/components/ShapeSource.js.map +1 -1
  238. package/lib/commonjs/components/SkyLayer.js +2 -2
  239. package/lib/commonjs/components/SkyLayer.js.map +1 -1
  240. package/lib/commonjs/components/Style.js.map +1 -1
  241. package/lib/commonjs/components/StyleImport.js.map +1 -1
  242. package/lib/commonjs/components/SymbolLayer.js +7 -2
  243. package/lib/commonjs/components/SymbolLayer.js.map +1 -1
  244. package/lib/commonjs/components/Terrain.js.map +1 -1
  245. package/lib/commonjs/components/UserLocation.js +2 -2
  246. package/lib/commonjs/components/UserLocation.js.map +1 -1
  247. package/lib/commonjs/components/VectorSource.js.map +1 -1
  248. package/lib/commonjs/components/Viewport.js +105 -0
  249. package/lib/commonjs/components/Viewport.js.map +1 -0
  250. package/lib/commonjs/components/codeparts/LayerPropsCommon.codepart-tsx +62 -0
  251. package/lib/commonjs/global.d.js.map +1 -1
  252. package/lib/commonjs/index.js.map +1 -1
  253. package/lib/commonjs/index.web.js.map +1 -1
  254. package/lib/commonjs/modules/location/locationManager.js.map +1 -1
  255. package/lib/commonjs/modules/offline/OfflineCreatePackOptions.js.map +1 -1
  256. package/lib/commonjs/modules/offline/OfflinePack.js.map +1 -1
  257. package/lib/commonjs/modules/offline/OfflinePackLegacy.js +40 -0
  258. package/lib/commonjs/modules/offline/OfflinePackLegacy.js.map +1 -0
  259. package/lib/commonjs/modules/offline/offlineManager.js +4 -4
  260. package/lib/commonjs/modules/offline/offlineManager.js.map +1 -1
  261. package/lib/commonjs/modules/offline/offlineManagerLegacy.js +166 -0
  262. package/lib/commonjs/modules/offline/offlineManagerLegacy.js.map +1 -0
  263. package/lib/commonjs/modules/snapshot/SnapshotOptions.js.map +1 -1
  264. package/lib/commonjs/modules/snapshot/snapshotManager.js.map +1 -1
  265. package/lib/commonjs/requestAndroidLocationPermissions.js.map +1 -1
  266. package/lib/commonjs/shape_animators/MovePointShapeAnimator.js +21 -0
  267. package/lib/commonjs/shape_animators/MovePointShapeAnimator.js.map +1 -0
  268. package/lib/commonjs/shape_animators/ShapeAnimatorManager.js +15 -0
  269. package/lib/commonjs/shape_animators/ShapeAnimatorManager.js.map +1 -0
  270. package/lib/commonjs/specs/NativeMapViewModule.js.map +1 -1
  271. package/lib/commonjs/specs/NativeRNMBXImageModule.js.map +1 -1
  272. package/lib/commonjs/specs/NativeRNMBXMovePointShapeAnimatorModule.js +10 -0
  273. package/lib/commonjs/specs/NativeRNMBXMovePointShapeAnimatorModule.js.map +1 -0
  274. package/lib/commonjs/specs/NativeRNMBXPointAnnotationModule.js.map +1 -1
  275. package/lib/commonjs/specs/NativeRNMBXShapeSourceModule.js.map +1 -1
  276. package/lib/commonjs/specs/NativeRNMBXViewportModule.js +10 -0
  277. package/lib/commonjs/specs/NativeRNMBXViewportModule.js.map +1 -0
  278. package/lib/commonjs/specs/RNMBXAtmosphereNativeComponent.js.map +1 -1
  279. package/lib/commonjs/specs/RNMBXBackgroundLayerNativeComponent.js.map +1 -1
  280. package/lib/commonjs/specs/RNMBXCalloutNativeComponent.js.map +1 -1
  281. package/lib/commonjs/specs/RNMBXCameraNativeComponent.js.map +1 -1
  282. package/lib/commonjs/specs/RNMBXCircleLayerNativeComponent.js +2 -0
  283. package/lib/commonjs/specs/RNMBXCircleLayerNativeComponent.js.map +1 -1
  284. package/lib/commonjs/specs/RNMBXCustomLocationProviderNativeComponent.js +11 -0
  285. package/lib/commonjs/specs/RNMBXCustomLocationProviderNativeComponent.js.map +1 -0
  286. package/lib/commonjs/specs/RNMBXFillExtrusionLayerNativeComponent.js.map +1 -1
  287. package/lib/commonjs/specs/RNMBXFillLayerNativeComponent.js +2 -0
  288. package/lib/commonjs/specs/RNMBXFillLayerNativeComponent.js.map +1 -1
  289. package/lib/commonjs/specs/RNMBXHeatmapLayerNativeComponent.js +2 -0
  290. package/lib/commonjs/specs/RNMBXHeatmapLayerNativeComponent.js.map +1 -1
  291. package/lib/commonjs/specs/RNMBXImageNativeComponent.js.map +1 -1
  292. package/lib/commonjs/specs/RNMBXImageSourceNativeComponent.js.map +1 -1
  293. package/lib/commonjs/specs/RNMBXImagesNativeComponent.js.map +1 -1
  294. package/lib/commonjs/specs/RNMBXLightNativeComponent.js.map +1 -1
  295. package/lib/commonjs/specs/RNMBXLineLayerNativeComponent.js +2 -0
  296. package/lib/commonjs/specs/RNMBXLineLayerNativeComponent.js.map +1 -1
  297. package/lib/commonjs/specs/RNMBXMapViewNativeComponent.js.map +1 -1
  298. package/lib/commonjs/specs/RNMBXMarkerViewContentNativeComponent.js +11 -0
  299. package/lib/commonjs/specs/RNMBXMarkerViewContentNativeComponent.js.map +1 -0
  300. package/lib/commonjs/specs/RNMBXMarkerViewNativeComponent.js.map +1 -1
  301. package/lib/commonjs/specs/RNMBXModelLayerNativeComponent.js +13 -0
  302. package/lib/commonjs/specs/RNMBXModelLayerNativeComponent.js.map +1 -0
  303. package/lib/commonjs/specs/RNMBXModelsNativeComponent.js +10 -0
  304. package/lib/commonjs/specs/RNMBXModelsNativeComponent.js.map +1 -0
  305. package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js +1 -0
  306. package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
  307. package/lib/commonjs/specs/RNMBXPointAnnotationNativeComponent.js.map +1 -1
  308. package/lib/commonjs/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -1
  309. package/lib/commonjs/specs/RNMBXRasterLayerNativeComponent.js +2 -0
  310. package/lib/commonjs/specs/RNMBXRasterLayerNativeComponent.js.map +1 -1
  311. package/lib/commonjs/specs/RNMBXRasterSourceNativeComponent.js.map +1 -1
  312. package/lib/commonjs/specs/RNMBXShapeSourceNativeComponent.js.map +1 -1
  313. package/lib/commonjs/specs/RNMBXSkyLayerNativeComponent.js.map +1 -1
  314. package/lib/commonjs/specs/RNMBXStyleImportNativeComponent.js.map +1 -1
  315. package/lib/commonjs/specs/RNMBXSymbolLayerNativeComponent.js +2 -0
  316. package/lib/commonjs/specs/RNMBXSymbolLayerNativeComponent.js.map +1 -1
  317. package/lib/commonjs/specs/RNMBXTerrainNativeComponent.js.map +1 -1
  318. package/lib/commonjs/specs/RNMBXVectorSourceNativeComponent.js.map +1 -1
  319. package/lib/commonjs/specs/RNMBXViewportNativeComponent.js +36 -0
  320. package/lib/commonjs/specs/RNMBXViewportNativeComponent.js.map +1 -0
  321. package/lib/commonjs/specs/codegenUtils.js.map +1 -1
  322. package/lib/commonjs/specs/codeparts/CommonLayerNativeComponentsProps.codepart-ts +18 -0
  323. package/lib/commonjs/types/BaseProps.js.map +1 -1
  324. package/lib/commonjs/types/OnPressEvent.js.map +1 -1
  325. package/lib/commonjs/types/Position.js.map +1 -1
  326. package/lib/commonjs/types/index.js.map +1 -1
  327. package/lib/commonjs/utils/BridgeValue.js.map +1 -1
  328. package/lib/commonjs/utils/Logger.js.map +1 -1
  329. package/lib/commonjs/utils/MapboxStyles.d.js +5 -0
  330. package/lib/commonjs/utils/MapboxStyles.d.js.map +1 -1
  331. package/lib/commonjs/utils/StyleValue.js.map +1 -1
  332. package/lib/commonjs/utils/animated/Animated.js.map +1 -1
  333. package/lib/commonjs/utils/checkRequiredProps.js.map +1 -1
  334. package/lib/commonjs/utils/deprecation.js.map +1 -1
  335. package/lib/commonjs/utils/filterUtils.js.map +1 -1
  336. package/lib/commonjs/utils/geoUtils.js.map +1 -1
  337. package/lib/commonjs/utils/getAnnotationsLayerID.js.map +1 -1
  338. package/lib/commonjs/utils/index.js.map +1 -1
  339. package/lib/commonjs/utils/nativeRef.js.map +1 -1
  340. package/lib/commonjs/utils/styleMap.js +67 -2
  341. package/lib/commonjs/utils/styleMap.js.map +1 -1
  342. package/lib/commonjs/web/MapContext.js.map +1 -1
  343. package/lib/commonjs/web/MapboxModule.js.map +1 -1
  344. package/lib/commonjs/web/UnimplementedComponent.js.map +1 -1
  345. package/lib/commonjs/web/components/Camera.js.map +1 -1
  346. package/lib/commonjs/web/components/MapView.js.map +1 -1
  347. package/lib/commonjs/web/index.js.map +1 -1
  348. package/lib/commonjs/web/utils/Logger.js.map +1 -1
  349. package/lib/module/Mapbox.js +18 -0
  350. package/lib/module/Mapbox.js.map +1 -1
  351. package/lib/module/RNMBXModule.js +1 -0
  352. package/lib/module/RNMBXModule.js.map +1 -1
  353. package/lib/module/classes/AnimatedCoordinatesArray.js.map +1 -1
  354. package/lib/module/classes/AnimatedExtractCoordinateFromArray.js.map +1 -1
  355. package/lib/module/classes/AnimatedPoint.js.map +1 -1
  356. package/lib/module/classes/AnimatedRouteCoordinatesArray.js.map +1 -1
  357. package/lib/module/classes/AnimatedShape.js.map +1 -1
  358. package/lib/module/classes/index.d.js.map +1 -1
  359. package/lib/module/classes/index.js.map +1 -1
  360. package/lib/module/components/AbstractLayer.js +1 -1
  361. package/lib/module/components/AbstractLayer.js.map +1 -1
  362. package/lib/module/components/AbstractSource.js.map +1 -1
  363. package/lib/module/components/Annotation.js.map +1 -1
  364. package/lib/module/components/Atmosphere.js.map +1 -1
  365. package/lib/module/components/BackgroundLayer.js.map +1 -1
  366. package/lib/module/components/Callout.js.map +1 -1
  367. package/lib/module/components/Camera.js.map +1 -1
  368. package/lib/module/components/CircleLayer.js +7 -2
  369. package/lib/module/components/CircleLayer.js.map +1 -1
  370. package/lib/module/components/CustomLocationProvider.js +7 -0
  371. package/lib/module/components/CustomLocationProvider.js.map +1 -0
  372. package/lib/module/components/FillExtrusionLayer.js.map +1 -1
  373. package/lib/module/components/FillLayer.js +7 -2
  374. package/lib/module/components/FillLayer.js.map +1 -1
  375. package/lib/module/components/HeadingIndicator.js.map +1 -1
  376. package/lib/module/components/HeatmapLayer.js +7 -2
  377. package/lib/module/components/HeatmapLayer.js.map +1 -1
  378. package/lib/module/components/Image.js.map +1 -1
  379. package/lib/module/components/ImageSource.js.map +1 -1
  380. package/lib/module/components/Images.js.map +1 -1
  381. package/lib/module/components/Light.js.map +1 -1
  382. package/lib/module/components/LineLayer.js +7 -2
  383. package/lib/module/components/LineLayer.js.map +1 -1
  384. package/lib/module/components/LocationPuck.js +57 -0
  385. package/lib/module/components/LocationPuck.js.map +1 -0
  386. package/lib/module/components/MapView.js +0 -8
  387. package/lib/module/components/MapView.js.map +1 -1
  388. package/lib/module/components/MarkerView.js +5 -3
  389. package/lib/module/components/MarkerView.js.map +1 -1
  390. package/lib/module/components/ModelLayer.js +30 -0
  391. package/lib/module/components/ModelLayer.js.map +1 -0
  392. package/lib/module/components/Models.js +36 -0
  393. package/lib/module/components/Models.js.map +1 -0
  394. package/lib/module/components/NativeBridgeComponent.js.map +1 -1
  395. package/lib/module/components/PointAnnotation.js.map +1 -1
  396. package/lib/module/components/RasterDemSource.js.map +1 -1
  397. package/lib/module/components/RasterLayer.js +7 -2
  398. package/lib/module/components/RasterLayer.js.map +1 -1
  399. package/lib/module/components/RasterSource.js.map +1 -1
  400. package/lib/module/components/ShapeSource.js.map +1 -1
  401. package/lib/module/components/SkyLayer.js +2 -2
  402. package/lib/module/components/SkyLayer.js.map +1 -1
  403. package/lib/module/components/Style.js.map +1 -1
  404. package/lib/module/components/StyleImport.js.map +1 -1
  405. package/lib/module/components/SymbolLayer.js +7 -2
  406. package/lib/module/components/SymbolLayer.js.map +1 -1
  407. package/lib/module/components/Terrain.js.map +1 -1
  408. package/lib/module/components/UserLocation.js +1 -1
  409. package/lib/module/components/UserLocation.js.map +1 -1
  410. package/lib/module/components/VectorSource.js.map +1 -1
  411. package/lib/module/components/Viewport.js +96 -0
  412. package/lib/module/components/Viewport.js.map +1 -0
  413. package/lib/module/components/codeparts/LayerPropsCommon.codepart-tsx +62 -0
  414. package/lib/module/global.d.js.map +1 -1
  415. package/lib/module/index.js.map +1 -1
  416. package/lib/module/index.web.js.map +1 -1
  417. package/lib/module/modules/location/locationManager.js.map +1 -1
  418. package/lib/module/modules/offline/OfflineCreatePackOptions.js.map +1 -1
  419. package/lib/module/modules/offline/OfflinePack.js.map +1 -1
  420. package/lib/module/modules/offline/OfflinePackLegacy.js +34 -0
  421. package/lib/module/modules/offline/OfflinePackLegacy.js.map +1 -0
  422. package/lib/module/modules/offline/offlineManager.js +4 -4
  423. package/lib/module/modules/offline/offlineManager.js.map +1 -1
  424. package/lib/module/modules/offline/offlineManagerLegacy.js +154 -0
  425. package/lib/module/modules/offline/offlineManagerLegacy.js.map +1 -0
  426. package/lib/module/modules/snapshot/SnapshotOptions.js.map +1 -1
  427. package/lib/module/modules/snapshot/snapshotManager.js.map +1 -1
  428. package/lib/module/requestAndroidLocationPermissions.js.map +1 -1
  429. package/lib/module/shape_animators/MovePointShapeAnimator.js +13 -0
  430. package/lib/module/shape_animators/MovePointShapeAnimator.js.map +1 -0
  431. package/lib/module/shape_animators/ShapeAnimatorManager.js +8 -0
  432. package/lib/module/shape_animators/ShapeAnimatorManager.js.map +1 -0
  433. package/lib/module/specs/NativeMapViewModule.js.map +1 -1
  434. package/lib/module/specs/NativeRNMBXImageModule.js.map +1 -1
  435. package/lib/module/specs/NativeRNMBXMovePointShapeAnimatorModule.js +6 -0
  436. package/lib/module/specs/NativeRNMBXMovePointShapeAnimatorModule.js.map +1 -0
  437. package/lib/module/specs/NativeRNMBXPointAnnotationModule.js.map +1 -1
  438. package/lib/module/specs/NativeRNMBXShapeSourceModule.js.map +1 -1
  439. package/lib/module/specs/NativeRNMBXViewportModule.js +6 -0
  440. package/lib/module/specs/NativeRNMBXViewportModule.js.map +1 -0
  441. package/lib/module/specs/RNMBXAtmosphereNativeComponent.js.map +1 -1
  442. package/lib/module/specs/RNMBXBackgroundLayerNativeComponent.js.map +1 -1
  443. package/lib/module/specs/RNMBXCalloutNativeComponent.js.map +1 -1
  444. package/lib/module/specs/RNMBXCameraNativeComponent.js.map +1 -1
  445. package/lib/module/specs/RNMBXCircleLayerNativeComponent.js +3 -0
  446. package/lib/module/specs/RNMBXCircleLayerNativeComponent.js.map +1 -1
  447. package/lib/module/specs/RNMBXCustomLocationProviderNativeComponent.js +6 -0
  448. package/lib/module/specs/RNMBXCustomLocationProviderNativeComponent.js.map +1 -0
  449. package/lib/module/specs/RNMBXFillExtrusionLayerNativeComponent.js.map +1 -1
  450. package/lib/module/specs/RNMBXFillLayerNativeComponent.js +3 -0
  451. package/lib/module/specs/RNMBXFillLayerNativeComponent.js.map +1 -1
  452. package/lib/module/specs/RNMBXHeatmapLayerNativeComponent.js +3 -0
  453. package/lib/module/specs/RNMBXHeatmapLayerNativeComponent.js.map +1 -1
  454. package/lib/module/specs/RNMBXImageNativeComponent.js.map +1 -1
  455. package/lib/module/specs/RNMBXImageSourceNativeComponent.js.map +1 -1
  456. package/lib/module/specs/RNMBXImagesNativeComponent.js.map +1 -1
  457. package/lib/module/specs/RNMBXLightNativeComponent.js.map +1 -1
  458. package/lib/module/specs/RNMBXLineLayerNativeComponent.js +3 -0
  459. package/lib/module/specs/RNMBXLineLayerNativeComponent.js.map +1 -1
  460. package/lib/module/specs/RNMBXMapViewNativeComponent.js.map +1 -1
  461. package/lib/module/specs/RNMBXMarkerViewContentNativeComponent.js +6 -0
  462. package/lib/module/specs/RNMBXMarkerViewContentNativeComponent.js.map +1 -0
  463. package/lib/module/specs/RNMBXMarkerViewNativeComponent.js.map +1 -1
  464. package/lib/module/specs/RNMBXModelLayerNativeComponent.js +9 -0
  465. package/lib/module/specs/RNMBXModelLayerNativeComponent.js.map +1 -0
  466. package/lib/module/specs/RNMBXModelsNativeComponent.js +3 -0
  467. package/lib/module/specs/RNMBXModelsNativeComponent.js.map +1 -0
  468. package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js +3 -0
  469. package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
  470. package/lib/module/specs/RNMBXPointAnnotationNativeComponent.js.map +1 -1
  471. package/lib/module/specs/RNMBXRasterDemSourceNativeComponent.js.map +1 -1
  472. package/lib/module/specs/RNMBXRasterLayerNativeComponent.js +3 -0
  473. package/lib/module/specs/RNMBXRasterLayerNativeComponent.js.map +1 -1
  474. package/lib/module/specs/RNMBXRasterSourceNativeComponent.js.map +1 -1
  475. package/lib/module/specs/RNMBXShapeSourceNativeComponent.js.map +1 -1
  476. package/lib/module/specs/RNMBXSkyLayerNativeComponent.js.map +1 -1
  477. package/lib/module/specs/RNMBXStyleImportNativeComponent.js.map +1 -1
  478. package/lib/module/specs/RNMBXSymbolLayerNativeComponent.js +3 -0
  479. package/lib/module/specs/RNMBXSymbolLayerNativeComponent.js.map +1 -1
  480. package/lib/module/specs/RNMBXTerrainNativeComponent.js.map +1 -1
  481. package/lib/module/specs/RNMBXVectorSourceNativeComponent.js.map +1 -1
  482. package/lib/module/specs/RNMBXViewportNativeComponent.js +33 -0
  483. package/lib/module/specs/RNMBXViewportNativeComponent.js.map +1 -0
  484. package/lib/module/specs/codegenUtils.js.map +1 -1
  485. package/lib/module/specs/codeparts/CommonLayerNativeComponentsProps.codepart-ts +18 -0
  486. package/lib/module/types/BaseProps.js.map +1 -1
  487. package/lib/module/types/OnPressEvent.js.map +1 -1
  488. package/lib/module/types/Position.js.map +1 -1
  489. package/lib/module/types/index.js.map +1 -1
  490. package/lib/module/utils/BridgeValue.js.map +1 -1
  491. package/lib/module/utils/Logger.js.map +1 -1
  492. package/lib/module/utils/MapboxStyles.d.js +5 -0
  493. package/lib/module/utils/MapboxStyles.d.js.map +1 -1
  494. package/lib/module/utils/StyleValue.js.map +1 -1
  495. package/lib/module/utils/animated/Animated.js.map +1 -1
  496. package/lib/module/utils/checkRequiredProps.js.map +1 -1
  497. package/lib/module/utils/deprecation.js.map +1 -1
  498. package/lib/module/utils/filterUtils.js.map +1 -1
  499. package/lib/module/utils/geoUtils.js.map +1 -1
  500. package/lib/module/utils/getAnnotationsLayerID.js.map +1 -1
  501. package/lib/module/utils/index.js.map +1 -1
  502. package/lib/module/utils/nativeRef.js.map +1 -1
  503. package/lib/module/utils/styleMap.js +67 -2
  504. package/lib/module/utils/styleMap.js.map +1 -1
  505. package/lib/module/web/MapContext.js.map +1 -1
  506. package/lib/module/web/MapboxModule.js.map +1 -1
  507. package/lib/module/web/UnimplementedComponent.js.map +1 -1
  508. package/lib/module/web/components/Camera.js.map +1 -1
  509. package/lib/module/web/components/MapView.js.map +1 -1
  510. package/lib/module/web/index.js.map +1 -1
  511. package/lib/module/web/utils/Logger.js.map +1 -1
  512. package/lib/typescript/src/Mapbox.d.ts +16 -2
  513. package/lib/typescript/src/Mapbox.d.ts.map +1 -1
  514. package/lib/typescript/src/RNMBXModule.d.ts +1 -1
  515. package/lib/typescript/src/RNMBXModule.d.ts.map +1 -1
  516. package/lib/typescript/src/components/AbstractLayer.d.ts +9 -4
  517. package/lib/typescript/src/components/AbstractLayer.d.ts.map +1 -1
  518. package/lib/typescript/src/components/Camera.d.ts +5 -3
  519. package/lib/typescript/src/components/Camera.d.ts.map +1 -1
  520. package/lib/typescript/src/components/CircleLayer.d.ts +11 -3
  521. package/lib/typescript/src/components/CircleLayer.d.ts.map +1 -1
  522. package/lib/typescript/src/components/CustomLocationProvider.d.ts +15 -0
  523. package/lib/typescript/src/components/CustomLocationProvider.d.ts.map +1 -0
  524. package/lib/typescript/src/components/FillLayer.d.ts +10 -1
  525. package/lib/typescript/src/components/FillLayer.d.ts.map +1 -1
  526. package/lib/typescript/src/components/HeatmapLayer.d.ts +12 -4
  527. package/lib/typescript/src/components/HeatmapLayer.d.ts.map +1 -1
  528. package/lib/typescript/src/components/Images.d.ts +1 -1
  529. package/lib/typescript/src/components/LineLayer.d.ts +10 -1
  530. package/lib/typescript/src/components/LineLayer.d.ts.map +1 -1
  531. package/lib/typescript/src/components/LocationPuck.d.ts +85 -0
  532. package/lib/typescript/src/components/LocationPuck.d.ts.map +1 -0
  533. package/lib/typescript/src/components/MapView.d.ts +6 -6
  534. package/lib/typescript/src/components/MapView.d.ts.map +1 -1
  535. package/lib/typescript/src/components/MarkerView.d.ts +5 -1
  536. package/lib/typescript/src/components/MarkerView.d.ts.map +1 -1
  537. package/lib/typescript/src/components/ModelLayer.d.ts +77 -0
  538. package/lib/typescript/src/components/ModelLayer.d.ts.map +1 -0
  539. package/lib/typescript/src/components/Models.d.ts +15 -0
  540. package/lib/typescript/src/components/Models.d.ts.map +1 -0
  541. package/lib/typescript/src/components/RasterLayer.d.ts +11 -2
  542. package/lib/typescript/src/components/RasterLayer.d.ts.map +1 -1
  543. package/lib/typescript/src/components/SymbolLayer.d.ts +17 -5
  544. package/lib/typescript/src/components/SymbolLayer.d.ts.map +1 -1
  545. package/lib/typescript/src/components/UserLocation.d.ts +1 -0
  546. package/lib/typescript/src/components/UserLocation.d.ts.map +1 -1
  547. package/lib/typescript/src/components/Viewport.d.ts +136 -0
  548. package/lib/typescript/src/components/Viewport.d.ts.map +1 -0
  549. package/lib/typescript/src/modules/offline/OfflinePackLegacy.d.ts +24 -0
  550. package/lib/typescript/src/modules/offline/OfflinePackLegacy.d.ts.map +1 -0
  551. package/lib/typescript/src/modules/offline/offlineManager.d.ts +1 -1
  552. package/lib/typescript/src/modules/offline/offlineManager.d.ts.map +1 -1
  553. package/lib/typescript/src/modules/offline/offlineManagerLegacy.d.ts +93 -0
  554. package/lib/typescript/src/modules/offline/offlineManagerLegacy.d.ts.map +1 -0
  555. package/lib/typescript/src/shape_animators/MovePointShapeAnimator.d.ts +7 -0
  556. package/lib/typescript/src/shape_animators/MovePointShapeAnimator.d.ts.map +1 -0
  557. package/lib/typescript/src/shape_animators/ShapeAnimatorManager.d.ts +5 -0
  558. package/lib/typescript/src/shape_animators/ShapeAnimatorManager.d.ts.map +1 -0
  559. package/lib/typescript/src/specs/NativeMapViewModule.d.ts +0 -1
  560. package/lib/typescript/src/specs/NativeMapViewModule.d.ts.map +1 -1
  561. package/lib/typescript/src/specs/NativeRNMBXImageModule.d.ts +0 -1
  562. package/lib/typescript/src/specs/NativeRNMBXImageModule.d.ts.map +1 -1
  563. package/lib/typescript/src/specs/NativeRNMBXMovePointShapeAnimatorModule.d.ts +10 -0
  564. package/lib/typescript/src/specs/NativeRNMBXMovePointShapeAnimatorModule.d.ts.map +1 -0
  565. package/lib/typescript/src/specs/NativeRNMBXPointAnnotationModule.d.ts +0 -1
  566. package/lib/typescript/src/specs/NativeRNMBXPointAnnotationModule.d.ts.map +1 -1
  567. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts +0 -1
  568. package/lib/typescript/src/specs/NativeRNMBXShapeSourceModule.d.ts.map +1 -1
  569. package/lib/typescript/src/specs/NativeRNMBXViewportModule.d.ts +35 -0
  570. package/lib/typescript/src/specs/NativeRNMBXViewportModule.d.ts.map +1 -0
  571. package/lib/typescript/src/specs/RNMBXCircleLayerNativeComponent.d.ts +16 -11
  572. package/lib/typescript/src/specs/RNMBXCircleLayerNativeComponent.d.ts.map +1 -1
  573. package/lib/typescript/src/specs/RNMBXCustomLocationProviderNativeComponent.d.ts +12 -0
  574. package/lib/typescript/src/specs/RNMBXCustomLocationProviderNativeComponent.d.ts.map +1 -0
  575. package/lib/typescript/src/specs/RNMBXFillLayerNativeComponent.d.ts +9 -4
  576. package/lib/typescript/src/specs/RNMBXFillLayerNativeComponent.d.ts.map +1 -1
  577. package/lib/typescript/src/specs/RNMBXHeatmapLayerNativeComponent.d.ts +9 -4
  578. package/lib/typescript/src/specs/RNMBXHeatmapLayerNativeComponent.d.ts.map +1 -1
  579. package/lib/typescript/src/specs/RNMBXLineLayerNativeComponent.d.ts +9 -4
  580. package/lib/typescript/src/specs/RNMBXLineLayerNativeComponent.d.ts.map +1 -1
  581. package/lib/typescript/src/specs/RNMBXMapViewNativeComponent.d.ts +1 -0
  582. package/lib/typescript/src/specs/RNMBXMapViewNativeComponent.d.ts.map +1 -1
  583. package/lib/typescript/src/specs/RNMBXMarkerViewContentNativeComponent.d.ts +6 -0
  584. package/lib/typescript/src/specs/RNMBXMarkerViewContentNativeComponent.d.ts.map +1 -0
  585. package/lib/typescript/src/specs/RNMBXMarkerViewNativeComponent.d.ts +1 -0
  586. package/lib/typescript/src/specs/RNMBXMarkerViewNativeComponent.d.ts.map +1 -1
  587. package/lib/typescript/src/specs/RNMBXModelLayerNativeComponent.d.ts +28 -0
  588. package/lib/typescript/src/specs/RNMBXModelLayerNativeComponent.d.ts.map +1 -0
  589. package/lib/typescript/src/specs/RNMBXModelsNativeComponent.d.ts +15 -0
  590. package/lib/typescript/src/specs/RNMBXModelsNativeComponent.d.ts.map +1 -0
  591. package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts +20 -3
  592. package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts.map +1 -1
  593. package/lib/typescript/src/specs/RNMBXRasterLayerNativeComponent.d.ts +9 -4
  594. package/lib/typescript/src/specs/RNMBXRasterLayerNativeComponent.d.ts.map +1 -1
  595. package/lib/typescript/src/specs/RNMBXSymbolLayerNativeComponent.d.ts +9 -4
  596. package/lib/typescript/src/specs/RNMBXSymbolLayerNativeComponent.d.ts.map +1 -1
  597. package/lib/typescript/src/specs/RNMBXViewportNativeComponent.d.ts +59 -0
  598. package/lib/typescript/src/specs/RNMBXViewportNativeComponent.d.ts.map +1 -0
  599. package/lib/typescript/src/specs/codegenUtils.d.ts +0 -1
  600. package/lib/typescript/src/specs/codegenUtils.d.ts.map +1 -1
  601. package/lib/typescript/src/types/Position.d.ts +3 -0
  602. package/lib/typescript/src/types/Position.d.ts.map +1 -1
  603. package/lib/typescript/src/utils/styleMap.d.ts.map +1 -1
  604. package/package.json +11 -10
  605. package/plugin/install.md +6 -14
  606. package/rnmapbox-maps.podspec +26 -4
  607. package/setup-jest.js +30 -1
  608. package/src/Mapbox.ts +21 -0
  609. package/src/RNMBXModule.ts +2 -0
  610. package/src/components/AbstractLayer.tsx +11 -5
  611. package/src/components/Camera.tsx +8 -3
  612. package/src/components/CircleLayer.tsx +17 -5
  613. package/src/components/CustomLocationProvider.tsx +22 -0
  614. package/src/components/FillLayer.tsx +16 -3
  615. package/src/components/HeatmapLayer.tsx +18 -6
  616. package/src/components/Images.tsx +1 -1
  617. package/src/components/LineLayer.tsx +16 -3
  618. package/src/components/LocationPuck.tsx +143 -0
  619. package/src/components/MapView.tsx +7 -9
  620. package/src/components/MarkerView.tsx +12 -5
  621. package/src/components/ModelLayer.tsx +107 -0
  622. package/src/components/Models.tsx +44 -0
  623. package/src/components/RasterLayer.tsx +17 -4
  624. package/src/components/SkyLayer.tsx +2 -2
  625. package/src/components/SymbolLayer.tsx +26 -7
  626. package/src/components/UserLocation.tsx +2 -1
  627. package/src/components/Viewport.tsx +330 -0
  628. package/src/components/codeparts/LayerPropsCommon.codepart-tsx +62 -0
  629. package/src/modules/offline/OfflinePackLegacy.ts +55 -0
  630. package/src/modules/offline/offlineManager.ts +4 -4
  631. package/src/modules/offline/offlineManagerLegacy.ts +181 -0
  632. package/src/shape_animators/MovePointShapeAnimator.ts +18 -0
  633. package/src/shape_animators/ShapeAnimatorManager.tsx +8 -0
  634. package/src/specs/NativeRNMBXMovePointShapeAnimatorModule.ts +16 -0
  635. package/src/specs/NativeRNMBXViewportModule.ts +41 -0
  636. package/src/specs/RNMBXCircleLayerNativeComponent.ts +21 -12
  637. package/src/specs/RNMBXCustomLocationProviderNativeComponent.ts +19 -0
  638. package/src/specs/RNMBXFillLayerNativeComponent.ts +13 -4
  639. package/src/specs/RNMBXHeatmapLayerNativeComponent.ts +13 -4
  640. package/src/specs/RNMBXLineLayerNativeComponent.ts +13 -4
  641. package/src/specs/RNMBXMapViewNativeComponent.ts +2 -0
  642. package/src/specs/RNMBXMarkerViewContentNativeComponent.ts +9 -0
  643. package/src/specs/RNMBXMarkerViewNativeComponent.ts +1 -0
  644. package/src/specs/RNMBXModelLayerNativeComponent.ts +38 -0
  645. package/src/specs/RNMBXModelsNativeComponent.ts +18 -0
  646. package/src/specs/RNMBXNativeUserLocationNativeComponent.ts +29 -3
  647. package/src/specs/RNMBXRasterLayerNativeComponent.ts +13 -4
  648. package/src/specs/RNMBXSymbolLayerNativeComponent.ts +13 -4
  649. package/src/specs/RNMBXViewportNativeComponent.ts +117 -0
  650. package/src/specs/codeparts/CommonLayerNativeComponentsProps.codepart-ts +18 -0
  651. package/src/types/Position.ts +3 -0
  652. package/src/utils/MapboxStyles.d.ts +526 -63
  653. package/src/utils/styleMap.ts +69 -2
  654. package/android/src/main/java/com/rnmapbox/rnmbx/components/AbstractEvent.java +0 -35
  655. package/android/src/main/java/com/rnmapbox/rnmbx/events/constants/EventKeys.java +0 -39
  656. package/lib/commonjs/components/NativeUserLocation.js.map +0 -1
  657. package/lib/module/components/NativeUserLocation.js +0 -7
  658. package/lib/module/components/NativeUserLocation.js.map +0 -1
  659. package/lib/typescript/src/components/NativeUserLocation.d.ts +0 -22
  660. package/lib/typescript/src/components/NativeUserLocation.d.ts.map +0 -1
  661. package/src/components/NativeUserLocation.tsx +0 -29
@@ -14,7 +14,6 @@ class FeatureEntry {
14
14
  }
15
15
  }
16
16
 
17
-
18
17
  #if RNMBX_11
19
18
  extension QueriedRenderedFeature {
20
19
  var feature : Feature { return queriedFeature.feature }
@@ -98,82 +97,103 @@ class RNMBXCameraChanged : RNMBXEvent, RCTEvent {
98
97
  }
99
98
 
100
99
  @objc(RNMBXMapView)
101
- open class RNMBXMapView : MapView {
102
- var tapDelegate: IgnoreRNMBXMakerViewGestureDelegate? = nil
100
+ open class RNMBXMapView: UIView {
101
+ var imageManager: ImageManager = ImageManager()
103
102
 
103
+ var tapDelegate: IgnoreRNMBXMakerViewGestureDelegate? = nil
104
+
104
105
  var eventDispatcher: RCTEventDispatcherProtocol
105
-
106
- var compassEnabled: Bool = false
107
- var compassFadeWhenNorth: Bool = false
108
- var compassImage: String?
109
106
 
110
107
  var reactOnPress : RCTBubblingEventBlock?
111
108
  var reactOnLongPress : RCTBubblingEventBlock?
112
109
  var reactOnMapChange : RCTBubblingEventBlock?
113
-
110
+
114
111
  @objc
115
112
  var onCameraChanged: RCTDirectEventBlock?
116
-
113
+
117
114
  var styleLoaded: Bool = false
118
115
  var styleLoadWaiters : [(MapboxMap)->Void] = []
119
-
116
+
120
117
  var features: [FeatureEntry] = []
121
-
118
+
122
119
  weak var reactCamera : RNMBXCamera?
123
120
  var images : [RNMBXImages] = []
124
121
  var sources : [RNMBXInteractiveElement] = []
125
122
 
126
123
  var handleMapChangedEvents = Set<RNMBXEvent.EventType>()
127
-
124
+
128
125
  var eventListeners : [Cancelable] = []
129
-
126
+
130
127
  private var isPendingInitialLayout = true
131
128
  private var wasGestureActive = false
132
129
  private var isGestureActive = false
133
-
130
+
134
131
  var layerWaiters : [String:[(String) -> Void]] = [:]
132
+
133
+ @objc
134
+ public var deselectAnnotationOnTap: Bool = false
135
135
 
136
- #if RNMBX_11
136
+ #if RNMBX_11
137
137
  var cancelables = Set<AnyCancelable>()
138
- #endif
138
+ #endif
139
139
 
140
- lazy var pointAnnotationManager : PointAnnotationManager = {
141
- let result = PointAnnotationManager(annotations: annotations, mapView: mapView)
140
+ lazy var pointAnnotationManager : RNMBXPointAnnotationManager = {
141
+ let result = RNMBXPointAnnotationManager(annotations: mapView.annotations, mapView: mapView)
142
142
  self._removeMapboxLongPressGestureRecognizer()
143
143
  return result
144
144
  }()
145
-
145
+
146
146
  lazy var calloutAnnotationManager : MapboxMaps.PointAnnotationManager = {
147
- return annotations.makePointAnnotationManager(id: "RNMBX-mapview-callouts")
147
+ return mapView.annotations.makePointAnnotationManager(id: "RNMBX-mapview-callouts")
148
148
  }()
149
149
 
150
- var mapView : MapView {
151
- get { return self }
150
+ var _mapView: MapView! = nil
151
+ func createMapView() {
152
+ #if RNMBX_11
153
+ _mapView = MapView(frame: self.bounds, mapInitOptions: MapInitOptions())
154
+ #else
155
+ let resourceOptions = ResourceOptions(accessToken: RNMBXModule.accessToken!)
156
+ _mapView = MapView(frame: frame, mapInitOptions: MapInitOptions(resourceOptions: resourceOptions))
157
+ #endif
158
+ _mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
159
+ addSubview(_mapView)
160
+
161
+ _mapView.gestures.delegate = self
162
+ setupEvents()
163
+ }
164
+
165
+ var mapView : MapView! {
166
+ get { return _mapView }
167
+ }
168
+ var mapboxMap: MapboxMap! {
169
+ get { _mapView.mapboxMap }
152
170
  }
153
171
 
154
172
  @objc public func addToMap(_ subview: UIView) {
155
- if let mapComponent = subview as? RNMBXMapComponent {
156
- let style = mapView.mapboxMap.style
157
- var addToMap = false
158
- if mapComponent.waitForStyleLoad() {
159
- if (self.styleLoaded) {
173
+ withMapView {
174
+ if let mapComponent = subview as? RNMBXMapComponent {
175
+ let style = self.mapView.mapboxMap.style
176
+ var addToMap = false
177
+ if mapComponent.waitForStyleLoad() {
178
+ if (self.styleLoaded) {
179
+ addToMap = true
180
+ }
181
+ } else {
160
182
  addToMap = true
161
183
  }
184
+
185
+ let entry = FeatureEntry(feature: mapComponent, view: subview, addedToMap: false)
186
+ if (addToMap) {
187
+ mapComponent.addToMap(self, style: style)
188
+ entry.addedToMap = true
189
+ }
190
+ self.features.append(entry)
162
191
  } else {
163
- addToMap = true
192
+ subview.reactSubviews()?.forEach { self.addToMap($0) }
164
193
  }
165
-
166
- let entry = FeatureEntry(feature: mapComponent, view: subview, addedToMap: false)
167
- if (addToMap) {
168
- mapComponent.addToMap(self, style: style)
169
- entry.addedToMap = true
194
+ if let source = subview as? RNMBXInteractiveElement {
195
+ self.sources.append(source)
170
196
  }
171
- features.append(entry)
172
- } else {
173
- subview.reactSubviews()?.forEach { addToMap($0) }
174
- }
175
- if let source = subview as? RNMBXInteractiveElement {
176
- sources.append(source)
177
197
  }
178
198
  }
179
199
 
@@ -183,8 +203,8 @@ open class RNMBXMapView : MapView {
183
203
  if let entryIndex = entryIndex {
184
204
  var entry = features[entryIndex]
185
205
  if (entry.addedToMap) {
186
- mapComponent.removeFromMap(self, reason: .OnDestroy)
187
- entry.addedToMap = false
206
+ mapComponent.removeFromMap(self, reason: .OnDestroy)
207
+ entry.addedToMap = false
188
208
  }
189
209
  features.remove(at: entryIndex)
190
210
  }
@@ -207,30 +227,20 @@ open class RNMBXMapView : MapView {
207
227
  }
208
228
 
209
229
  @objc public required init(frame:CGRect, eventDispatcher: RCTEventDispatcherProtocol) {
210
- #if RNMBX_11
211
- self.eventDispatcher = eventDispatcher
212
- super.init(frame: frame, mapInitOptions: MapInitOptions())
213
- #else
214
- let resourceOptions = ResourceOptions(accessToken: RNMBXModule.accessToken!)
215
230
  self.eventDispatcher = eventDispatcher
216
- super.init(frame: frame, mapInitOptions: MapInitOptions(resourceOptions: resourceOptions))
217
- #endif
218
-
219
- self.mapView.gestures.delegate = self
220
-
221
- setupEvents()
231
+ super.init(frame: frame)
222
232
  }
223
233
 
224
234
  public required init (coder: NSCoder) {
225
- fatalError("not implemented")
235
+ fatalError("not implemented")
226
236
  }
227
237
 
228
238
  func layerAdded (_ layer: Layer) {
229
- // TODO
239
+ // TODO
230
240
  }
231
241
 
232
242
  func waitForLayerWithID(_ layerId: String, _ callback: @escaping (_ layerId: String) -> Void) {
233
- let style = mapboxMap.style;
243
+ let style = mapView.mapboxMap.style;
234
244
  if style.layerExists(withId: layerId) {
235
245
  callback(layerId)
236
246
  } else {
@@ -243,40 +253,144 @@ open class RNMBXMapView : MapView {
243
253
  if let camera = reactCamera {
244
254
  if (isPendingInitialLayout) {
245
255
  isPendingInitialLayout = false;
246
-
256
+
247
257
  camera.initialLayout()
248
258
  }
249
259
  }
250
260
  }
251
-
261
+
252
262
 
253
263
  // MARK: - React Native properties
254
-
264
+ let changes : PropertyChanges<RNMBXMapView> = PropertyChanges()
265
+ var mapViewWaiters : [()->Void] = []
266
+
267
+ enum Property : String {
268
+ case projection
269
+ case localizeLabels
270
+ case attribution
271
+ case logo
272
+ case compass
273
+ case scaleBar
274
+ case onLongPress
275
+ case onPress
276
+ case zoomEnabled
277
+ case scrollEnabled
278
+ case rotateEnabled
279
+ case pitchEnabled
280
+ case onMapChange
281
+ case styleURL
282
+ case gestureSettings
283
+
284
+ func apply(_ map: RNMBXMapView) -> Void {
285
+ switch self {
286
+ case .projection:
287
+ map.applyProjection()
288
+ case .localizeLabels:
289
+ map.applyLocalizeLabels()
290
+ case .attribution:
291
+ map.applyAttribution()
292
+ case .logo:
293
+ map.applyLogo()
294
+ case .compass:
295
+ map.applyCompass()
296
+ case .scaleBar:
297
+ map.applyScaleBar()
298
+ case .onLongPress:
299
+ map.applyOnLongPress()
300
+ case .onPress:
301
+ map.applyOnPress()
302
+ case .zoomEnabled:
303
+ map.applyZoomEnabled()
304
+ case .scrollEnabled:
305
+ map.applyScrollEnabled()
306
+ case .rotateEnabled:
307
+ map.applyRotateEnabled()
308
+ case .onMapChange:
309
+ map.applyOnMapChange()
310
+ case .styleURL:
311
+ map.applyStyleURL()
312
+ case .pitchEnabled:
313
+ map.applyPitchEnabled()
314
+ case .gestureSettings:
315
+ map.applyGestureSettings()
316
+ }
317
+ }
318
+ }
319
+
320
+ func changed(_ property: Property) {
321
+ changes.add(name: property.rawValue, update: property.apply)
322
+ }
323
+
324
+ func withMapView(callback: @escaping () -> Void) {
325
+ if _mapView != nil {
326
+ callback()
327
+ } else {
328
+ mapViewWaiters.append(callback)
329
+ }
330
+ }
331
+
332
+ var projection: StyleProjection?
333
+
255
334
  @objc public func setReactProjection(_ value: String?) {
256
335
  if let value = value {
257
- let projection = StyleProjection(name: value == "globe" ? .globe : .mercator)
258
- logged("RNMBXMapView.setReactProjection") {
336
+ projection = StyleProjection(name: value == "globe" ? .globe : .mercator)
337
+ } else {
338
+ projection = nil
339
+ }
340
+ changed(.projection)
341
+ }
342
+
343
+ func applyProjection() {
344
+ logged("RNMBXMapView.setReactProjection") {
345
+ if let projection = projection {
259
346
  try self.mapboxMap.style.setProjection(projection)
260
347
  }
261
348
  }
262
349
  }
263
-
350
+
351
+ var locale: (layerIds: [String]?, locale: Locale)? = nil
352
+
264
353
  @objc public func setReactLocalizeLabels(_ value: NSDictionary?) {
354
+ if let value = value {
355
+ let localeString = value["locale"] as! String
356
+ let layerIds = value["layerIds"] as! [String]?
357
+ let locale = localeString == "current" ? Locale.current : Locale(identifier: localeString)
358
+ self.locale = (layerIds, locale)
359
+ }
360
+ changed(.localizeLabels)
361
+ }
362
+
363
+ func applyLocalizeLabels() {
265
364
  onMapStyleLoaded { _ in
266
- if let value = value {
267
- logged("RNMBXMapVIew.setReactLocalizeLabels") {
268
- let localeString = value["locale"] as! String
269
- let layerIds = value["layerIds"] as! [String]?
270
- let locale = localeString == "current" ? Locale.current : Locale(identifier: localeString)
271
- try self.mapboxMap.style.localizeLabels(into: locale, forLayerIds: layerIds)
365
+ logged("RNMBXMapView.\(#function)") {
366
+ if let locale = self.locale {
367
+ try self.mapboxMap.style.localizeLabels(into: locale.locale, forLayerIds: locale.layerIds)
272
368
  }
273
369
  }
274
370
  }
275
371
  }
276
372
 
277
- @objc public func setReactGestureSettings(_ value: NSDictionary?) {
278
- if let value = value, let gestures = self.mapView.gestures {
279
- var options = gestures.options
373
+ struct GestureSettings {
374
+ var doubleTapToZoomInEnabled: Bool? = nil;
375
+ var doubleTouchToZoomOutEnabled: Bool? = nil;
376
+ var pinchPanEnabled: Bool? = nil;
377
+ var pinchZoomEnabled: Bool? = nil;
378
+ var pitchEnabled: Bool? = nil;
379
+ var quickZoomEnabled: Bool? = nil;
380
+ var rotateEnabled: Bool? = nil;
381
+ var panEnabled: Bool? = nil;
382
+ var panDecelerationFactor: CGFloat? = nil;
383
+ #if RNMBX_11
384
+ var simultaneousRotateAndPinchZoomEnabled: Bool? = nil;
385
+ #endif
386
+ }
387
+
388
+ var gestureSettings = GestureSettings()
389
+
390
+ @objc
391
+ public func setReactGestureSettings(_ value: NSDictionary?) {
392
+ if let value = value {
393
+ var options = gestureSettings
280
394
  if let doubleTapToZoomInEnabled = value["doubleTapToZoomInEnabled"] as? NSNumber {
281
395
  options.doubleTapToZoomInEnabled = doubleTapToZoomInEnabled.boolValue
282
396
  }
@@ -290,10 +404,10 @@ open class RNMBXMapView : MapView {
290
404
  options.pinchZoomEnabled = pinchZoomEnabled.boolValue
291
405
  }
292
406
  /* android only
293
- if let pinchZoomDecelerationEnabled = value["pinchZoomDecelerationEnabled"] as? NSNumber {
294
- options.pinchZoomDecelerationEnabled = pinchZoomDecelerationEnabled.boolValue
295
- }
296
- */
407
+ if let pinchZoomDecelerationEnabled = value["pinchZoomDecelerationEnabled"] as? NSNumber {
408
+ options.pinchZoomDecelerationEnabled = pinchZoomDecelerationEnabled.boolValue
409
+ }
410
+ */
297
411
  if let pitchEnabled = value["pitchEnabled"] as? NSNumber {
298
412
  options.pitchEnabled = pitchEnabled.boolValue
299
413
  }
@@ -304,76 +418,188 @@ open class RNMBXMapView : MapView {
304
418
  options.rotateEnabled = rotateEnabled.boolValue
305
419
  }
306
420
  /* android only
307
- if let rotateDecelerationEnabled = value["rotateDecelerationEnabled"] as? NSNumber {
308
- options.rotateDecelerationEnabled = rotateDecelerationEnabled.boolValue
309
- }*/
421
+ if let rotateDecelerationEnabled = value["rotateDecelerationEnabled"] as? NSNumber {
422
+ options.rotateDecelerationEnabled = rotateDecelerationEnabled.boolValue
423
+ }*/
310
424
  if let panEnabled = value["panEnabled"] as? NSNumber {
311
425
  options.panEnabled = panEnabled.boolValue
312
426
  }
313
427
  if let panDecelerationFactor = value["panDecelerationFactor"] as? NSNumber {
314
428
  options.panDecelerationFactor = panDecelerationFactor.CGFloat
315
429
  }
316
- #if RNMBX_11
430
+ #if RNMBX_11
317
431
  if let simultaneousRotateAndPinchZoomEnabled = value["simultaneousRotateAndPinchZoomEnabled"] as? NSNumber {
318
432
  options.simultaneousRotateAndPinchZoomEnabled = simultaneousRotateAndPinchZoomEnabled.boolValue
319
433
  }
320
- #endif
434
+ #endif
321
435
  /* android only
322
- if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
323
- options.zoomAnimationAmount = zoomAnimationAmount.CGFloat
324
- }*/
436
+ if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
437
+ options.zoomAnimationAmount = zoomAnimationAmount.CGFloat
438
+ }*/
439
+ gestureSettings = options
440
+
441
+ changed(.gestureSettings)
442
+ }
443
+ }
444
+
445
+ func applyGestureSettings() {
446
+ if let gestures = self.mapView?.gestures {
447
+ var options = gestures.options
448
+ let settings = gestureSettings
449
+ if let doubleTapToZoomInEnabled = settings.doubleTapToZoomInEnabled as? Bool {
450
+ options.doubleTapToZoomInEnabled = doubleTapToZoomInEnabled
451
+ }
452
+ if let doubleTouchToZoomOutEnabled = settings.doubleTouchToZoomOutEnabled as? Bool {
453
+ options.doubleTouchToZoomOutEnabled = doubleTouchToZoomOutEnabled
454
+ }
455
+ if let pinchPanEnabled = settings.pinchPanEnabled as? Bool {
456
+ options.pinchPanEnabled = pinchPanEnabled
457
+ }
458
+ if let pinchZoomEnabled = settings.pinchZoomEnabled as? Bool {
459
+ options.pinchZoomEnabled = pinchZoomEnabled
460
+ }
461
+ if let pitchEnabled = settings.pitchEnabled as? Bool {
462
+ options.pitchEnabled = pitchEnabled
463
+ }
464
+ if let quickZoomEnabled = settings.quickZoomEnabled as? Bool {
465
+ options.quickZoomEnabled = quickZoomEnabled
466
+ }
467
+ if let rotateEnabled = settings.rotateEnabled as? Bool {
468
+ options.rotateEnabled = rotateEnabled
469
+ }
470
+ /* android only
471
+ if let rotateDecelerationEnabled = value["rotateDecelerationEnabled"] as? NSNumber {
472
+ options.rotateDecelerationEnabled = rotateDecelerationEnabled.boolValue
473
+ }*/
474
+ if let panEnabled = settings.panEnabled as? Bool {
475
+ options.panEnabled = panEnabled
476
+ }
477
+ if let panDecelerationFactor = settings.panDecelerationFactor as? CGFloat {
478
+ options.panDecelerationFactor = panDecelerationFactor
479
+ }
480
+ #if RNMBX_11
481
+ if let simultaneousRotateAndPinchZoomEnabled = settings.simultaneousRotateAndPinchZoomEnabled as? Bool {
482
+ options.simultaneousRotateAndPinchZoomEnabled = simultaneousRotateAndPinchZoomEnabled
483
+ }
484
+ #endif
485
+ /* android only
486
+ if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
487
+ options.zoomAnimationAmount = zoomAnimationAmount.CGFloat
488
+ }*/
325
489
  if options != gestures.options {
326
490
  gestures.options = options
327
491
  }
328
492
  }
329
493
  }
330
494
 
495
+ var attributionEnabled: OrnamentVisibility? = nil
496
+ var attributionOptions: (position: OrnamentPosition, margins: CGPoint)? = nil
497
+
331
498
  @objc public func setReactAttributionEnabled(_ value: Bool) {
332
- mapView.ornaments.options.attributionButton.visibility = value ? .visible : .hidden
499
+ attributionEnabled = value ? .visible : .hidden
500
+ changed(.attribution)
333
501
  }
334
502
 
335
- @objc public func setReactAttributionPosition(_ position: [String: NSNumber]) {
336
- if let ornamentOptions = self.getOrnamentOptionsFromPosition(position) {
337
- mapView.ornaments.options.attributionButton.position = ornamentOptions.position
338
- mapView.ornaments.options.attributionButton.margins = ornamentOptions.margins
503
+ func applyAttribution() {
504
+ if let visibility = attributionEnabled {
505
+ mapView.ornaments.options.attributionButton.visibility = visibility
506
+ }
507
+ if let options = attributionOptions {
508
+ mapView.ornaments.options.attributionButton.position = options.position
509
+ mapView.ornaments.options.attributionButton.margins = options.margins
339
510
  }
340
511
  }
341
512
 
513
+ @objc public func setReactAttributionPosition(_ position: [String: NSNumber]) {
514
+ attributionOptions = self.getOrnamentOptionsFromPosition(position)
515
+ changed(.attribution)
516
+ }
517
+
518
+ var logoEnabled: OrnamentVisibility? = nil
519
+ var logoOptions: (position: OrnamentPosition, margins: CGPoint)? = nil
520
+
342
521
  @objc public func setReactLogoEnabled(_ value: Bool) {
343
- mapView.ornaments.options.logo.visibility = value ? .visible : .hidden
522
+ logoEnabled = value ? .visible : .hidden
523
+ changed(.logo)
344
524
  }
345
525
 
346
526
  @objc public func setReactLogoPosition(_ position: [String: NSNumber]) {
347
- if let ornamentOptions = self.getOrnamentOptionsFromPosition(position) {
348
- mapView.ornaments.options.logo.position = ornamentOptions.position
349
- mapView.ornaments.options.logo.margins = ornamentOptions.margins
527
+ logoOptions = self.getOrnamentOptionsFromPosition(position)
528
+ changed(.logo)
529
+ }
530
+
531
+ func applyLogo() {
532
+ if let visibility = logoEnabled {
533
+ mapView.ornaments.options.logo.visibility = visibility
534
+ }
535
+ if let options = logoOptions {
536
+ mapView.ornaments.options.logo.position = options.position
537
+ mapView.ornaments.options.logo.margins = options.margins
350
538
  }
351
539
  }
352
540
 
541
+ var compassEnabled: Bool = false
542
+ var compassPosition: OrnamentPosition? = nil
543
+ var compassMargins: CGPoint? = nil
544
+ var compassFadeWhenNorth: Bool = false
545
+ var compassImage: String?
546
+
353
547
  @objc public func setReactCompassEnabled(_ value: Bool) {
354
548
  compassEnabled = value
355
- refreshCompassVisibility()
549
+ changed(.compass)
356
550
  }
357
-
551
+
358
552
  @objc public func setReactCompassFadeWhenNorth(_ value: Bool) {
359
553
  compassFadeWhenNorth = value
360
- refreshCompassVisibility()
554
+ changed(.compass)
361
555
  }
362
556
 
363
- private func refreshCompassVisibility() {
557
+ @objc public func setReactCompassPosition(_ position: [String: NSNumber]) {
558
+ if let compassOptions = self.getOrnamentOptionsFromPosition(position) {
559
+ compassPosition = compassOptions.position
560
+ compassMargins = compassOptions.margins
561
+ changed(.compass)
562
+ }
563
+ }
564
+
565
+ @objc public func setReactCompassViewPosition(_ position: NSInteger) {
566
+ compassPosition = toOrnamentPositon(Int(truncating: NSNumber(value: position)))
567
+ changed(.compass)
568
+ }
569
+
570
+ @objc public func setReactCompassViewMargins(_ margins: CGPoint) {
571
+ compassMargins = margins
572
+ changed(.compass)
573
+ }
574
+
575
+ @objc public func setReactCompassImage(_ image: String) {
576
+ compassImage = image.isEmpty ? nil : image
577
+ changed(.compass)
578
+ }
579
+
580
+ func applyCompass() {
364
581
  var visibility: OrnamentVisibility = .hidden
365
582
  if compassEnabled {
366
583
  visibility = compassFadeWhenNorth ? .adaptive : .visible
367
584
  }
368
585
  mapView.ornaments.options.compass.visibility = visibility
369
586
 
370
- refreshCompassImage()
371
- }
372
-
373
- @objc public func setReactCompassPosition(_ position: [String: NSNumber]) {
374
- if let ornamentOptions = self.getOrnamentOptionsFromPosition(position) {
375
- mapView.ornaments.options.compass.position = ornamentOptions.position
376
- mapView.ornaments.options.compass.margins = ornamentOptions.margins
587
+ if let position = compassPosition {
588
+ mapView.ornaments.options.compass.position = position
589
+ }
590
+ if let margina = compassMargins {
591
+ mapView.ornaments.options.compass.margins = margina
592
+ }
593
+
594
+ if let compassImage = compassImage {
595
+ onMapStyleLoaded { map in
596
+ let img = map.style.image(withId: compassImage)
597
+ self.mapView.ornaments.options.compass.image = img
598
+ }
599
+ } else {
600
+ // Does not currently reset the image to the default.
601
+ // See https://github.com/mapbox/mapbox-maps-ios/issues/1673.
602
+ self.mapView.ornaments.options.compass.image = nil
377
603
  }
378
604
  }
379
605
 
@@ -399,61 +625,94 @@ open class RNMBXMapView : MapView {
399
625
  return .topLeading
400
626
  }
401
627
  }
628
+
629
+ var scaleBarEnabled: Bool? = nil
630
+ var scaleBarPosition: OrnamentPosition? = nil
631
+ var scaleBarMargins: CGPoint? = nil
402
632
 
403
- @objc public func setReactCompassViewPosition(_ position: NSInteger) {
404
- mapView.ornaments.options.compass.position = toOrnamentPositon(Int(truncating: NSNumber(value: position)))
633
+ @objc public func setReactScaleBarEnabled(_ value: Bool) {
634
+ scaleBarEnabled = value
635
+ changed(.scaleBar)
405
636
  }
406
637
 
407
- @objc public func setReactCompassViewMargins(_ margins: CGPoint) {
408
- mapView.ornaments.options.compass.margins = margins;
409
- }
410
-
411
- @objc public func setReactCompassImage(_ image: String) {
412
- compassImage = image.isEmpty ? nil : image
413
- refreshCompassImage()
638
+ @objc public func setReactScaleBarPosition(_ position: [String: NSNumber]) {
639
+ if let ornamentOptions = self.getOrnamentOptionsFromPosition(position) {
640
+ scaleBarPosition = ornamentOptions.position
641
+ scaleBarMargins = ornamentOptions.margins
642
+ }
414
643
  }
415
644
 
416
- private func refreshCompassImage() {
417
- if let compassImage = compassImage {
418
- onMapStyleLoaded { map in
419
- let img = map.style.image(withId: compassImage)
420
- self.mapView.ornaments.options.compass.image = img
421
- }
422
- } else {
423
- // Does not currently reset the image to the default.
424
- // See https://github.com/mapbox/mapbox-maps-ios/issues/1673.
425
- self.mapView.ornaments.options.compass.image = nil
645
+ func applyScaleBar() {
646
+ if let enabled = scaleBarEnabled {
647
+ mapView.ornaments.options.scaleBar.visibility = enabled ? .visible : .hidden
648
+ }
649
+ if let position = scaleBarPosition {
650
+ mapView.ornaments.options.scaleBar.position = position
651
+ }
652
+ if let margins = scaleBarMargins {
653
+ mapView.ornaments.options.scaleBar.margins = margins
426
654
  }
427
655
  }
428
656
 
429
- @objc public func setReactScaleBarEnabled(_ value: Bool) {
430
- self.mapView.ornaments.options.scaleBar.visibility = value ? .visible : .hidden
431
- }
432
-
433
- @objc public func setReactScaleBarPosition(_ position: [String: NSNumber]) {
434
- if let ornamentOptions = self.getOrnamentOptionsFromPosition(position) {
435
- mapView.ornaments.options.scaleBar.position = ornamentOptions.position
436
- mapView.ornaments.options.scaleBar.margins = ornamentOptions.margins
657
+ @objc override public func didSetProps(_ props: [String]) {
658
+ if (_mapView == nil) {
659
+ createMapView()
660
+
661
+ mapViewWaiters.forEach { $0() }
662
+ mapViewWaiters.removeAll()
437
663
  }
664
+ changes.apply(self)
438
665
  }
439
666
 
667
+ var zoomEnabled: Bool? = nil
440
668
  @objc public func setReactZoomEnabled(_ value: Bool) {
441
- self.mapView.gestures.options.quickZoomEnabled = value
442
- self.mapView.gestures.options.doubleTapToZoomInEnabled = value
443
- self.mapView.gestures.options.pinchZoomEnabled = value
669
+ self.zoomEnabled = value
670
+ changed(.zoomEnabled)
444
671
  }
445
672
 
673
+ func applyZoomEnabled() {
674
+ if let value = zoomEnabled {
675
+ self.mapView.gestures.options.quickZoomEnabled = value
676
+ self.mapView.gestures.options.doubleTapToZoomInEnabled = value
677
+ self.mapView.gestures.options.pinchZoomEnabled = value
678
+ }
679
+ }
680
+
681
+ var scrollEnabled: Bool? = nil
446
682
  @objc public func setReactScrollEnabled(_ value: Bool) {
447
- self.mapView.gestures.options.panEnabled = value
448
- self.mapView.gestures.options.pinchPanEnabled = value
683
+ self.scrollEnabled = value
684
+ changed(.scrollEnabled)
685
+ }
686
+
687
+ func applyScrollEnabled() {
688
+ if let value = scrollEnabled {
689
+ self.mapView.gestures.options.panEnabled = value
690
+ self.mapView.gestures.options.pinchPanEnabled = value
691
+ }
449
692
  }
450
693
 
694
+ var rotateEnabled: Bool? = nil
451
695
  @objc public func setReactRotateEnabled(_ value: Bool) {
452
- self.mapView.gestures.options.rotateEnabled = value
696
+ rotateEnabled = value
697
+ changed(.rotateEnabled)
698
+ }
699
+
700
+ func applyRotateEnabled() {
701
+ if let value = rotateEnabled {
702
+ self.mapView.gestures.options.rotateEnabled = value
703
+ }
453
704
  }
454
705
 
706
+
707
+ var pitchEnabled: Bool? = nil
455
708
  @objc public func setReactPitchEnabled(_ value: Bool) {
456
- self.mapView.gestures.options.pitchEnabled = value
709
+ self.pitchEnabled = value
710
+ changed(.pitchEnabled)
711
+ }
712
+ func applyPitchEnabled() {
713
+ if let value = pitchEnabled {
714
+ self.mapView.gestures.options.pitchEnabled = value
715
+ }
457
716
  }
458
717
 
459
718
  private func removeAllFeaturesFromMap(reason: RemovalReason) {
@@ -482,11 +741,17 @@ open class RNMBXMapView : MapView {
482
741
  addFeaturesToMap(style: style)
483
742
  }
484
743
 
744
+ var reactStyleURL: String? = nil
485
745
  @objc public func setReactStyleURL(_ value: String?) {
746
+ self.reactStyleURL = value
747
+ changed(.styleURL)
748
+ }
749
+
750
+ public func applyStyleURL() {
486
751
  var initialLoad = !self.styleLoaded
487
752
  if !initialLoad { refreshComponentsBeforeStyleChange() }
488
753
  self.styleLoaded = false
489
- if let value = value {
754
+ if let value = reactStyleURL {
490
755
  if let _ = URL(string: value) {
491
756
  if let styleURI = StyleURI(rawValue: value) {
492
757
  mapView.mapboxMap.loadStyleURI(styleURI)
@@ -582,7 +847,10 @@ extension RNMBXMapView {
582
847
 
583
848
  @objc public func setReactOnMapChange(_ value: @escaping RCTBubblingEventBlock) {
584
849
  self.reactOnMapChange = value
850
+ changed(.onMapChange)
851
+ }
585
852
 
853
+ func applyOnMapChange() {
586
854
  self.onEvery(event: .cameraChanged, handler: { (self, cameraEvent) in
587
855
  self.wasGestureActive = self.isGestureActive
588
856
  if self.handleMapChangedEvents.contains(.regionIsChanging) {
@@ -620,7 +888,7 @@ extension RNMBXMapView {
620
888
  }
621
889
 
622
890
  private func buildStateObject() -> [String: Any] {
623
- let cameraOptions = CameraOptions(cameraState: cameraState)
891
+ let cameraOptions = CameraOptions(cameraState: mapView.cameraState)
624
892
  let bounds = mapView.mapboxMap.coordinateBounds(for: cameraOptions)
625
893
 
626
894
  return [
@@ -646,7 +914,7 @@ extension RNMBXMapView {
646
914
  }
647
915
 
648
916
  private func buildRegionObject() -> [String: Any] {
649
- let cameraOptions = CameraOptions(cameraState: cameraState)
917
+ let cameraOptions = CameraOptions(cameraState: mapView.cameraState)
650
918
  let bounds = mapView.mapboxMap.coordinateBounds(for: cameraOptions)
651
919
  let boundsArray : JSONArray = [
652
920
  [.number(bounds.northeast.longitude),.number(bounds.northeast.latitude)],
@@ -805,7 +1073,10 @@ extension RNMBXMapView {
805
1073
 
806
1074
  @objc public func setReactOnPress(_ value: @escaping RCTBubblingEventBlock) {
807
1075
  self.reactOnPress = value
808
-
1076
+ changed(.onPress)
1077
+ }
1078
+
1079
+ func applyOnPress() {
809
1080
  let singleTapGestureRecognizer = self.mapView.gestures.singleTapGestureRecognizer
810
1081
 
811
1082
  singleTapGestureRecognizer.removeTarget(pointAnnotationManager.manager, action: nil)
@@ -817,9 +1088,14 @@ extension RNMBXMapView {
817
1088
 
818
1089
  @objc public func setReactOnLongPress(_ value: @escaping RCTBubblingEventBlock) {
819
1090
  self.reactOnLongPress = value
820
-
821
- let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(doHandleLongPress(_:)))
822
- self.mapView.addGestureRecognizer(longPressGestureRecognizer)
1091
+ changed(.onLongPress)
1092
+ }
1093
+
1094
+ func applyOnLongPress() {
1095
+ if (reactOnLongPress != nil) {
1096
+ let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(doHandleLongPress(_:)))
1097
+ self.mapView.addGestureRecognizer(longPressGestureRecognizer)
1098
+ }
823
1099
  }
824
1100
  }
825
1101
 
@@ -896,11 +1172,29 @@ extension RNMBXMapView: GestureManagerDelegate {
896
1172
  return orderedLayers.lazy.reversed().compactMap { layersToSource[$0.id] }.first ?? sources.first
897
1173
  }
898
1174
 
1175
+
1176
+
1177
+ func _tapEvent(_ tapPoint: CGPoint) -> RNMBXEvent {
1178
+ let location = self.mapboxMap.coordinate(for: tapPoint)
1179
+ var geojson = Feature(geometry: .point(Point(location)));
1180
+ geojson.properties = [
1181
+ "screenPointX": .number(Double(tapPoint.x)),
1182
+ "screenPointY": .number(Double(tapPoint.y))
1183
+ ]
1184
+ let event = RNMBXEvent(type:.tap, payload: logged("reactOnPress") { try geojson.toJSON() })
1185
+ return event
1186
+ }
1187
+
899
1188
  @objc
900
1189
  func doHandleTap(_ sender: UITapGestureRecognizer) {
901
1190
  let tapPoint = sender.location(in: self)
902
1191
  pointAnnotationManager.handleTap(sender) { (_: UITapGestureRecognizer) in
903
1192
  DispatchQueue.main.async {
1193
+ if (self.deselectAnnotationOnTap) {
1194
+ if (self.pointAnnotationManager.deselectCurrentlySelected(deselectAnnotationOnTap: true)) {
1195
+ return
1196
+ }
1197
+ }
904
1198
  let touchableSources = self.touchableSources()
905
1199
  self.doHandleTapInSources(sources: touchableSources, tapPoint: tapPoint, hits: [:], touchedSources: []) { (hits, touchedSources) in
906
1200
 
@@ -932,14 +1226,7 @@ extension RNMBXMapView: GestureManagerDelegate {
932
1226
 
933
1227
  } else {
934
1228
  if let reactOnPress = self.reactOnPress {
935
- let location = self.mapboxMap.coordinate(for: tapPoint)
936
- var geojson = Feature(geometry: .point(Point(location)));
937
- geojson.properties = [
938
- "screenPointX": .number(Double(tapPoint.x)),
939
- "screenPointY": .number(Double(tapPoint.y))
940
- ]
941
- let event = RNMBXEvent(type:.tap, payload: logged("reactOnPress") { try geojson.toJSON() })
942
- self.fireEvent(event: event, callback: reactOnPress)
1229
+ self.fireEvent(event: self._tapEvent(tapPoint), callback: reactOnPress)
943
1230
  }
944
1231
  }
945
1232
  }
@@ -1079,7 +1366,7 @@ extension RNMBXMapView {
1079
1366
  }
1080
1367
  }
1081
1368
 
1082
- class PointAnnotationManager : AnnotationInteractionDelegate {
1369
+ class RNMBXPointAnnotationManager : AnnotationInteractionDelegate {
1083
1370
  weak var selected : RNMBXPointAnnotation? = nil
1084
1371
  private var draggedAnnotation: PointAnnotation?
1085
1372
 
@@ -1087,6 +1374,50 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1087
1374
  // We handle taps ourselfs
1088
1375
  // onTap(annotations: annotations)
1089
1376
  }
1377
+
1378
+ func deselectCurrentlySelected(deselectAnnotationOnTap: Bool = false) -> Bool {
1379
+ if let selected = selected {
1380
+ selected.doDeselect(deselectAnnotationOnMapTap: deselectAnnotationOnTap)
1381
+ self.selected = nil
1382
+ return true
1383
+ }
1384
+ return false
1385
+ }
1386
+
1387
+ func onAnnotationClick(pointAnnotation: RNMBXPointAnnotation) {
1388
+ let oldSelected = selected
1389
+ var newSelected: RNMBXPointAnnotation? = pointAnnotation
1390
+
1391
+ if (newSelected == oldSelected) {
1392
+ newSelected = nil
1393
+ }
1394
+
1395
+ deselectCurrentlySelected()
1396
+
1397
+ if let newSelected = newSelected {
1398
+ newSelected.doSelect()
1399
+ selected = newSelected
1400
+ }
1401
+ }
1402
+
1403
+ func lookup(_ annotation: PointAnnotation) -> RNMBXPointAnnotation? {
1404
+ guard let userInfo = annotation.userInfo else {
1405
+ return nil
1406
+ }
1407
+ if let rnmbxPointAnnotationWeakRef = userInfo[RNMBXPointAnnotation.key] as? WeakRef<RNMBXPointAnnotation> {
1408
+ if let rnmbxPointAnnotation = rnmbxPointAnnotationWeakRef.object {
1409
+ return rnmbxPointAnnotation
1410
+ }
1411
+ }
1412
+ #if RNMBX_11
1413
+ // see https://github.com/rnmapbox/maps/issues/3121
1414
+ if let rnmbxPointAnnotation = annotations.object(forKey: annotation.id as NSString) {
1415
+ return rnmbxPointAnnotation;
1416
+ }
1417
+ #endif
1418
+ return nil
1419
+ }
1420
+
1090
1421
 
1091
1422
  func onTap(annotations: [Annotation]) {
1092
1423
  guard annotations.count > 0 else {
@@ -1094,34 +1425,9 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1094
1425
  }
1095
1426
 
1096
1427
  for annotation in annotations {
1097
- if let pointAnnotation = annotation as? PointAnnotation,
1098
- let userInfo = pointAnnotation.userInfo {
1099
-
1100
- if let RNMBXPointAnnotation = userInfo[RNMBXPointAnnotation.key] as? WeakRef<RNMBXPointAnnotation> {
1101
- if let pt = RNMBXPointAnnotation.object {
1102
- let position = pt.superview?.convert(pt.layer.position, to: nil)
1103
- let location = pt.map?.mapboxMap.coordinate(for: position!)
1104
- var geojson = Feature(geometry: .point(Point(location!)))
1105
- geojson.identifier = .string(pt.id)
1106
- geojson.properties = [
1107
- "screenPointX": .number(Double(position!.x)),
1108
- "screenPointY": .number(Double(position!.y))
1109
- ]
1110
- let event = RNMBXEvent(type:.tap, payload: logged("doHandleTap") { try geojson.toJSON() })
1111
- if let selected = selected {
1112
- guard let onDeselected = pt.onDeselected else {
1113
- return
1114
- }
1115
- onDeselected(event.toJSON())
1116
- selected.onDeselect()
1117
- }
1118
- guard let onSelected = pt.onSelected else {
1119
- return
1120
- }
1121
- onSelected(event.toJSON())
1122
- pt.onSelect()
1123
- selected = pt
1124
- }
1428
+ if let annotation = annotation as? PointAnnotation {
1429
+ if let pointAnnotation = lookup(annotation) {
1430
+ onAnnotationClick(pointAnnotation: pointAnnotation)
1125
1431
  }
1126
1432
  }
1127
1433
  }
@@ -1185,41 +1491,36 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1185
1491
 
1186
1492
  for annotation in annotations {
1187
1493
  if let pointAnnotation = annotation as? PointAnnotation,
1188
- let userInfo = pointAnnotation.userInfo {
1189
-
1190
- if let RNMBXPointAnnotation = userInfo[RNMBXPointAnnotation.key] as? WeakRef<RNMBXPointAnnotation> {
1191
- if let pt = RNMBXPointAnnotation.object {
1494
+ let pt = lookup(pointAnnotation) {
1192
1495
  let position = pt.superview?.convert(pt.layer.position, to: nil)
1193
1496
  var geojson = Feature(geometry: .point(Point(targetPoint)))
1194
- geojson.identifier = .string(pt.id)
1195
- geojson.properties = [
1196
- "screenPointX": .number(Double(position!.x)),
1197
- "screenPointY": .number(Double(position!.y))
1198
- ]
1199
- let event = RNMBXEvent(type:.longPress, payload: logged("doHandleLongPress") { try geojson.toJSON() })
1200
- switch (dragState) {
1201
- case .began:
1202
- guard let onDragStart = pt.onDragStart else {
1203
- return
1204
- }
1205
- onDragStart(event.toJSON())
1206
- case .changed:
1207
- guard let onDrag = pt.onDrag else {
1208
- return
1209
- }
1210
- onDrag(event.toJSON())
1497
+ geojson.identifier = .string(pt.id)
1498
+ geojson.properties = [
1499
+ "screenPointX": .number(Double(position!.x)),
1500
+ "screenPointY": .number(Double(position!.y))
1501
+ ]
1502
+ let event = RNMBXEvent(type:.longPress, payload: logged("doHandleLongPress") { try geojson.toJSON() })
1503
+ switch (dragState) {
1504
+ case .began:
1505
+ guard let onDragStart = pt.onDragStart else {
1211
1506
  return
1212
- case .ended:
1213
- guard let onDragEnd = pt.onDragEnd else {
1214
- return
1215
- }
1216
- onDragEnd(event.toJSON())
1507
+ }
1508
+ onDragStart(event.toJSON())
1509
+ case .changed:
1510
+ guard let onDrag = pt.onDrag else {
1217
1511
  return
1218
- default:
1512
+ }
1513
+ onDrag(event.toJSON())
1514
+ return
1515
+ case .ended:
1516
+ guard let onDragEnd = pt.onDragEnd else {
1219
1517
  return
1220
1518
  }
1519
+ onDragEnd(event.toJSON())
1520
+ return
1521
+ default:
1522
+ return
1221
1523
  }
1222
- }
1223
1524
  }
1224
1525
  }
1225
1526
  }
@@ -1254,7 +1555,7 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1254
1555
 
1255
1556
  // Find if any `queriedFeatureIds` match an annotation's `id`
1256
1557
  let draggedAnnotations = self.manager.annotations.filter { queriedFeatureIds.contains($0.id) }
1257
- let enabledAnnotations = draggedAnnotations.filter { ($0.userInfo?[RNMBXPointAnnotation.key] as? WeakRef<RNMBXPointAnnotation>)?.object?.draggable ?? false }
1558
+ let enabledAnnotations = draggedAnnotations.filter { self.lookup($0)?.draggable ?? false }
1258
1559
  // If `tappedAnnotations` is not empty, call delegate
1259
1560
  if !enabledAnnotations.isEmpty {
1260
1561
  self.draggedAnnotation = enabledAnnotations.first!
@@ -1297,9 +1598,19 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1297
1598
  manager.annotations.removeAll(where: {$0.id == annotation.id})
1298
1599
  }
1299
1600
 
1300
- func add(_ annotation: PointAnnotation) {
1601
+ #if RNMBX_11
1602
+ var annotations = NSMapTable<NSString, RNMBXPointAnnotation>.init(
1603
+ keyOptions: .copyIn,
1604
+ valueOptions: .weakMemory
1605
+ )
1606
+ #endif
1607
+
1608
+ func add(_ annotation: PointAnnotation, _ rnmbxPointAnnotation: RNMBXPointAnnotation) {
1301
1609
  manager.annotations.append(annotation)
1302
1610
  manager.refresh()
1611
+ #if RNMBX_11
1612
+ annotations.setObject(rnmbxPointAnnotation, forKey: annotation.id as NSString)
1613
+ #endif
1303
1614
  }
1304
1615
 
1305
1616
  func update(_ annotation: PointAnnotation) {