@rnmapbox/maps 10.1.0 → 10.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +507 -207
  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
230
  self.eventDispatcher = eventDispatcher
212
- super.init(frame: frame, mapInitOptions: MapInitOptions())
213
- #else
214
- let resourceOptions = ResourceOptions(accessToken: RNMBXModule.accessToken!)
215
- 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,141 @@ 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 scrollEnabled
277
+ case rotateEnabled
278
+ case pitchEnabled
279
+ case onMapChange
280
+ case styleURL
281
+ case gestureSettings
282
+
283
+ func apply(_ map: RNMBXMapView) -> Void {
284
+ switch self {
285
+ case .projection:
286
+ map.applyProjection()
287
+ case .localizeLabels:
288
+ map.applyLocalizeLabels()
289
+ case .attribution:
290
+ map.applyAttribution()
291
+ case .logo:
292
+ map.applyLogo()
293
+ case .compass:
294
+ map.applyCompass()
295
+ case .scaleBar:
296
+ map.applyScaleBar()
297
+ case .onLongPress:
298
+ map.applyOnLongPress()
299
+ case .onPress:
300
+ map.applyOnPress()
301
+ case .scrollEnabled:
302
+ map.applyScrollEnabled()
303
+ case .rotateEnabled:
304
+ map.applyRotateEnabled()
305
+ case .onMapChange:
306
+ map.applyOnMapChange()
307
+ case .styleURL:
308
+ map.applyStyleURL()
309
+ case .pitchEnabled:
310
+ map.applyPitchEnabled()
311
+ case .gestureSettings:
312
+ map.applyGestureSettings()
313
+ }
314
+ }
315
+ }
316
+
317
+ func changed(_ property: Property) {
318
+ changes.add(name: property.rawValue, update: property.apply)
319
+ }
320
+
321
+ func withMapView(callback: @escaping () -> Void) {
322
+ if _mapView != nil {
323
+ callback()
324
+ } else {
325
+ mapViewWaiters.append(callback)
326
+ }
327
+ }
328
+
329
+ var projection: StyleProjection?
330
+
255
331
  @objc public func setReactProjection(_ value: String?) {
256
332
  if let value = value {
257
- let projection = StyleProjection(name: value == "globe" ? .globe : .mercator)
258
- logged("RNMBXMapView.setReactProjection") {
333
+ projection = StyleProjection(name: value == "globe" ? .globe : .mercator)
334
+ } else {
335
+ projection = nil
336
+ }
337
+ changed(.projection)
338
+ }
339
+
340
+ func applyProjection() {
341
+ logged("RNMBXMapView.setReactProjection") {
342
+ if let projection = projection {
259
343
  try self.mapboxMap.style.setProjection(projection)
260
344
  }
261
345
  }
262
346
  }
263
-
347
+
348
+ var locale: (layerIds: [String]?, locale: Locale)? = nil
349
+
264
350
  @objc public func setReactLocalizeLabels(_ value: NSDictionary?) {
351
+ if let value = value {
352
+ let localeString = value["locale"] as! String
353
+ let layerIds = value["layerIds"] as! [String]?
354
+ let locale = localeString == "current" ? Locale.current : Locale(identifier: localeString)
355
+ self.locale = (layerIds, locale)
356
+ }
357
+ changed(.localizeLabels)
358
+ }
359
+
360
+ func applyLocalizeLabels() {
265
361
  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)
362
+ logged("RNMBXMapView.\(#function)") {
363
+ if let locale = self.locale {
364
+ try self.mapboxMap.style.localizeLabels(into: locale.locale, forLayerIds: locale.layerIds)
272
365
  }
273
366
  }
274
367
  }
275
368
  }
276
369
 
