@maplibre/maplibre-react-native 9.1.0 → 10.0.0-alpha.10

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 (444) hide show
  1. package/.husky/pre-commit +5 -0
  2. package/.sonarcloud.properties +1 -1
  3. package/CHANGELOG.md +107 -50
  4. package/CONTRIBUTING.md +10 -9
  5. package/README.md +1 -1
  6. package/android/build.gradle +1 -1
  7. package/android/{rctmgl → rctmln}/build.gradle +8 -8
  8. package/android/{rctmgl → rctmln}/src/main/AndroidManifest.xml +1 -1
  9. package/android/rctmln/src/main/java/com/maplibre/rctmln/RCTMLNPackage.java +99 -0
  10. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEvent.java +1 -1
  11. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEventEmitter.java +2 -2
  12. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractMapFeature.java +4 -4
  13. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerView.java +3 -3
  14. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerViewManager.java +12 -10
  15. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCallout.java} +3 -3
  16. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCalloutManager.java +22 -0
  17. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java} +18 -18
  18. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerViewManager.java} +10 -10
  19. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java} +27 -26
  20. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotationManager.java} +14 -14
  21. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraStop.java +21 -19
  22. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateItem.java +12 -12
  23. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateQueue.java +4 -4
  24. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java} +50 -50
  25. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java} +19 -19
  26. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/constants/CameraMode.java +1 -1
  27. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java} +27 -27
  28. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImagesManager.java} +17 -17
  29. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/location/LocationComponentManager.java +16 -16
  30. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java} +15 -15
  31. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java} +7 -7
  32. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/LayerSourceInfo.java +10 -10
  33. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +16 -0
  34. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +31 -0
  35. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java} +114 -114
  36. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java} +46 -46
  37. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/helpers/CameraChangeTracker.java +1 -1
  38. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java} +12 -12
  39. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java} +422 -422
  40. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java} +8 -9
  41. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java} +9 -9
  42. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/layers/RCTLayer.java +17 -17
  43. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +27 -0
  44. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayerManager.java} +13 -13
  45. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java} +10 -10
  46. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayerManager.java} +15 -15
  47. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java} +10 -10
  48. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayerManager.java} +16 -16
  49. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java} +10 -10
  50. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayerManager.java} +16 -16
  51. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java} +10 -10
  52. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayerManager.java} +15 -15
  53. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java} +10 -10
  54. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayerManager.java} +17 -17
  55. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +27 -0
  56. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayerManager.java} +13 -13
  57. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java} +10 -10
  58. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayerManager.java} +15 -15
  59. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java} +16 -16
  60. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLightManager.java} +6 -6
  61. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java} +7 -7
  62. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java} +15 -15
  63. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java} +6 -6
  64. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSourceManager.java} +7 -7
  65. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java} +22 -22
  66. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java} +35 -35
  67. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java} +5 -5
  68. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSourceManager.java} +4 -4
  69. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java} +10 -10
  70. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSourceManager.java} +12 -12
  71. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/sources/RCTSource.java +14 -14
  72. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AbstractEvent.java +1 -1
  73. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AndroidCallbackEvent.java +2 -2
  74. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/EventEmitter.java +1 -1
  75. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/FeatureClickEvent.java +8 -8
  76. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/IEvent.java +1 -1
  77. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/ImageMissingEvent.java +3 -3
  78. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/LocationEvent.java +6 -6
  79. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapChangeEvent.java +3 -3
  80. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapClickEvent.java +5 -5
  81. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapUserTrackingModeEvent.java +4 -4
  82. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/OfflineEvent.java +1 -1
  83. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationClickEvent.java +10 -10
  84. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationDragEvent.java +10 -10
  85. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventKeys.java +1 -1
  86. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventTypes.java +1 -1
  87. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/http/CustomHeadersInterceptor.java +1 -1
  88. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/LocationManager.java +8 -8
  89. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocation.java +2 -2
  90. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocationVerticalAlignment.java +1 -1
  91. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingMode.java +4 -4
  92. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingState.java +1 -1
  93. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java} +11 -11
  94. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java} +7 -7
  95. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java} +30 -30
  96. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java} +42 -47
  97. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java} +14 -14
  98. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/BitmapUtils.java +1 -1
  99. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ClusterPropertyEntry.java +2 -2
  100. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ConvertUtils.java +1 -1
  101. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/DownloadMapImageTask.java +6 -6
  102. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ExpressionParser.java +3 -3
  103. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoJSONUtils.java +14 -14
  104. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoViewport.java +4 -4
  105. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ImageEntry.java +1 -1
  106. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ResourceUtils.java +1 -1
  107. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SimpleEventCallback.java +5 -5
  108. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SphericalMercator.java +2 -2
  109. package/android/rctmln/src/main/res/values/strings.xml +3 -0
  110. package/android/settings.gradle +1 -1
  111. package/docs/Annotation.md +8 -9
  112. package/docs/Annotations.md +1 -1
  113. package/docs/BackgroundLayer.md +2 -10
  114. package/docs/Callout.md +5 -5
  115. package/docs/Camera.md +21 -50
  116. package/docs/CircleLayer.md +2 -10
  117. package/docs/CustomHttpHeaders.md +4 -4
  118. package/docs/FillExtrusionLayer.md +2 -10
  119. package/docs/FillLayer.md +2 -10
  120. package/docs/HeatmapLayer.md +2 -10
  121. package/docs/ImageSource.md +3 -2
  122. package/docs/Images.md +5 -3
  123. package/docs/Light.md +1 -1
  124. package/docs/LineLayer.md +2 -10
  125. package/docs/MapView.md +31 -39
  126. package/docs/MarkerView.md +5 -3
  127. package/docs/NativeUserLocation.md +2 -2
  128. package/docs/PointAnnotation.md +6 -9
  129. package/docs/RasterLayer.md +2 -10
  130. package/docs/RasterSource.md +3 -2
  131. package/docs/ShapeSource.md +12 -7
  132. package/docs/Style.md +1 -1
  133. package/docs/SymbolLayer.md +3 -10
  134. package/docs/UserLocation.md +16 -10
  135. package/docs/VectorSource.md +6 -5
  136. package/docs/coordinates.md +6 -0
  137. package/docs/docs.json +557 -1317
  138. package/docs/location.md +6 -0
  139. package/docs/offlineManager.md +246 -0
  140. package/docs/snapshotManager.md +3 -3
  141. package/ios/{RCTMGL → RCTMLN}/CameraMode.h +1 -1
  142. package/ios/{RCTMGL → RCTMLN}/CameraMode.m +1 -1
  143. package/ios/{RCTMGL → RCTMLN}/CameraStop.h +4 -4
  144. package/ios/{RCTMGL → RCTMLN}/CameraStop.m +7 -7
  145. package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.h +3 -3
  146. package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.m +19 -19
  147. package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.h +3 -3
  148. package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.m +3 -3
  149. package/ios/{RCTMGL → RCTMLN}/FilterParser.h +1 -1
  150. package/ios/{RCTMGL → RCTMLN}/FilterParser.m +3 -3
  151. package/ios/{RCTMGL/MGLCustomHeaders.h → RCTMLN/MLNCustomHeaders.h} +3 -3
  152. package/ios/{RCTMGL/MGLCustomHeaders.m → RCTMLN/MLNCustomHeaders.m} +10 -10
  153. package/ios/RCTMLN/MLNFaux3DUserLocationAnnotationView.h +23 -0
  154. package/ios/{RCTMGL/MGLFaux3DUserLocationAnnotationView.m → RCTMLN/MLNFaux3DUserLocationAnnotationView.m} +38 -38
  155. package/ios/{RCTMGL/MGLModule.h → RCTMLN/MLNModule.h} +3 -3
  156. package/ios/{RCTMGL/MGLModule.m → RCTMLN/MLNModule.m} +91 -91
  157. package/ios/{RCTMGL/MGLOfflineModule.h → RCTMLN/MLNOfflineModule.h} +4 -4
  158. package/ios/{RCTMGL/MGLOfflineModule.m → RCTMLN/MLNOfflineModule.m} +59 -59
  159. package/ios/{RCTMGL/MGLSnapshotModule.h → RCTMLN/MLNSnapshotModule.h} +3 -3
  160. package/ios/{RCTMGL/MGLSnapshotModule.m → RCTMLN/MLNSnapshotModule.m} +14 -14
  161. package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.h → RCTMLN/MLNUserLocationHeadingArrowLayer.h} +4 -4
  162. package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.m → RCTMLN/MLNUserLocationHeadingArrowLayer.m} +7 -7
  163. package/ios/RCTMLN/MLNUserLocationHeadingBeamLayer.h +11 -0
  164. package/ios/{RCTMGL/MGLUserLocationHeadingBeamLayer.m → RCTMLN/MLNUserLocationHeadingBeamLayer.m} +10 -10
  165. package/ios/{RCTMGL/MGLUserLocationHeadingIndicator.h → RCTMLN/MLNUserLocationHeadingIndicator.h} +3 -3
  166. package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.h +1 -1
  167. package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.m +1 -1
  168. package/ios/{RCTMGL/RCTMGL.h → RCTMLN/RCTMLN.h} +3 -3
  169. package/ios/{RCTMGL/RCTMGL.m → RCTMLN/RCTMLN.m} +4 -4
  170. package/ios/RCTMLN/RCTMLNBackgroundLayer.h +14 -0
  171. package/ios/RCTMLN/RCTMLNBackgroundLayer.m +27 -0
  172. package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.h → RCTMLN/RCTMLNBackgroundLayerManager.h} +3 -3
  173. package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.m → RCTMLN/RCTMLNBackgroundLayerManager.m} +6 -6
  174. package/ios/{RCTMGL/RCTMGLCallout.h → RCTMLN/RCTMLNCallout.h} +4 -4
  175. package/ios/{RCTMGL/RCTMGLCallout.m → RCTMLN/RCTMLNCallout.m} +6 -6
  176. package/ios/{RCTMGL/RCTMGLCalloutManager.h → RCTMLN/RCTMLNCalloutManager.h} +3 -3
  177. package/ios/RCTMLN/RCTMLNCalloutManager.m +21 -0
  178. package/ios/{RCTMGL/RCTMGLCamera.h → RCTMLN/RCTMLNCamera.h} +6 -6
  179. package/ios/{RCTMGL/RCTMGLCamera.m → RCTMLN/RCTMLNCamera.m} +30 -30
  180. package/ios/{RCTMGL/RCTMGLCameraManager.h → RCTMLN/RCTMLNCameraManager.h} +3 -3
  181. package/ios/{RCTMGL/RCTMGLCameraManager.m → RCTMLN/RCTMLNCameraManager.m} +7 -7
  182. package/ios/RCTMLN/RCTMLNCircleLayer.h +13 -0
  183. package/ios/{RCTMGL/RCTMGLCircleLayer.m → RCTMLN/RCTMLNCircleLayer.m} +10 -10
  184. package/ios/{RCTMGL/RCTMGLCircleLayerManager.h → RCTMLN/RCTMLNCircleLayerManager.h} +3 -3
  185. package/ios/{RCTMGL/RCTMGLCircleLayerManager.m → RCTMLN/RCTMLNCircleLayerManager.m} +6 -6
  186. package/ios/{RCTMGL/RCTMGLEvent.h → RCTMLN/RCTMLNEvent.h} +6 -6
  187. package/ios/{RCTMGL/RCTMGLEvent.m → RCTMLN/RCTMLNEvent.m} +8 -8
  188. package/ios/{RCTMGL/RCTMGLEventProtocol.h → RCTMLN/RCTMLNEventProtocol.h} +3 -3
  189. package/ios/{RCTMGL/RCTMGLEventTypes.h → RCTMLN/RCTMLNEventTypes.h} +3 -3
  190. package/ios/{RCTMGL/RCTMGLEventTypes.m → RCTMLN/RCTMLNEventTypes.m} +4 -4
  191. package/ios/RCTMLN/RCTMLNFillExtrusionLayer.h +14 -0
  192. package/ios/{RCTMGL/RCTMGLFillExtrusionLayer.m → RCTMLN/RCTMLNFillExtrusionLayer.m} +10 -10
  193. package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.h → RCTMLN/RCTMLNFillExtrusionLayerManager.h} +3 -3
  194. package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.m → RCTMLN/RCTMLNFillExtrusionLayerManager.m} +6 -6
  195. package/ios/RCTMLN/RCTMLNFillLayer.h +14 -0
  196. package/ios/{RCTMGL/RCTMGLFillLayer.m → RCTMLN/RCTMLNFillLayer.m} +10 -10
  197. package/ios/{RCTMGL/RCTMGLFillLayerManager.h → RCTMLN/RCTMLNFillLayerManager.h} +3 -3
  198. package/ios/{RCTMGL/RCTMGLFillLayerManager.m → RCTMLN/RCTMLNFillLayerManager.m} +6 -6
  199. package/ios/RCTMLN/RCTMLNHeatmapLayer.h +12 -0
  200. package/ios/RCTMLN/RCTMLNHeatmapLayer.m +30 -0
  201. package/ios/RCTMLN/RCTMLNHeatmapLayerManager.h +12 -0
  202. package/ios/{RCTMGL/RCTMGLHeatmapLayerManager.m → RCTMLN/RCTMLNHeatmapLayerManager.m} +6 -6
  203. package/ios/{RCTMGL/RCTMGLImageQueue.h → RCTMLN/RCTMLNImageQueue.h} +3 -3
  204. package/ios/{RCTMGL/RCTMGLImageQueue.m → RCTMLN/RCTMLNImageQueue.m} +10 -10
  205. package/ios/{RCTMGL/RCTMGLImageQueueOperation.h → RCTMLN/RCTMLNImageQueueOperation.h} +3 -3
  206. package/ios/{RCTMGL/RCTMGLImageQueueOperation.m → RCTMLN/RCTMLNImageQueueOperation.m} +12 -12
  207. package/ios/{RCTMGL/RCTMGLImageSource.h → RCTMLN/RCTMLNImageSource.h} +4 -4
  208. package/ios/{RCTMGL/RCTMGLImageSource.m → RCTMLN/RCTMLNImageSource.m} +11 -11
  209. package/ios/{RCTMGL/RCTMGLImageSourceManager.h → RCTMLN/RCTMLNImageSourceManager.h} +3 -3
  210. package/ios/{RCTMGL/RCTMGLImageSourceManager.m → RCTMLN/RCTMLNImageSourceManager.m} +6 -6
  211. package/ios/{RCTMGL/RCTMGLImages.h → RCTMLN/RCTMLNImages.h} +4 -4
  212. package/ios/{RCTMGL/RCTMGLImages.m → RCTMLN/RCTMLNImages.m} +10 -10
  213. package/ios/RCTMLN/RCTMLNImagesManager.h +5 -0
  214. package/ios/{RCTMGL/RCTMGLImagesManager.m → RCTMLN/RCTMLNImagesManager.m} +4 -4
  215. package/ios/{RCTMGL/RCTMGLLayer.h → RCTMLN/RCTMLNLayer.h} +11 -11
  216. package/ios/{RCTMGL/RCTMGLLayer.m → RCTMLN/RCTMLNLayer.m} +17 -17
  217. package/ios/{RCTMGL/RCTMGLLight.h → RCTMLN/RCTMLNLight.h} +5 -5
  218. package/ios/{RCTMGL/RCTMGLLight.m → RCTMLN/RCTMLNLight.m} +9 -9
  219. package/ios/{RCTMGL/RCTMGLLightManager.h → RCTMLN/RCTMLNLightManager.h} +3 -3
  220. package/ios/{RCTMGL/RCTMGLLightManager.m → RCTMLN/RCTMLNLightManager.m} +6 -6
  221. package/ios/RCTMLN/RCTMLNLineLayer.h +14 -0
  222. package/ios/{RCTMGL/RCTMGLLineLayer.m → RCTMLN/RCTMLNLineLayer.m} +10 -10
  223. package/ios/{RCTMGL/RCTMGLLineLayerManager.h → RCTMLN/RCTMLNLineLayerManager.h} +3 -3
  224. package/ios/{RCTMGL/RCTMGLLineLayerManager.m → RCTMLN/RCTMLNLineLayerManager.m} +6 -6
  225. package/ios/{RCTMGL/RCTMGLLocation.h → RCTMLN/RCTMLNLocation.h} +3 -3
  226. package/ios/{RCTMGL/RCTMGLLocation.m → RCTMLN/RCTMLNLocation.m} +4 -4
  227. package/ios/RCTMLN/RCTMLNLocationManager.h +30 -0
  228. package/ios/{RCTMGL/RCTMGLLocationManager.m → RCTMLN/RCTMLNLocationManager.m} +16 -16
  229. package/ios/RCTMLN/RCTMLNLocationManagerDelegate.h +20 -0
  230. package/ios/{RCTMGL/RCTMGLLocationModule.h → RCTMLN/RCTMLNLocationModule.h} +3 -3
  231. package/ios/{RCTMGL/RCTMGLLocationModule.m → RCTMLN/RCTMLNLocationModule.m} +13 -13
  232. package/ios/RCTMLN/RCTMLNLogging.h +18 -0
  233. package/ios/{RCTMGL/RCTMGLLogging.m → RCTMLN/RCTMLNLogging.m} +29 -29
  234. package/ios/{RCTMGL/RCTMGLMapTouchEvent.h → RCTMLN/RCTMLNMapTouchEvent.h} +10 -10
  235. package/ios/{RCTMGL/RCTMGLMapTouchEvent.m → RCTMLN/RCTMLNMapTouchEvent.m} +18 -18
  236. package/ios/{RCTMGL/RCTMGLMapView.h → RCTMLN/RCTMLNMapView.h} +30 -30
  237. package/ios/{RCTMGL/RCTMGLMapView.m → RCTMLN/RCTMLNMapView.m} +82 -82
  238. package/ios/{RCTMGL/RCTMGLMapViewManager.h → RCTMLN/RCTMLNMapViewManager.h} +4 -4
  239. package/ios/{RCTMGL/RCTMGLMapViewManager.m → RCTMLN/RCTMLNMapViewManager.m} +117 -117
  240. package/ios/{RCTMGL/RCTMGLNativeUserLocation.h → RCTMLN/RCTMLNNativeUserLocation.h} +5 -5
  241. package/ios/{RCTMGL/RCTMGLNativeUserLocation.m → RCTMLN/RCTMLNNativeUserLocation.m} +10 -10
  242. package/ios/RCTMLN/RCTMLNNativeUserLocationManager.h +5 -0
  243. package/ios/RCTMLN/RCTMLNNativeUserLocationManager.m +25 -0
  244. package/ios/{RCTMGL/RCTMGLPointAnnotation.h → RCTMLN/RCTMLNPointAnnotation.h} +8 -8
  245. package/ios/{RCTMGL/RCTMGLPointAnnotation.m → RCTMLN/RCTMLNPointAnnotation.m} +21 -21
  246. package/ios/{RCTMGL/RCTMGLPointAnnotationManager.h → RCTMLN/RCTMLNPointAnnotationManager.h} +3 -3
  247. package/ios/{RCTMGL/RCTMGLPointAnnotationManager.m → RCTMLN/RCTMLNPointAnnotationManager.m} +6 -6
  248. package/ios/RCTMLN/RCTMLNRasterLayer.h +14 -0
  249. package/ios/RCTMLN/RCTMLNRasterLayer.m +30 -0
  250. package/ios/{RCTMGL/RCTMGLRasterLayerManager.h → RCTMLN/RCTMLNRasterLayerManager.h} +3 -3
  251. package/ios/{RCTMGL/RCTMGLRasterLayerManager.m → RCTMLN/RCTMLNRasterLayerManager.m} +6 -6
  252. package/ios/{RCTMGL/RCTMGLRasterSource.h → RCTMLN/RCTMLNRasterSource.h} +5 -5
  253. package/ios/{RCTMGL/RCTMGLRasterSource.m → RCTMLN/RCTMLNRasterSource.m} +11 -11
  254. package/ios/{RCTMGL/RCTMGLRasterSourceManager.h → RCTMLN/RCTMLNRasterSourceManager.h} +3 -3
  255. package/ios/{RCTMGL/RCTMGLRasterSourceManager.m → RCTMLN/RCTMLNRasterSourceManager.m} +6 -6
  256. package/ios/{RCTMGL/RCTMGLShapeSource.h → RCTMLN/RCTMLNShapeSource.h} +10 -10
  257. package/ios/{RCTMGL/RCTMGLShapeSource.m → RCTMLN/RCTMLNShapeSource.m} +50 -50
  258. package/ios/{RCTMGL/RCTMGLShapeSourceManager.h → RCTMLN/RCTMLNShapeSourceManager.h} +3 -3
  259. package/ios/{RCTMGL/RCTMGLShapeSourceManager.m → RCTMLN/RCTMLNShapeSourceManager.m} +25 -25
  260. package/ios/{RCTMGL/RCTMGLSource.h → RCTMLN/RCTMLNSource.h} +8 -8
  261. package/ios/{RCTMGL/RCTMGLSource.m → RCTMLN/RCTMLNSource.m} +15 -15
  262. package/ios/RCTMLN/RCTMLNStyle.h +222 -0
  263. package/ios/{RCTMGL/RCTMGLStyle.m → RCTMLN/RCTMLNStyle.m} +345 -345
  264. package/ios/{RCTMGL/RCTMGLStyleValue.h → RCTMLN/RCTMLNStyleValue.h} +7 -7
  265. package/ios/{RCTMGL/RCTMGLStyleValue.m → RCTMLN/RCTMLNStyleValue.m} +24 -24
  266. package/ios/{RCTMGL/RCTMGLSymbolLayer.h → RCTMLN/RCTMLNSymbolLayer.h} +4 -4
  267. package/ios/{RCTMGL/RCTMGLSymbolLayer.m → RCTMLN/RCTMLNSymbolLayer.m} +12 -12
  268. package/ios/{RCTMGL/RCTMGLSymbolLayerManager.h → RCTMLN/RCTMLNSymbolLayerManager.h} +3 -3
  269. package/ios/{RCTMGL/RCTMGLSymbolLayerManager.m → RCTMLN/RCTMLNSymbolLayerManager.m} +6 -6
  270. package/ios/{RCTMGL/RCTMGLTileSource.h → RCTMLN/RCTMLNTileSource.h} +6 -6
  271. package/ios/RCTMLN/RCTMLNTileSource.m +31 -0
  272. package/ios/RCTMLN/RCTMLNUserLocation.h +15 -0
  273. package/ios/{RCTMGL/RCTMGLUserLocation.m → RCTMLN/RCTMLNUserLocation.m} +8 -8
  274. package/ios/{RCTMGL/RCTMGLUtils.h → RCTMLN/RCTMLNUtils.h} +7 -7
  275. package/ios/{RCTMGL/RCTMGLUtils.m → RCTMLN/RCTMLNUtils.m} +20 -20
  276. package/ios/{RCTMGL/RCTMGLVectorLayer.h → RCTMLN/RCTMLNVectorLayer.h} +4 -4
  277. package/ios/{RCTMGL/RCTMGLVectorLayer.m → RCTMLN/RCTMLNVectorLayer.m} +7 -7
  278. package/ios/{RCTMGL/RCTMGLVectorSource.h → RCTMLN/RCTMLNVectorSource.h} +6 -6
  279. package/ios/{RCTMGL/RCTMGLVectorSource.m → RCTMLN/RCTMLNVectorSource.m} +9 -9
  280. package/ios/{RCTMGL/RCTMGLVectorSourceManager.h → RCTMLN/RCTMLNVectorSourceManager.h} +3 -3
  281. package/ios/{RCTMGL/RCTMGLVectorSourceManager.m → RCTMLN/RCTMLNVectorSourceManager.m} +11 -11
  282. package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.h +1 -1
  283. package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.m +2 -2
  284. package/ios/{RCTMGL → RCTMLN}/ViewManager.h +3 -3
  285. package/ios/{RCTMGL → RCTMLN}/ViewManager.m +4 -4
  286. package/ios/RCTMLN.xcodeproj/project.pbxproj +775 -0
  287. package/ios/install.md +6 -7
  288. package/javascript/MLNModule.ts +37 -0
  289. package/javascript/Maplibre.ts +64 -0
  290. package/javascript/components/BackgroundLayer.tsx +50 -0
  291. package/javascript/components/Callout.tsx +141 -0
  292. package/javascript/components/Camera.tsx +623 -0
  293. package/javascript/components/CircleLayer.tsx +53 -0
  294. package/javascript/components/FillExtrusionLayer.tsx +47 -0
  295. package/javascript/components/FillLayer.tsx +44 -0
  296. package/javascript/components/HeadingIndicator.tsx +31 -0
  297. package/javascript/components/HeatmapLayer.tsx +46 -0
  298. package/javascript/components/ImageSource.tsx +71 -0
  299. package/javascript/components/Images.tsx +134 -0
  300. package/javascript/components/Light.tsx +40 -0
  301. package/javascript/components/LineLayer.tsx +45 -0
  302. package/javascript/components/MapView.tsx +880 -0
  303. package/javascript/components/MarkerView.tsx +88 -0
  304. package/javascript/components/NativeUserLocation.tsx +31 -0
  305. package/javascript/components/PointAnnotation.tsx +245 -0
  306. package/javascript/components/RasterLayer.tsx +44 -0
  307. package/javascript/components/RasterSource.tsx +114 -0
  308. package/javascript/components/ShapeSource.tsx +433 -0
  309. package/javascript/components/Style.tsx +368 -0
  310. package/javascript/components/SymbolLayer.tsx +78 -0
  311. package/javascript/components/UserLocation.tsx +289 -0
  312. package/javascript/components/VectorSource.tsx +218 -0
  313. package/javascript/components/annotations/Annotation.tsx +161 -0
  314. package/javascript/hooks/useAbstractLayer.ts +127 -0
  315. package/javascript/hooks/useAbstractSource.ts +34 -0
  316. package/javascript/hooks/useNativeBridge.ts +125 -0
  317. package/javascript/hooks/useNativeRef.ts +13 -0
  318. package/javascript/hooks/useOnce.ts +12 -0
  319. package/javascript/index.ts +4 -0
  320. package/javascript/modules/location/locationManager.ts +162 -0
  321. package/javascript/modules/offline/OfflineCreatePackOptions.ts +62 -0
  322. package/javascript/modules/offline/OfflinePack.ts +56 -0
  323. package/javascript/modules/offline/{offlineManager.js → offlineManager.ts} +91 -35
  324. package/javascript/modules/snapshot/SnapshotOptions.ts +104 -0
  325. package/javascript/modules/snapshot/{snapshotManager.js → snapshotManager.ts} +7 -7
  326. package/javascript/requestAndroidLocationPermissions.ts +29 -0
  327. package/javascript/types/BaseProps.ts +5 -0
  328. package/javascript/types/OnPressEvent.ts +13 -0
  329. package/javascript/types/index.ts +11 -0
  330. package/javascript/utils/BridgeValue.ts +90 -0
  331. package/javascript/utils/{Logger.js → Logger.ts} +50 -31
  332. package/javascript/utils/MaplibreStyles.d.ts +1486 -0
  333. package/javascript/utils/StyleValue.ts +49 -0
  334. package/javascript/utils/animated/AbstractAnimatedCoordinates.ts +134 -0
  335. package/javascript/utils/animated/Animated.ts +61 -0
  336. package/javascript/utils/animated/AnimatedCoordinatesArray.ts +108 -0
  337. package/javascript/utils/animated/{AnimatedExtractCoordinateFromArray.js → AnimatedExtractCoordinateFromArray.ts} +8 -8
  338. package/javascript/utils/animated/{AnimatedPoint.js → AnimatedPoint.ts} +25 -17
  339. package/javascript/utils/animated/{AnimatedRouteCoordinatesArray.js → AnimatedRouteCoordinatesArray.ts} +46 -25
  340. package/javascript/utils/animated/AnimatedShape.ts +93 -0
  341. package/javascript/utils/deprecation.ts +31 -0
  342. package/javascript/utils/filterUtils.ts +9 -0
  343. package/javascript/utils/geoUtils.ts +79 -0
  344. package/javascript/utils/index.ts +133 -0
  345. package/javascript/utils/styleMap.ts +264 -0
  346. package/maplibre-react-native.podspec +8 -8
  347. package/package.json +64 -44
  348. package/plugin/build/withMapLibre.d.ts +2 -2
  349. package/plugin/build/withMapLibre.js +38 -23
  350. package/react-native.config.js +1 -1
  351. package/scripts/autogenHelpers/globals.js +11 -11
  352. package/scripts/autogenerate.js +25 -17
  353. package/scripts/download-style-spec.sh +1 -1
  354. package/scripts/templates/MaplibreStyles.ts.ejs +99 -0
  355. package/scripts/templates/{RCTMGLStyle.h.ejs → RCTMLNStyle.h.ejs} +8 -8
  356. package/scripts/templates/{RCTMGLStyle.m.ejs → RCTMLNStyle.m.ejs} +10 -10
  357. package/scripts/templates/{RCTMGLStyleFactory.java.ejs → RCTMLNStyleFactory.java.ejs} +24 -24
  358. package/scripts/templates/index.d.ts.ejs +71 -42
  359. package/scripts/templates/{styleMap.js.ejs → styleMap.ts.ejs} +3 -33
  360. package/setup-jest.js +5 -20
  361. package/tsconfig.json +20 -61
  362. package/.eslintignore +0 -3
  363. package/.eslintrc.js +0 -158
  364. package/.prettierrc.js +0 -7
  365. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +0 -99
  366. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +0 -22
  367. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +0 -16
  368. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +0 -31
  369. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +0 -27
  370. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +0 -27
  371. package/android/rctmgl/src/main/res/values/strings.xml +0 -3
  372. package/index.d.ts +0 -955
  373. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +0 -23
  374. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +0 -11
  375. package/ios/RCTMGL/RCTMGLBackgroundLayer.h +0 -14
  376. package/ios/RCTMGL/RCTMGLBackgroundLayer.m +0 -27
  377. package/ios/RCTMGL/RCTMGLCalloutManager.m +0 -21
  378. package/ios/RCTMGL/RCTMGLCircleLayer.h +0 -13
  379. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +0 -14
  380. package/ios/RCTMGL/RCTMGLFillLayer.h +0 -14
  381. package/ios/RCTMGL/RCTMGLHeatmapLayer.h +0 -12
  382. package/ios/RCTMGL/RCTMGLHeatmapLayer.m +0 -30
  383. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +0 -12
  384. package/ios/RCTMGL/RCTMGLImagesManager.h +0 -5
  385. package/ios/RCTMGL/RCTMGLLineLayer.h +0 -14
  386. package/ios/RCTMGL/RCTMGLLocationManager.h +0 -30
  387. package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +0 -20
  388. package/ios/RCTMGL/RCTMGLLogging.h +0 -18
  389. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +0 -5
  390. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +0 -25
  391. package/ios/RCTMGL/RCTMGLRasterLayer.h +0 -14
  392. package/ios/RCTMGL/RCTMGLRasterLayer.m +0 -30
  393. package/ios/RCTMGL/RCTMGLStyle.h +0 -222
  394. package/ios/RCTMGL/RCTMGLTileSource.m +0 -31
  395. package/ios/RCTMGL/RCTMGLUserLocation.h +0 -15
  396. package/ios/RCTMGL.xcodeproj/project.pbxproj +0 -775
  397. package/javascript/components/AbstractLayer.js +0 -75
  398. package/javascript/components/AbstractSource.js +0 -15
  399. package/javascript/components/BackgroundLayer.js +0 -97
  400. package/javascript/components/Callout.js +0 -139
  401. package/javascript/components/Camera.js +0 -665
  402. package/javascript/components/CircleLayer.js +0 -101
  403. package/javascript/components/FillExtrusionLayer.js +0 -98
  404. package/javascript/components/FillLayer.js +0 -94
  405. package/javascript/components/HeadingIndicator.js +0 -31
  406. package/javascript/components/HeatmapLayer.js +0 -99
  407. package/javascript/components/ImageSource.js +0 -82
  408. package/javascript/components/Images.js +0 -119
  409. package/javascript/components/Light.js +0 -47
  410. package/javascript/components/LineLayer.js +0 -94
  411. package/javascript/components/MapView.js +0 -814
  412. package/javascript/components/MarkerView.js +0 -87
  413. package/javascript/components/NativeBridgeComponent.js +0 -86
  414. package/javascript/components/NativeUserLocation.js +0 -41
  415. package/javascript/components/PointAnnotation.js +0 -216
  416. package/javascript/components/RasterLayer.js +0 -95
  417. package/javascript/components/RasterSource.js +0 -124
  418. package/javascript/components/ShapeSource.js +0 -372
  419. package/javascript/components/Style.js +0 -267
  420. package/javascript/components/SymbolLayer.js +0 -120
  421. package/javascript/components/UserLocation.js +0 -275
  422. package/javascript/components/VectorSource.js +0 -200
  423. package/javascript/components/annotations/Annotation.js +0 -122
  424. package/javascript/index.js +0 -149
  425. package/javascript/modules/location/locationManager.js +0 -101
  426. package/javascript/modules/offline/OfflineCreatePackOptions.js +0 -46
  427. package/javascript/modules/offline/OfflinePack.js +0 -40
  428. package/javascript/modules/snapshot/SnapshotOptions.js +0 -67
  429. package/javascript/utils/BridgeValue.js +0 -81
  430. package/javascript/utils/animated/Animated.js +0 -39
  431. package/javascript/utils/animated/AnimatedCoordinatesArray.js +0 -191
  432. package/javascript/utils/animated/AnimatedShape.js +0 -72
  433. package/javascript/utils/deprecation.js +0 -25
  434. package/javascript/utils/filterUtils.js +0 -7
  435. package/javascript/utils/geoUtils.js +0 -73
  436. package/javascript/utils/index.js +0 -113
  437. package/javascript/utils/styleMap.js +0 -1932
  438. /package/android/{rctmgl → rctmln}/.settings/org.eclipse.buildship.core.prefs +0 -0
  439. /package/android/{rctmgl → rctmln}/proguard-rules.pro +0 -0
  440. /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty.xml +0 -0
  441. /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty_drawable.png +0 -0
  442. /package/android/{rctmgl → rctmln}/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
  443. /package/android/{rctmgl → rctmln}/src/main/res/layout/annotation.xml +0 -0
  444. /package/ios/{RCTMGL → RCTMLN}/index.d.ts +0 -0