277
- @objc public func setReactGestureSettings(_ value: NSDictionary?) {
278
- if let value = value, let gestures = self.mapView.gestures {
279
- var options = gestures.options
370
+ struct GestureSettings {
371
+ var doubleTapToZoomInEnabled: Bool? = nil;
372
+ var doubleTouchToZoomOutEnabled: Bool? = nil;
373
+ var pinchPanEnabled: Bool? = nil;
374
+ var pinchZoomEnabled: Bool? = nil;
375
+ var pitchEnabled: Bool? = nil;
376
+ var quickZoomEnabled: Bool? = nil;
377
+ var rotateEnabled: Bool? = nil;
378
+ var panEnabled: Bool? = nil;
379
+ var panDecelerationFactor: CGFloat? = nil;
380
+ #if RNMBX_11
381
+ var simultaneousRotateAndPinchZoomEnabled: Bool? = nil;
382
+ #endif
383
+ }
384
+
385
+ var gestureSettings = GestureSettings()
386
+
387
+ @objc
388
+ public func setReactGestureSettings(_ value: NSDictionary?) {
389
+ if let value = value {
390
+ var options = gestureSettings
280
391
  if let doubleTapToZoomInEnabled = value["doubleTapToZoomInEnabled"] as? NSNumber {
281
392
  options.doubleTapToZoomInEnabled = doubleTapToZoomInEnabled.boolValue
282
393
  }
@@ -290,10 +401,10 @@ open class RNMBXMapView : MapView {
290
401
  options.pinchZoomEnabled = pinchZoomEnabled.boolValue
291
402
  }
292
403
  /* android only
293
- if let pinchZoomDecelerationEnabled = value["pinchZoomDecelerationEnabled"] as? NSNumber {
294
- options.pinchZoomDecelerationEnabled = pinchZoomDecelerationEnabled.boolValue
295
- }
296
- */
404
+ if let pinchZoomDecelerationEnabled = value["pinchZoomDecelerationEnabled"] as? NSNumber {
405
+ options.pinchZoomDecelerationEnabled = pinchZoomDecelerationEnabled.boolValue
406
+ }
407
+ */
297
408
  if let pitchEnabled = value["pitchEnabled"] as? NSNumber {
298
409
  options.pitchEnabled = pitchEnabled.boolValue
299
410
  }
@@ -304,76 +415,188 @@ open class RNMBXMapView : MapView {
304
415
  options.rotateEnabled = rotateEnabled.boolValue
305
416
  }
306
417
  /* android only
307
- if let rotateDecelerationEnabled = value["rotateDecelerationEnabled"] as? NSNumber {
308
- options.rotateDecelerationEnabled = rotateDecelerationEnabled.boolValue
309
- }*/
418
+ if let rotateDecelerationEnabled = value["rotateDecelerationEnabled"] as? NSNumber {
419
+ options.rotateDecelerationEnabled = rotateDecelerationEnabled.boolValue
420
+ }*/
310
421
  if let panEnabled = value["panEnabled"] as? NSNumber {
311
422
  options.panEnabled = panEnabled.boolValue
312
423
  }
313
424
  if let panDecelerationFactor = value["panDecelerationFactor"] as? NSNumber {
314
425
  options.panDecelerationFactor = panDecelerationFactor.CGFloat
315
426
  }
316
- #if RNMBX_11
427
+ #if RNMBX_11
317
428
  if let simultaneousRotateAndPinchZoomEnabled = value["simultaneousRotateAndPinchZoomEnabled"] as? NSNumber {
318
429
  options.simultaneousRotateAndPinchZoomEnabled = simultaneousRotateAndPinchZoomEnabled.boolValue
319
430
  }
320
- #endif
431
+ #endif
321
432
  /* android only
322
- if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
323
- options.zoomAnimationAmount = zoomAnimationAmount.CGFloat
324
- }*/
433
+ if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
434
+ options.zoomAnimationAmount = zoomAnimationAmount.CGFloat
435
+ }*/
436
+ gestureSettings = options
437
+
438
+ changed(.gestureSettings)
439
+ }
440
+ }
441
+
442
+ func applyGestureSettings() {
443
+ if let gestures = self.mapView?.gestures {
444
+ var options = gestures.options
445
+ let settings = gestureSettings
446
+ if let doubleTapToZoomInEnabled = settings.doubleTapToZoomInEnabled as? Bool {
447
+ options.doubleTapToZoomInEnabled = doubleTapToZoomInEnabled
448
+ }
449
+ if let doubleTouchToZoomOutEnabled = settings.doubleTouchToZoomOutEnabled as? Bool {
450
+ options.doubleTouchToZoomOutEnabled = doubleTouchToZoomOutEnabled
451
+ }
452
+ if let pinchPanEnabled = settings.pinchPanEnabled as? Bool {
453
+ options.pinchPanEnabled = pinchPanEnabled
454
+ }
455
+ if let pinchZoomEnabled = settings.pinchZoomEnabled as? Bool {
456
+ options.pinchZoomEnabled = pinchZoomEnabled
457
+ }
458
+ if let pitchEnabled = settings.pitchEnabled as? Bool {
459
+ options.pitchEnabled = pitchEnabled
460
+ }
461
+ if let quickZoomEnabled = settings.quickZoomEnabled as? Bool {
462
+ options.quickZoomEnabled = quickZoomEnabled
463
+ }
464
+ if let rotateEnabled = settings.rotateEnabled as? Bool {
465
+ options.rotateEnabled = rotateEnabled
466
+ }
467
+ /* android only
468
+ if let rotateDecelerationEnabled = value["rotateDecelerationEnabled"] as? NSNumber {
469
+ options.rotateDecelerationEnabled = rotateDecelerationEnabled.boolValue
470
+ }*/
471
+ if let panEnabled = settings.panEnabled as? Bool {
472
+ options.panEnabled = panEnabled
473
+ }
474
+ if let panDecelerationFactor = settings.panDecelerationFactor as? CGFloat {
475
+ options.panDecelerationFactor = panDecelerationFactor
476
+ }
477
+ #if RNMBX_11
478
+ if let simultaneousRotateAndPinchZoomEnabled = settings.simultaneousRotateAndPinchZoomEnabled as? Bool {
479
+ options.simultaneousRotateAndPinchZoomEnabled = simultaneousRotateAndPinchZoomEnabled
480
+ }
481
+ #endif
482
+ /* android only
483
+ if let zoomAnimationAmount = value["zoomAnimationAmount"] as? NSNumber {
484
+ options.zoomAnimationAmount = zoomAnimationAmount.CGFloat
485
+ }*/
325
486
  if options != gestures.options {
326
487
  gestures.options = options
327
488
  }
328
489
  }
329
490
  }
330
491
 
492
+ var attributionEnabled: OrnamentVisibility? = nil
493
+ var attributionOptions: (position: OrnamentPosition, margins: CGPoint)? = nil
494
+
331
495
  @objc public func setReactAttributionEnabled(_ value: Bool) {
332
- mapView.ornaments.options.attributionButton.visibility = value ? .visible : .hidden
496
+ attributionEnabled = value ? .visible : .hidden
497
+ changed(.attribution)
333
498
  }
334
499
 
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
500
+ func applyAttribution() {
501
+ if let visibility = attributionEnabled {
502
+ mapView.ornaments.options.attributionButton.visibility = visibility
339
503
  }
504
+ if let options = attributionOptions {
505
+ mapView.ornaments.options.attributionButton.position = options.position
506
+ mapView.ornaments.options.attributionButton.margins = options.margins
507
+ }
508
+ }
509
+
510
+ @objc public func setReactAttributionPosition(_ position: [String: NSNumber]) {
511
+ attributionOptions = self.getOrnamentOptionsFromPosition(position)
512
+ changed(.attribution)
340
513
  }
341
514
 
515
+ var logoEnabled: OrnamentVisibility? = nil
516
+ var logoOptions: (position: OrnamentPosition, margins: CGPoint)? = nil
517
+
342
518
  @objc public func setReactLogoEnabled(_ value: Bool) {
343
- mapView.ornaments.options.logo.visibility = value ? .visible : .hidden
519
+ logoEnabled = value ? .visible : .hidden
520
+ changed(.logo)
344
521
  }
345
522
 
346
523
  @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
524
+ logoOptions = self.getOrnamentOptionsFromPosition(position)
525
+ changed(.logo)
526
+ }
527
+
528
+ func applyLogo() {
529
+ if let visibility = logoEnabled {
530
+ mapView.ornaments.options.logo.visibility = visibility
531
+ }
532
+ if let options = logoOptions {
533
+ mapView.ornaments.options.logo.position = options.position
534
+ mapView.ornaments.options.logo.margins = options.margins
350
535
  }
351
536
  }
352
537
 
538
+ var compassEnabled: Bool = false
539
+ var compassPosition: OrnamentPosition? = nil
540
+ var compassMargins: CGPoint? = nil
541
+ var compassFadeWhenNorth: Bool = false
542
+ var compassImage: String?
543
+
353
544
  @objc public func setReactCompassEnabled(_ value: Bool) {
354
545
  compassEnabled = value
355
- refreshCompassVisibility()
546
+ changed(.compass)
356
547
  }
357
-
548
+
358
549
  @objc public func setReactCompassFadeWhenNorth(_ value: Bool) {
359
550
  compassFadeWhenNorth = value
360
- refreshCompassVisibility()
551
+ changed(.compass)
361
552
  }
362
553
 
363
- private func refreshCompassVisibility() {
554
+ @objc public func setReactCompassPosition(_ position: [String: NSNumber]) {
555
+ if let compassOptions = self.getOrnamentOptionsFromPosition(position) {
556
+ compassPosition = compassOptions.position
557
+ compassMargins = compassOptions.margins
558
+ changed(.compass)
559
+ }
560
+ }
561
+
562
+ @objc public func setReactCompassViewPosition(_ position: NSInteger) {
563
+ compassPosition = toOrnamentPositon(Int(truncating: NSNumber(value: position)))
564
+ changed(.compass)
565
+ }
566
+
567
+ @objc public func setReactCompassViewMargins(_ margins: CGPoint) {
568
+ compassMargins = margins
569
+ changed(.compass)
570
+ }
571
+
572
+ @objc public func setReactCompassImage(_ image: String) {
573
+ compassImage = image.isEmpty ? nil : image
574
+ changed(.compass)
575
+ }
576
+
577
+ func applyCompass() {
364
578
  var visibility: OrnamentVisibility = .hidden
365
579
  if compassEnabled {
366
580
  visibility = compassFadeWhenNorth ? .adaptive : .visible
367
581
  }
368
582
  mapView.ornaments.options.compass.visibility = visibility
369
583
 
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
584
+ if let position = compassPosition {
585
+ mapView.ornaments.options.compass.position = position
586
+ }
587
+ if let margina = compassMargins {
588
+ mapView.ornaments.options.compass.margins = margina
589
+ }
590
+
591
+ if let compassImage = compassImage {
592
+ onMapStyleLoaded { map in
593
+ let img = map.style.image(withId: compassImage)
594
+ self.mapView.ornaments.options.compass.image = img
595
+ }
596
+ } else {
597
+ // Does not currently reset the image to the default.
598
+ // See https://github.com/mapbox/mapbox-maps-ios/issues/1673.
599
+ self.mapView.ornaments.options.compass.image = nil
377
600
  }
378
601
  }
379
602
 
@@ -399,42 +622,43 @@ open class RNMBXMapView : MapView {
399
622
  return .topLeading
400
623
  }
401
624
  }