@@ -0,0 +1,880 @@
1
+ import debounce from "debounce";
2
+ import React, {
3
+ Component,
4
+ memo,
5
+ ReactElement,
6
+ ReactNode,
7
+ useCallback,
8
+ useEffect,
9
+ useImperativeHandle,
10
+ useMemo,
11
+ useRef,
12
+ useState,
13
+ } from "react";
14
+ import {
15
+ View,
16
+ StyleSheet,
17
+ NativeModules,
18
+ requireNativeComponent,
19
+ ViewProps,
20
+ NativeMethods,
21
+ NativeSyntheticEvent,
22
+ } from "react-native";
23
+
24
+ import useNativeBridge from "../hooks/useNativeBridge";
25
+ import useOnce from "../hooks/useOnce";
26
+ import { Location } from "../modules/location/locationManager";
27
+ import BaseProps from "../types/BaseProps";
28
+ import { isFunction, isAndroid } from "../utils";
29
+ import Logger from "../utils/Logger";
30
+ import { FilterExpression } from "../utils/MaplibreStyles";
31
+ import { getFilter } from "../utils/filterUtils";
32
+
33
+ const MapLibreGL = NativeModules.MLNModule;
34
+ if (MapLibreGL == null) {
35
+ console.error(
36
+ "Native part of Mapbox React Native libraries were not registered properly, double check our native installation guides.",
37
+ );
38
+ }
39
+
40
+ export const NATIVE_MODULE_NAME = "RCTMLNMapView";
41
+
42
+ export const ANDROID_TEXTURE_NATIVE_MODULE_NAME = "RCTMLNAndroidTextureMapView";
43
+
44
+ const styles = StyleSheet.create({
45
+ matchParent: { flex: 1 },
46
+ });
47
+
48
+ const defaultStyleURL = MapLibreGL.StyleURL.Street;
49
+
50
+ export interface RegionPayload {
51
+ zoomLevel: number;
52
+ heading: number;
53
+ animated: boolean;
54
+ isUserInteraction: boolean;
55
+ visibleBounds: VisibleBounds;
56
+ pitch: number;
57
+ }
58
+
59
+ type VisibleBounds = [northEast: GeoJSON.Position, southWest: GeoJSON.Position];
60
+
61
+ interface MapViewProps extends BaseProps {
62
+ /**
63
+ * The distance from the edges of the map view’s frame to the edges of the map view’s logical viewport.
64
+ */
65
+ contentInset?: number[] | number;
66
+ /**
67
+ * Style for wrapping React Native View
68
+ */
69
+ style?: ViewProps["style"];
70
+ /**
71
+ * Style URL for map - notice, if non is set it _will_ default to `MapLibreGL.StyleURL.Default`
72
+ */
73
+ styleURL?: string;
74
+ /**
75
+ * StyleJSON for map - according to TileJSON specs: https://github.com/mapbox/tilejson-spec
76
+ */
77
+ styleJSON?: string;
78
+ /**
79
+ * iOS: The preferred frame rate at which the map view is rendered.
80
+ * The default value for this property is MLNMapViewPreferredFramesPerSecondDefault,
81
+ * which will adaptively set the preferred frame rate based on the capability of
82
+ * the user’s device to maintain a smooth experience. This property can be set to arbitrary integer values.
83
+ *
84
+ * Android: The maximum frame rate at which the map view is rendered, but it can't excess the ability of device hardware.
85
+ * This property can be set to arbitrary integer values.
86
+ */
87
+ preferredFramesPerSecond?: number;
88
+ /**
89
+ * Automatically change the language of the map labels to the system’s preferred language,
90
+ * this is not something that can be toggled on/off
91
+ */
92
+ localizeLabels?: boolean;
93
+ /**
94
+ * Enable/Disable zoom on the map
95
+ */
96
+ zoomEnabled?: boolean;
97
+ /**
98
+ * Enable/Disable scroll on the map
99
+ */
100
+ scrollEnabled?: boolean;
101
+ /**
102
+ * Enable/Disable pitch on map
103
+ */
104
+ pitchEnabled?: boolean;
105
+ /**
106
+ * Enable/Disable rotation on map
107
+ */
108
+ rotateEnabled?: boolean;
109
+ /**
110
+ * Enable/Disable attribution on map.
111
+ *
112
+ * This must be enabled for Mapbox-hosted tiles and styles. Please refer to the Mapbox Terms of Service.
113
+ * Other providers do not require this.
114
+ */
115
+ attributionEnabled?: boolean;
116
+ /**
117
+ * Adds attribution offset, e.g. `{top: 8, left: 8}` will put attribution button in top-left corner of the map
118
+ */
119
+ attributionPosition?:
120
+ | { top?: number; left?: number }
121
+ | { top?: number; right?: number }
122
+ | { bottom?: number; left?: number }
123
+ | { bottom?: number; right?: number };
124
+ /**
125
+ * MapView's tintColor
126
+ */
127
+ tintColor?: string | unknown[];
128
+ /**
129
+ * Enable/Disable the logo on the map.
130
+ */
131
+ logoEnabled?: boolean;
132
+ /**
133
+ * Adds logo offset, e.g. `{top: 8, left: 8}` will put the logo in top-left corner of the map
134
+ */
135
+ logoPosition?:
136
+ | { top?: number; left?: number }
137
+ | { top?: number; right?: number }
138
+ | { bottom?: number; left?: number }
139
+ | { bottom?: number; right?: number };
140
+ /**
141
+ * Enable/Disable the compass from appearing on the map
142
+ */
143
+ compassEnabled?: boolean;
144
+ /**
145
+ * Change corner of map the compass starts at. 0: TopLeft, 1: TopRight, 2: BottomLeft, 3: BottomRight
146
+ */
147
+ compassViewPosition?: number;
148
+ /**
149
+ * Add margins to the compass with x and y values
150
+ */
151
+ compassViewMargins?: object;
152
+ /**
153
+ * [Android only] Enable/Disable use of GLSurfaceView insted of TextureView.
154
+ */
155
+ surfaceView?: boolean;
156
+ /**
157
+ * Map press listener, gets called when a user presses the map
158
+ */
159
+ onPress?(feature: GeoJSON.Feature): void;
160
+ /**
161
+ * Map long press listener, gets called when a user long presses the map
162
+ */
163
+ onLongPress?(feature: GeoJSON.Feature): void;
164
+ /**
165
+ * This event is triggered whenever the currently displayed map region is about to change.
166
+ *
167
+ * @param {PointFeature} feature - The geojson point feature at the camera center, properties contains zoomLevel, visibleBounds
168
+ */
169
+ onRegionWillChange?(
170
+ feature: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
171
+ ): void;
172
+ /**
173
+ * This event is triggered whenever the currently displayed map region is changing.
174
+ *
175
+ * @param {PointFeature} feature - The geojson point feature at the camera center, properties contains zoomLevel, visibleBounds
176
+ */
177
+ onRegionIsChanging?(
178
+ feature: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
179
+ ): void;
180
+ /**
181
+ * This event is triggered whenever the currently displayed map region finished changing
182
+ *
183
+ * @param {PointFeature} feature - The geojson point feature at the camera center, properties contains zoomLevel, visibleBounds
184
+ */
185
+ onRegionDidChange?(
186
+ feature: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
187
+ ): void;
188
+ /**
189
+ * This event is triggered when the map is about to start loading a new map style.
190
+ */
191
+ onWillStartLoadingMap?(): void;
192
+ /**
193
+ * This is triggered when the map has successfully loaded a new map style.
194
+ */
195
+ onDidFinishLoadingMap?(): void;
196
+ /**
197
+ * This event is triggered when the map has failed to load a new map style.
198
+ */
199
+ onDidFailLoadingMap?(): void;
200
+ /**
201
+ * This event is triggered when the map will start rendering a frame.
202
+ */
203
+ onWillStartRenderingFrame?(): void;
204
+ /**
205
+ * This event is triggered when the map finished rendering a frame.
206
+ */
207
+ onDidFinishRenderingFrame?(): void;
208
+ /**
209
+ * This event is triggered when the map fully finished rendering a frame.
210
+ */
211
+ onDidFinishRenderingFrameFully?(): void;
212
+ /**
213
+ * This event is triggered when the map will start rendering the map.
214
+ */
215
+ onWillStartRenderingMap?(): void;
216
+ /**
217
+ * This event is triggered when the map finished rendering the map.
218
+ */
219
+ onDidFinishRenderingMap?(): void;
220
+ /**
221
+ * This event is triggered when the map fully finished rendering the map.
222
+ */
223
+ onDidFinishRenderingMapFully?(): void;
224
+ /**
225
+ * This event is triggered when the user location is updated.
226
+ */
227
+ onUserLocationUpdate?: (location: Location) => void;
228
+ /**
229
+ * This event is triggered when a style has finished loading.
230
+ */
231
+ onDidFinishLoadingStyle?(): void;
232
+ /**
233
+ * The emitted frequency of regionwillchange events
234
+ */
235
+ regionWillChangeDebounceTime?: number;
236
+ /**
237
+ * The emitted frequency of regiondidchange events
238
+ */
239
+ regionDidChangeDebounceTime?: number;
240
+
241
+ children: ReactNode;
242
+ }
243
+
244
+ type Fn = (...args: any) => any;
245
+ type CallableProps = {
246
+ [Prop in keyof MapViewProps]-?: MapViewProps[Prop] extends Fn | undefined
247
+ ? Prop
248
+ : never;
249
+ }[keyof MapViewProps];
250
+
251
+ interface NativeProps extends Omit<MapViewProps, "onPress" | "onLongPress"> {
252
+ onPress(event: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>): void;
253
+ onLongPress(event: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>): void;
254
+ }
255
+
256
+ export interface MapViewRef {
257
+ getPointInView: (coordinate: GeoJSON.Position) => Promise<GeoJSON.Point>;
258
+ getCoordinateFromView: (point: number[]) => Promise<GeoJSON.Position>;
259
+ getVisibleBounds: () => Promise<VisibleBounds>;
260
+ queryRenderedFeaturesAtPoint: (
261
+ point: [screenPointX: number, screenPointY: number],
262
+ filter: FilterExpression | undefined,
263
+ layerIDs: string[],
264
+ ) => Promise<GeoJSON.FeatureCollection>;
265
+ queryRenderedFeaturesInRect: (
266
+ bbox: GeoJSON.BBox,
267
+ filter: FilterExpression | undefined,
268
+ layerIDs: string[],
269
+ ) => Promise<GeoJSON.FeatureCollection>;
270
+ setCamera: () => void;
271
+ takeSnap: (writeToDisk?: boolean) => Promise<string>;
272
+ getZoom: () => Promise<number>;
273
+ getCenter: () => Promise<GeoJSON.Position>;
274
+ setSourceVisibility: (
275
+ visible: boolean,
276
+ sourceId: string,
277
+ sourceLayerId?: string | null,
278
+ ) => void;
279
+ showAttribution: () => Promise<void>;
280
+ setNativeProps: (props: NativeProps) => void;
281
+ }
282
+
283
+ /**
284
+ * MapView backed by MapLibre GL Native
285
+ */
286
+
287
+ const MapView = memo(
288
+ React.forwardRef<MapViewRef, MapViewProps>(
289
+ (
290
+ {
291
+ localizeLabels = false,
292
+ scrollEnabled = true,
293
+ pitchEnabled = true,
294
+ rotateEnabled = true,
295
+ attributionEnabled = true,
296
+ logoEnabled = false,
297
+ surfaceView = false,
298
+ regionWillChangeDebounceTime = 10,
299
+ regionDidChangeDebounceTime = 500,
300
+ ...props
301
+ }: MapViewProps,
302
+ ref,
303
+ ) => {
304
+ // * exposes the methods of the function component so we don't break projects that depend on calling this methods
305
+ useImperativeHandle(
306
+ ref,
307
+ (): MapViewRef => ({
308
+ /**
309
+ * Converts a geographic coordinate to a point in the given view’s coordinate system.
310
+ *
311
+ * @example
312
+ * const pointInView = await this._map.getPointInView([-37.817070, 144.949901]);
313
+ *
314
+ * @param {Array<Number>} coordinate - A point expressed in the map view's coordinate system.
315
+ * @return {Array}
316
+ */
317
+ getPointInView,
318
+ /**
319
+ * Converts a point in the given view’s coordinate system to a geographic coordinate.
320
+ *
321
+ * @example
322
+ * const coordinate = await this._map.getCoordinateFromView([100, 100]);
323
+ *
324
+ * @param {Array<Number>} point - A point expressed in the given view’s coordinate system.
325
+ * @return {Array}
326
+ */
327
+ getCoordinateFromView,
328
+ /**
329
+ * The coordinate bounds(ne, sw) visible in the users’s viewport.
330
+ *
331
+ * @example
332
+ * const visibleBounds = await this._map.getVisibleBounds();
333
+ *
334
+ * @return {Array}
335
+ */
336
+ getVisibleBounds,
337
+ /**
338
+ * Returns an array of rendered map features that intersect with a given point.
339
+ *
340
+ * @example
341
+ * this._map.queryRenderedFeaturesAtPoint([30, 40], ['==', 'type', 'Point'], ['id1', 'id2'])
342
+ *
343
+ * @param {Array<Number>} coordinate - A point expressed in the map view’s coordinate system.
344
+ * @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
345
+ * @param {Array=} layerIDs - A array of layer id's to filter the features by
346
+ * @return {GeoJSON.FeatureCollection}
347
+ */
348
+ queryRenderedFeaturesAtPoint,
349
+ /**
350
+ * Returns an array of rendered map features that intersect with the given rectangle,
351
+ * restricted to the given style layers and filtered by the given predicate.
352
+ *
353
+ * @example
354
+ * this._map.queryRenderedFeaturesInRect([30, 40, 20, 10], ['==', 'type', 'Point'], ['id1', 'id2'])
355
+ *
356
+ * @param {Array<Number>} bbox - A rectangle expressed in the map view’s coordinate system.
357
+ * @param {Array=} filter - A set of strings that correspond to the names of layers defined in the current style. Only the features contained in these layers are included in the returned array.
358
+ * @param {Array=} layerIDs - A array of layer id's to filter the features by
359
+ * @return {GeoJSON.FeatureCollection}
360
+ */
361
+ queryRenderedFeaturesInRect,
362
+ /**
363
+ * Map camera will perform updates based on provided config. Deprecated use Camera#setCamera.
364
+ */
365
+ setCamera,
366
+ /**
367
+ * Takes snapshot of map with current tiles and returns a URI to the image
368
+ * @param {Boolean} writeToDisk If true will create a temp file, otherwise it is in base64
369
+ * @return {String}
370
+ */
371
+ takeSnap,
372
+ /**
373
+ * Returns the current zoom of the map view.
374
+ *
375
+ * @example
376
+ * const zoom = await this._map.getZoom();
377
+ *
378
+ * @return {Number}
379
+ */
380
+ getZoom,
381
+ /**
382
+ * Returns the map's geographical centerpoint
383
+ *
384
+ * @example
385
+ * const center = await this._map.getCenter();
386
+ *
387
+ * @return {Array<Number>} Coordinates
388
+ */
389
+ getCenter,
390
+ /**
391
+ * Sets the visibility of all the layers referencing the specified `sourceLayerId` and/or `sourceId`
392
+ *
393
+ * @example
394
+ * await this._map.setSourceVisibility(false, 'composite', 'building')
395
+ *
396
+ * @param {boolean} visible - Visibility of the layers
397
+ * @param {String} sourceId - Identifier of the target source (e.g. 'composite')
398
+ * @param {String=} sourceLayerId - Identifier of the target source-layer (e.g. 'building')
399
+ */
400
+ setSourceVisibility,
401
+ /**
402
+ * Show the attribution and telemetry action sheet.
403
+ * If you implement a custom attribution button, you should add this action to the button.
404
+ */
405
+ showAttribution,
406
+ setNativeProps,
407
+ }),
408
+ );
409
+
410
+ const {
411
+ _runNativeCommand,
412
+ _runPendingNativeCommands,
413
+ _onAndroidCallback,
414
+ } = useNativeBridge(NATIVE_MODULE_NAME);
415
+ const logger = useRef<Logger>(Logger.sharedInstance());
416
+ // * start the logger before anyuseEffect
417
+ useOnce(() => {
418
+ logger.current.start();
419
+ });
420
+ const _nativeRef = useRef<RCTMLNMapViewRefType>();
421
+ const [isReady, setIsReady] = useState(false);
422
+
423
+ // Cleanups on unmount
424
+ useEffect(() => {
425
+ const currentLogger = logger.current;
426
+
427
+ return (): void => {
428
+ _onDebouncedRegionWillChange.clear();
429
+ _onDebouncedRegionDidChange.clear();
430
+ currentLogger.stop();
431
+ };
432
+ // eslint-disable-next-line react-hooks/exhaustive-deps
433
+ }, []);
434
+
435
+ // This will run on every render
436
+ // so similar to componentDidMount and UNSAFE_componentWillReceiveProps
437
+ useEffect(() => {
438
+ _setHandledMapChangedEvents(props);
439
+ }, [props]);
440
+
441
+ const _setHandledMapChangedEvents = (props: MapViewProps): void => {
442
+ if (isAndroid()) {
443
+ const events = [];
444
+
445
+ if (props.onRegionWillChange) {
446
+ events.push(MapLibreGL.EventTypes.RegionWillChange);
447
+ }
448
+ if (props.onRegionIsChanging) {
449
+ events.push(MapLibreGL.EventTypes.RegionIsChanging);
450
+ }
451
+ if (props.onRegionDidChange) {
452
+ events.push(MapLibreGL.EventTypes.RegionDidChange);
453
+ }
454
+ if (props.onUserLocationUpdate) {
455
+ events.push(MapLibreGL.EventTypes.UserLocationUpdated);
456
+ }
457
+ if (props.onWillStartLoadingMap) {
458
+ events.push(MapLibreGL.EventTypes.WillStartLoadingMap);
459
+ }
460
+ if (props.onDidFinishLoadingMap) {
461
+ events.push(MapLibreGL.EventTypes.DidFinishLoadingMap);
462
+ }
463
+ if (props.onDidFailLoadingMap) {
464
+ events.push(MapLibreGL.EventTypes.DidFailLoadingMap);
465
+ }
466
+ if (props.onWillStartRenderingFrame) {
467
+ events.push(MapLibreGL.EventTypes.WillStartRenderingFrame);
468
+ }
469
+ if (props.onDidFinishRenderingFrame) {
470
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingFrame);
471
+ }
472
+ if (props.onDidFinishRenderingFrameFully) {
473
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingFrameFully);
474
+ }
475
+ if (props.onWillStartRenderingMap) {
476
+ events.push(MapLibreGL.EventTypes.WillStartRenderingMap);
477
+ }
478
+ if (props.onDidFinishRenderingMap) {
479
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingMap);
480
+ }
481
+ if (props.onDidFinishRenderingMapFully) {
482
+ events.push(MapLibreGL.EventTypes.DidFinishRenderingMapFully);
483
+ }
484
+ if (props.onDidFinishLoadingStyle) {
485
+ events.push(MapLibreGL.EventTypes.DidFinishLoadingStyle);
486
+ }
487
+
488
+ _runNativeCommand(
489
+ "setHandledMapChangedEvents",
490
+ _nativeRef.current,
491
+ events,
492
+ );
493
+ }
494
+ };
495
+
496
+ const getPointInView = async (
497
+ coordinate: GeoJSON.Position,
498
+ ): Promise<GeoJSON.Point> => {
499
+ const res: { pointInView: GeoJSON.Point } = await _runNativeCommand(
500
+ "getPointInView",
501
+ _nativeRef.current,
502
+ [coordinate],
503
+ );
504
+ return res.pointInView;
505
+ };
506
+
507
+ const getCoordinateFromView = async (
508
+ point: number[],
509
+ ): Promise<GeoJSON.Position> => {
510
+ const res: { coordinateFromView: GeoJSON.Position } =
511
+ await _runNativeCommand("getCoordinateFromView", _nativeRef.current, [
512
+ point,
513
+ ]);
514
+ return res.coordinateFromView;
515
+ };
516
+
517
+ const getVisibleBounds = async (): Promise<VisibleBounds> => {
518
+ const res: { visibleBounds: VisibleBounds } = await _runNativeCommand(
519
+ "getVisibleBounds",
520
+ _nativeRef.current,
521
+ );
522
+ return res.visibleBounds;
523
+ };
524
+
525
+ const queryRenderedFeaturesAtPoint = async (
526
+ point: [screenPointX: number, screenPointY: number],
527
+ filter?: FilterExpression,
528
+ layerIDs: string[] = [],
529
+ ): Promise<GeoJSON.FeatureCollection> => {
530
+ if (!point || point.length < 2) {
531
+ throw new Error(
532
+ "Must pass in valid point in the map view's cooridnate system[x, y]",
533
+ );
534
+ }
535
+
536
+ const res: { data: string | GeoJSON.FeatureCollection } =
537
+ await _runNativeCommand(
538
+ "queryRenderedFeaturesAtPoint",
539
+ _nativeRef.current,
540
+ [point, getFilter(filter), layerIDs],
541
+ );
542
+
543
+ if (isAndroid()) {
544
+ return JSON.parse(res.data as string);
545
+ }
546
+
547
+ return res.data as GeoJSON.FeatureCollection;
548
+ };
549
+
550
+ const queryRenderedFeaturesInRect = async (
551
+ bbox: GeoJSON.BBox,
552
+ filter?: FilterExpression,
553
+ layerIDs: string[] = [],
554
+ ): Promise<GeoJSON.FeatureCollection> => {
555
+ if (!bbox || bbox.length !== 4) {
556
+ throw new Error(
557
+ "Must pass in a valid bounding box[top, right, bottom, left]",
558
+ );
559
+ }
560
+ const res: { data: string | GeoJSON.FeatureCollection } =
561
+ await _runNativeCommand(
562
+ "queryRenderedFeaturesInRect",
563
+ _nativeRef.current,
564
+ [bbox, getFilter(filter), layerIDs],
565
+ );
566
+
567
+ if (isAndroid()) {
568
+ return JSON.parse(res.data as string);
569
+ }
570
+
571
+ return res.data as GeoJSON.FeatureCollection;
572
+ };
573
+
574
+ const setCamera = (): void => {
575
+ console.warn(
576
+ "MapView.setCamera is deprecated - please use Camera#setCamera",
577
+ );
578
+ };
579
+
580
+ const takeSnap = async (writeToDisk = false): Promise<string> => {
581
+ const res: { uri: string } = await _runNativeCommand(
582
+ "takeSnap",
583
+ _nativeRef.current,
584
+ [writeToDisk],
585
+ );
586
+ return res.uri;
587
+ };
588
+
589
+ const getZoom = async (): Promise<number> => {
590
+ const res: { zoom: number } = await _runNativeCommand(
591
+ "getZoom",
592
+ _nativeRef.current,
593
+ );
594
+ return res.zoom;
595
+ };
596
+
597
+ const getCenter = async (): Promise<GeoJSON.Position> => {
598
+ const res: { center: GeoJSON.Position } = await _runNativeCommand(
599
+ "getCenter",
600
+ _nativeRef.current,
601
+ );
602
+ return res.center;
603
+ };
604
+
605
+ const setSourceVisibility = (
606
+ visible: boolean,
607
+ sourceId: string,
608
+ sourceLayerId: string | null = null,
609
+ ): void => {
610
+ _runNativeCommand("setSourceVisibility", _nativeRef.current, [
611
+ visible,
612
+ sourceId,
613
+ sourceLayerId,
614
+ ]);
615
+ };
616
+
617
+ const showAttribution = async (): Promise<void> => {
618
+ _runNativeCommand("showAttribution", _nativeRef.current);
619
+ };
620
+
621
+ const _onPress = (
622
+ e: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>,
623
+ ): void => {
624
+ if (isFunction(props.onPress)) {
625
+ props.onPress(e.nativeEvent.payload);
626
+ }
627
+ };
628
+
629
+ const _onLongPress = (
630
+ e: NativeSyntheticEvent<{ payload: GeoJSON.Feature }>,
631
+ ): void => {
632
+ if (isFunction(props.onLongPress)) {
633
+ props.onLongPress(e.nativeEvent.payload);
634
+ }
635
+ };
636
+
637
+ const _onRegionWillChange = (
638
+ payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
639
+ ): void => {
640
+ if (isFunction(props.onRegionWillChange)) {
641
+ props.onRegionWillChange(payload);
642
+ }
643
+ };
644
+
645
+ const _onRegionDidChange = (
646
+ payload: GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
647
+ ): void => {
648
+ if (isFunction(props.onRegionDidChange)) {
649
+ props.onRegionDidChange(payload);
650
+ }
651
+ };
652
+
653
+ const _onDebouncedRegionWillChange = useCallback(
654
+ debounce(_onRegionWillChange, regionWillChangeDebounceTime, {
655
+ immediate: true,
656
+ }),
657
+ [_onRegionWillChange],
658
+ );
659
+
660
+ const _onDebouncedRegionDidChange = useCallback(
661
+ debounce(_onRegionDidChange, regionDidChangeDebounceTime),
662
+ [_onRegionDidChange],
663
+ );
664
+
665
+ const _onChange = (
666
+ e: NativeSyntheticEvent<{
667
+ type: string;
668
+ payload?: GeoJSON.Feature | Location;
669
+ }>,
670
+ ): void => {
671
+ const { type, payload } = e.nativeEvent;
672
+ let propName: CallableProps | undefined;
673
+
674
+ switch (type) {
675
+ case MapLibreGL.EventTypes.RegionWillChange:
676
+ if (
677
+ regionWillChangeDebounceTime &&
678
+ regionWillChangeDebounceTime > 0
679
+ ) {
680
+ if (payload) {
681
+ _onDebouncedRegionWillChange(
682
+ payload as GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
683
+ );
684
+ }
685
+ } else {
686
+ propName = "onRegionWillChange";
687
+ }
688
+ break;
689
+ case MapLibreGL.EventTypes.RegionIsChanging:
690
+ propName = "onRegionIsChanging";
691
+ break;
692
+ case MapLibreGL.EventTypes.RegionDidChange:
693
+ if (
694
+ regionDidChangeDebounceTime &&
695
+ regionDidChangeDebounceTime > 0
696
+ ) {
697
+ if (payload) {
698
+ _onDebouncedRegionDidChange(
699
+ payload as GeoJSON.Feature<GeoJSON.Point, RegionPayload>,
700
+ );
701
+ }
702
+ } else {
703
+ propName = "onRegionDidChange";
704
+ }
705
+ break;
706
+ case MapLibreGL.EventTypes.UserLocationUpdated:
707
+ propName = "onUserLocationUpdate";
708
+ break;
709
+ case MapLibreGL.EventTypes.WillStartLoadingMap:
710
+ propName = "onWillStartLoadingMap";
711
+ break;
712
+ case MapLibreGL.EventTypes.DidFinishLoadingMap:
713
+ propName = "onDidFinishLoadingMap";
714
+ break;
715
+ case MapLibreGL.EventTypes.DidFailLoadingMap:
716
+ propName = "onDidFailLoadingMap";
717
+ break;
718
+ case MapLibreGL.EventTypes.WillStartRenderingFrame:
719
+ propName = "onWillStartRenderingFrame";
720
+ break;
721
+ case MapLibreGL.EventTypes.DidFinishRenderingFrame:
722
+ propName = "onDidFinishRenderingFrame";
723
+ break;
724
+ case MapLibreGL.EventTypes.DidFinishRenderingFrameFully:
725
+ propName = "onDidFinishRenderingFrameFully";
726
+ break;
727
+ case MapLibreGL.EventTypes.WillStartRenderingMap:
728
+ propName = "onWillStartRenderingMap";
729
+ break;
730
+ case MapLibreGL.EventTypes.DidFinishRenderingMap:
731
+ propName = "onDidFinishRenderingMap";
732
+ break;
733
+ case MapLibreGL.EventTypes.DidFinishRenderingMapFully:
734
+ propName = "onDidFinishRenderingMapFully";
735
+ break;
736
+ case MapLibreGL.EventTypes.DidFinishLoadingStyle:
737
+ propName = "onDidFinishLoadingStyle";
738
+ break;
739
+ default:
740
+ console.warn("Unhandled event callback type", type);
741
+ }
742
+
743
+ if (propName) {
744
+ _handleOnChange(propName, payload);
745
+ }
746
+ };
747
+
748
+ const _onLayout = (): void => {
749
+ setIsReady(true);
750
+ };
751
+
752
+ const _handleOnChange = <T extends CallableProps>(
753
+ propName: T,
754
+ payload?: object,
755
+ ): void => {
756
+ const callable = props[propName] as (payload?: object) => void;
757
+ if (callable && isFunction(callable)) {
758
+ callable(payload);
759
+ }
760
+ };
761
+
762
+ const contentInsetValue = useMemo(() => {
763
+ if (!props.contentInset) {
764
+ return;
765
+ }
766
+
767
+ if (!Array.isArray(props.contentInset)) {
768
+ return [props.contentInset];
769
+ }
770
+
771
+ return props.contentInset;
772
+ }, [props.contentInset]);
773
+
774
+ const _setNativeRef = (nativeRef: RCTMLNMapViewRefType): void => {
775
+ _nativeRef.current = nativeRef;
776
+ _runPendingNativeCommands(nativeRef);
777
+ };
778
+
779
+ const setNativeProps = (props: NativeProps): void => {
780
+ if (_nativeRef.current) {
781
+ _nativeRef.current.setNativeProps(props);
782
+ }
783
+ };
784
+
785
+ const _setStyleURL = (props: MapViewProps): void => {
786
+ // user set a styleURL, no need to alter props
787
+ if (props.styleURL) {
788
+ return;
789
+ }
790
+
791
+ // user set styleJSON pass it to styleURL
792
+ if (props.styleJSON && !props.styleURL) {
793
+ props.styleURL = props.styleJSON;
794
+ }
795
+
796
+ // user neither set styleJSON nor styleURL
797
+ // set defaultStyleUrl
798
+ if (!props.styleJSON || !props.styleURL) {
799
+ props.styleURL = defaultStyleURL;
800
+ }
801
+ };
802
+
803
+ const nativeProps = useMemo(() => {
804
+ return {
805
+ ...props,
806
+ localizeLabels,
807
+ scrollEnabled,
808
+ pitchEnabled,
809
+ rotateEnabled,
810
+ attributionEnabled,
811
+ logoEnabled,
812
+ surfaceView,
813
+ regionWillChangeDebounceTime,
814
+ regionDidChangeDebounceTime,
815
+ contentInsetValue,
816
+ style: styles.matchParent,
817
+ };
818
+ }, [
819
+ localizeLabels,
820
+ scrollEnabled,
821
+ pitchEnabled,
822
+ rotateEnabled,
823
+ attributionEnabled,
824
+ logoEnabled,
825
+ surfaceView,
826
+ regionWillChangeDebounceTime,
827
+ regionDidChangeDebounceTime,
828
+ contentInsetValue,
829
+ props,
830
+ contentInsetValue,
831
+ ]);
832
+
833
+ _setStyleURL(nativeProps);
834
+
835
+ const callbacks = {
836
+ ref: (ref: RCTMLNMapViewRefType): void => _setNativeRef(ref),
837
+ onPress: _onPress,
838
+ onLongPress: _onLongPress,
839
+ onMapChange: _onChange,
840
+ onAndroidCallback: isAndroid() ? _onAndroidCallback : undefined,
841
+ };
842
+
843
+ let mapView: ReactElement | null = null;
844
+ if (isAndroid() && !surfaceView && isReady) {
845
+ mapView = (
846
+ <RCTMLNAndroidTextureMapView {...nativeProps} {...callbacks}>
847
+ {props.children}
848
+ </RCTMLNAndroidTextureMapView>
849
+ );
850
+ } else if (isReady) {
851
+ mapView = (
852
+ <RCTMLNMapView {...nativeProps} {...callbacks}>
853
+ {props.children}
854
+ </RCTMLNMapView>
855
+ );
856
+ }
857
+
858
+ return (
859
+ <View
860
+ onLayout={_onLayout}
861
+ style={props.style}
862
+ testID={mapView ? undefined : props.testID}
863
+ >
864
+ {mapView}
865
+ </View>
866
+ );
867
+ },
868
+ ),
869
+ );
870
+
871
+ type RCTMLNMapViewRefType = Component<NativeProps> & Readonly<NativeMethods>;
872
+ const RCTMLNMapView = requireNativeComponent<NativeProps>(NATIVE_MODULE_NAME);
873
+
874
+ let RCTMLNAndroidTextureMapView: typeof RCTMLNMapView;
875
+ if (isAndroid()) {
876
+ RCTMLNAndroidTextureMapView = requireNativeComponent<NativeProps>(
877
+ ANDROID_TEXTURE_NATIVE_MODULE_NAME,
878
+ );
879
+ }
880
+ export default MapView;