625
+
626
+ var scaleBarEnabled: Bool? = nil
627
+ var scaleBarPosition: OrnamentPosition? = nil
628
+ var scaleBarMargins: CGPoint? = nil
402
629
 
403
- @objc public func setReactCompassViewPosition(_ position: NSInteger) {
404
- mapView.ornaments.options.compass.position = toOrnamentPositon(Int(truncating: NSNumber(value: position)))
630
+ @objc public func setReactScaleBarEnabled(_ value: Bool) {
631
+ scaleBarEnabled = value
632
+ changed(.scaleBar)
405
633
  }
406
634
 
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()
635
+ @objc public func setReactScaleBarPosition(_ position: [String: NSNumber]) {
636
+ if let ornamentOptions = self.getOrnamentOptionsFromPosition(position) {
637
+ scaleBarPosition = ornamentOptions.position
638
+ scaleBarMargins = ornamentOptions.margins
639
+ }
414
640
  }
415
641
 
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
642
+ func applyScaleBar() {
643
+ if let enabled = scaleBarEnabled {
644
+ mapView.ornaments.options.scaleBar.visibility = enabled ? .visible : .hidden
645
+ }
646
+ if let position = scaleBarPosition {
647
+ mapView.ornaments.options.scaleBar.position = position
648
+ }
649
+ if let margins = scaleBarMargins {
650
+ mapView.ornaments.options.scaleBar.margins = margins
426
651
  }
427
652
  }
428
653
 
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
654
+ @objc override public func didSetProps(_ props: [String]) {
655
+ if (_mapView == nil) {
656
+ createMapView()
657
+
658
+ mapViewWaiters.forEach { $0() }
659
+ mapViewWaiters.removeAll()
437
660
  }
661
+ changes.apply(self)
438
662
  }
439
663
 
440
664
  @objc public func setReactZoomEnabled(_ value: Bool) {
@@ -443,17 +667,41 @@ open class RNMBXMapView : MapView {
443
667
  self.mapView.gestures.options.pinchZoomEnabled = value
444
668
  }
445
669
 
670
+ var scrollEnabled: Bool? = nil
446
671
  @objc public func setReactScrollEnabled(_ value: Bool) {
447
- self.mapView.gestures.options.panEnabled = value
448
- self.mapView.gestures.options.pinchPanEnabled = value
672
+ self.scrollEnabled = value
673
+ changed(.scrollEnabled)
674
+ }
675
+
676
+ func applyScrollEnabled() {
677
+ if let value = scrollEnabled {
678
+ self.mapView.gestures.options.panEnabled = value
679
+ self.mapView.gestures.options.pinchPanEnabled = value
680
+ }
449
681
  }
450
682
 
683
+ var rotateEnabled: Bool? = nil
451
684
  @objc public func setReactRotateEnabled(_ value: Bool) {
452
- self.mapView.gestures.options.rotateEnabled = value
685
+ rotateEnabled = value
686
+ changed(.rotateEnabled)
687
+ }
688
+
689
+ func applyRotateEnabled() {
690
+ if let value = rotateEnabled {
691
+ self.mapView.gestures.options.rotateEnabled = value
692
+ }
453
693
  }
454
694
 
695
+
696
+ var pitchEnabled: Bool? = nil
455
697
  @objc public func setReactPitchEnabled(_ value: Bool) {
456
- self.mapView.gestures.options.pitchEnabled = value
698
+ self.pitchEnabled = value
699
+ changed(.pitchEnabled)
700
+ }
701
+ func applyPitchEnabled() {
702
+ if let value = pitchEnabled {
703
+ self.mapView.gestures.options.pitchEnabled = value
704
+ }
457
705
  }
458
706
 
459
707
  private func removeAllFeaturesFromMap(reason: RemovalReason) {
@@ -482,11 +730,17 @@ open class RNMBXMapView : MapView {
482
730
  addFeaturesToMap(style: style)
483
731
  }
484
732
 
733
+ var reactStyleURL: String? = nil
485
734
  @objc public func setReactStyleURL(_ value: String?) {
735
+ self.reactStyleURL = value
736
+ changed(.styleURL)
737
+ }
738
+
739
+ public func applyStyleURL() {
486
740
  var initialLoad = !self.styleLoaded
487
741
  if !initialLoad { refreshComponentsBeforeStyleChange() }
488
742
  self.styleLoaded = false
489
- if let value = value {
743
+ if let value = reactStyleURL {
490
744
  if let _ = URL(string: value) {
491
745
  if let styleURI = StyleURI(rawValue: value) {
492
746
  mapView.mapboxMap.loadStyleURI(styleURI)
@@ -582,7 +836,10 @@ extension RNMBXMapView {
582
836
 
583
837
  @objc public func setReactOnMapChange(_ value: @escaping RCTBubblingEventBlock) {
584
838
  self.reactOnMapChange = value
839
+ changed(.onMapChange)
840
+ }
585
841
 
842
+ func applyOnMapChange() {
586
843
  self.onEvery(event: .cameraChanged, handler: { (self, cameraEvent) in
587
844
  self.wasGestureActive = self.isGestureActive
588
845
  if self.handleMapChangedEvents.contains(.regionIsChanging) {
@@ -620,7 +877,7 @@ extension RNMBXMapView {
620
877
  }
621
878
 
622
879
  private func buildStateObject() -> [String: Any] {
623
- let cameraOptions = CameraOptions(cameraState: cameraState)
880
+ let cameraOptions = CameraOptions(cameraState: mapView.cameraState)
624
881
  let bounds = mapView.mapboxMap.coordinateBounds(for: cameraOptions)
625
882
 
626
883
  return [
@@ -646,7 +903,7 @@ extension RNMBXMapView {
646
903
  }
647
904
 
648
905
  private func buildRegionObject() -> [String: Any] {
649
- let cameraOptions = CameraOptions(cameraState: cameraState)
906
+ let cameraOptions = CameraOptions(cameraState: mapView.cameraState)
650
907
  let bounds = mapView.mapboxMap.coordinateBounds(for: cameraOptions)
651
908
  let boundsArray : JSONArray = [
652
909
  [.number(bounds.northeast.longitude),.number(bounds.northeast.latitude)],
@@ -805,7 +1062,10 @@ extension RNMBXMapView {
805
1062
 
806
1063
  @objc public func setReactOnPress(_ value: @escaping RCTBubblingEventBlock) {
807
1064
  self.reactOnPress = value
808
-
1065
+ changed(.onPress)
1066
+ }
1067
+
1068
+ func applyOnPress() {
809
1069
  let singleTapGestureRecognizer = self.mapView.gestures.singleTapGestureRecognizer
810
1070
 
811
1071
  singleTapGestureRecognizer.removeTarget(pointAnnotationManager.manager, action: nil)
@@ -817,9 +1077,14 @@ extension RNMBXMapView {
817
1077
 
818
1078
  @objc public func setReactOnLongPress(_ value: @escaping RCTBubblingEventBlock) {
819
1079
  self.reactOnLongPress = value
820
-
821
- let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(doHandleLongPress(_:)))
822
- self.mapView.addGestureRecognizer(longPressGestureRecognizer)
1080
+ changed(.onLongPress)
1081
+ }
1082
+
1083
+ func applyOnLongPress() {
1084
+ if (reactOnLongPress != nil) {
1085
+ let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(doHandleLongPress(_:)))
1086
+ self.mapView.addGestureRecognizer(longPressGestureRecognizer)
1087
+ }
823
1088
  }
824
1089
  }
825
1090
 
@@ -896,11 +1161,29 @@ extension RNMBXMapView: GestureManagerDelegate {
896
1161
  return orderedLayers.lazy.reversed().compactMap { layersToSource[$0.id] }.first ?? sources.first
897
1162
  }
898
1163
 
1164
+
1165
+
1166
+ func _tapEvent(_ tapPoint: CGPoint) -> RNMBXEvent {
1167
+ let location = self.mapboxMap.coordinate(for: tapPoint)
1168
+ var geojson = Feature(geometry: .point(Point(location)));
1169
+ geojson.properties = [
1170
+ "screenPointX": .number(Double(tapPoint.x)),
1171
+ "screenPointY": .number(Double(tapPoint.y))
1172
+ ]
1173
+ let event = RNMBXEvent(type:.tap, payload: logged("reactOnPress") { try geojson.toJSON() })
1174
+ return event
1175
+ }
1176
+
899
1177
  @objc
900
1178
  func doHandleTap(_ sender: UITapGestureRecognizer) {
901
1179
  let tapPoint = sender.location(in: self)
902
1180
  pointAnnotationManager.handleTap(sender) { (_: UITapGestureRecognizer) in
903
1181
  DispatchQueue.main.async {
1182
+ if (self.deselectAnnotationOnTap) {
1183
+ if (self.pointAnnotationManager.deselectCurrentlySelected(deselectAnnotationOnTap: true)) {
1184
+ return
1185
+ }
1186
+ }
904
1187
  let touchableSources = self.touchableSources()
905
1188
  self.doHandleTapInSources(sources: touchableSources, tapPoint: tapPoint, hits: [:], touchedSources: []) { (hits, touchedSources) in
906
1189
 
@@ -932,14 +1215,7 @@ extension RNMBXMapView: GestureManagerDelegate {
932
1215
 
933
1216
  } else {
934
1217
  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)
1218
+ self.fireEvent(event: self._tapEvent(tapPoint), callback: reactOnPress)
943
1219
  }
944
1220
  }
945
1221
  }
@@ -1079,7 +1355,7 @@ extension RNMBXMapView {
1079
1355
  }
1080
1356
  }
1081
1357
 
1082
- class PointAnnotationManager : AnnotationInteractionDelegate {
1358
+ class RNMBXPointAnnotationManager : AnnotationInteractionDelegate {
1083
1359
  weak var selected : RNMBXPointAnnotation? = nil
1084
1360
  private var draggedAnnotation: PointAnnotation?
1085
1361
 
@@ -1087,6 +1363,50 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1087
1363
  // We handle taps ourselfs
1088
1364
  // onTap(annotations: annotations)
1089
1365
  }
1366
+
1367
+ func deselectCurrentlySelected(deselectAnnotationOnTap: Bool = false) -> Bool {
1368
+ if let selected = selected {
1369
+ selected.doDeselect(deselectAnnotationOnMapTap: deselectAnnotationOnTap)
1370
+ self.selected = nil
1371
+ return true
1372
+ }
1373
+ return false
1374
+ }
1375
+
1376
+ func onAnnotationClick(pointAnnotation: RNMBXPointAnnotation) {
1377
+ let oldSelected = selected
1378
+ var newSelected: RNMBXPointAnnotation? = pointAnnotation
1379
+
1380
+ if (newSelected == oldSelected) {
1381
+ newSelected = nil
1382
+ }
1383
+
1384
+ deselectCurrentlySelected()
1385
+
1386
+ if let newSelected = newSelected {
1387
+ newSelected.doSelect()
1388
+ selected = newSelected
1389
+ }
1390
+ }
1391
+
1392
+ func lookup(_ annotation: PointAnnotation) -> RNMBXPointAnnotation? {
1393
+ guard let userInfo = annotation.userInfo else {
1394
+ return nil
1395
+ }
1396
+ if let rnmbxPointAnnotationWeakRef = userInfo[RNMBXPointAnnotation.key] as? WeakRef<RNMBXPointAnnotation> {
1397
+ if let rnmbxPointAnnotation = rnmbxPointAnnotationWeakRef.object {
1398
+ return rnmbxPointAnnotation
1399
+ }
1400
+ }
1401
+ #if RNMBX_11
1402
+ // see https://github.com/rnmapbox/maps/issues/3121
1403
+ if let rnmbxPointAnnotation = annotations.object(forKey: annotation.id as NSString) {
1404
+ return rnmbxPointAnnotation;
1405
+ }
1406
+ #endif
1407
+ return nil
1408
+ }
1409
+
1090
1410
 
1091
1411
  func onTap(annotations: [Annotation]) {
1092
1412
  guard annotations.count > 0 else {
@@ -1094,34 +1414,9 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1094
1414
  }
1095
1415
 
1096
1416
  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
- }
1417
+ if let annotation = annotation as? PointAnnotation {
1418
+ if let pointAnnotation = lookup(annotation) {
1419
+ onAnnotationClick(pointAnnotation: pointAnnotation)
1125
1420
  }
1126
1421
  }
1127
1422
  }
@@ -1185,41 +1480,36 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1185
1480
 
1186
1481
  for annotation in annotations {
1187
1482
  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 {
1483
+ let pt = lookup(pointAnnotation) {
1192
1484
  let position = pt.superview?.convert(pt.layer.position, to: nil)
1193
1485
  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())
1486
+ geojson.identifier = .string(pt.id)
1487
+ geojson.properties = [
1488
+ "screenPointX": .number(Double(position!.x)),
1489
+ "screenPointY": .number(Double(position!.y))
1490
+ ]
1491
+ let event = RNMBXEvent(type:.longPress, payload: logged("doHandleLongPress") { try geojson.toJSON() })
1492
+ switch (dragState) {
1493
+ case .began:
1494
+ guard let onDragStart = pt.onDragStart else {
1211
1495
  return
1212
- case .ended:
1213
- guard let onDragEnd = pt.onDragEnd else {
1214
- return
1215
- }
1216
- onDragEnd(event.toJSON())
1496
+ }
1497
+ onDragStart(event.toJSON())
1498
+ case .changed:
1499
+ guard let onDrag = pt.onDrag else {
1217
1500
  return
1218
- default:
1501
+ }
1502
+ onDrag(event.toJSON())
1503
+ return
1504
+ case .ended:
1505
+ guard let onDragEnd = pt.onDragEnd else {
1219
1506
  return
1220
1507
  }
1508
+ onDragEnd(event.toJSON())
1509
+ return
1510
+ default:
1511
+ return
1221
1512
  }
1222
- }
1223
1513
  }
1224
1514
  }
1225
1515
  }
@@ -1254,7 +1544,7 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1254
1544
 
1255
1545
  // Find if any `queriedFeatureIds` match an annotation's `id`
1256
1546
  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 }
1547
+ let enabledAnnotations = draggedAnnotations.filter { self.lookup($0)?.draggable ?? false }
1258
1548
  // If `tappedAnnotations` is not empty, call delegate
1259
1549
  if !enabledAnnotations.isEmpty {
1260
1550
  self.draggedAnnotation = enabledAnnotations.first!
@@ -1297,9 +1587,19 @@ class PointAnnotationManager : AnnotationInteractionDelegate {
1297
1587
  manager.annotations.removeAll(where: {$0.id == annotation.id})
1298
1588
  }
1299
1589
 
1300
- func add(_ annotation: PointAnnotation) {
1590
+ #if RNMBX_11
1591
+ var annotations = NSMapTable<NSString, RNMBXPointAnnotation>.init(
1592
+ keyOptions: .copyIn,
1593
+ valueOptions: .weakMemory
1594
+ )
1595
+ #endif
1596
+
1597
+ func add(_ annotation: PointAnnotation, _ rnmbxPointAnnotation: RNMBXPointAnnotation) {
1301
1598
  manager.annotations.append(annotation)
1302
1599
  manager.refresh()
1600
+ #if RNMBX_11
1601
+ annotations.setObject(rnmbxPointAnnotation, forKey: annotation.id as NSString)
1602
+ #endif
1303
1603
  }
1304
1604
 
1305
1605
  func update(_ annotation: PointAnnotation) {