@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,289 @@
1
+ import React, { ReactElement, useEffect, useImperativeHandle } from "react";
2
+
3
+ import CircleLayer from "./CircleLayer";
4
+ import HeadingIndicator from "./HeadingIndicator";
5
+ import NativeUserLocation from "./NativeUserLocation";
6
+ import Annotation from "./annotations/Annotation";
7
+ import locationManager, { Location } from "../modules/location/locationManager";
8
+ import { CircleLayerStyleProps } from "../utils/MaplibreStyles";
9
+
10
+ const mapboxBlue = "rgba(51, 181, 229, 100)";
11
+
12
+ const layerStyles: Record<string, CircleLayerStyleProps> = {
13
+ pluse: {
14
+ circleRadius: 15,
15
+ circleColor: mapboxBlue,
16
+ circleOpacity: 0.2,
17
+ circlePitchAlignment: "map",
18
+ },
19
+ background: {
20
+ circleRadius: 9,
21
+ circleColor: "#fff",
22
+ circlePitchAlignment: "map",
23
+ },
24
+ foreground: {
25
+ circleRadius: 6,
26
+ circleColor: mapboxBlue,
27
+ circlePitchAlignment: "map",
28
+ },
29
+ };
30
+
31
+ export const normalIcon = (
32
+ showsUserHeadingIndicator?: boolean,
33
+ heading?: number,
34
+ ): ReactElement[] => [
35
+ <CircleLayer
36
+ key="mapboxUserLocationPluseCircle"
37
+ id="mapboxUserLocationPluseCircle"
38
+ style={layerStyles.pluse}
39
+ />,
40
+ <CircleLayer
41
+ key="mapboxUserLocationWhiteCircle"
42
+ id="mapboxUserLocationWhiteCircle"
43
+ style={layerStyles.background}
44
+ />,
45
+ <CircleLayer
46
+ key="mapboxUserLocationBlueCicle"
47
+ id="mapboxUserLocationBlueCicle"
48
+ aboveLayerID="mapboxUserLocationWhiteCircle"
49
+ style={layerStyles.foreground}
50
+ />,
51
+ ...(showsUserHeadingIndicator && heading
52
+ ? [HeadingIndicator({ heading })]
53
+ : []),
54
+ ];
55
+
56
+ interface UserLocationProps {
57
+ /**
58
+ * Whether location icon is animated between updates
59
+ */
60
+ animated?: boolean;
61
+ /**
62
+ * Which render mode to use.
63
+ * Can either be `normal` or `native`
64
+ */
65
+ renderMode?: "normal" | "native";
66
+ /**
67
+ * native/android only render mode
68
+ *
69
+ * - normal: just a circle
70
+ * - compass: triangle with heading
71
+ * - gps: large arrow
72
+ *
73
+ * @platform android
74
+ */
75
+ androidRenderMode?: "normal" | "compass" | "gps";
76
+ /**
77
+ * Whether location icon is visible
78
+ */
79
+ visible?: boolean;
80
+ /**
81
+ * Callback that is triggered on location icon press
82
+ */
83
+ onPress?(): void;
84
+ /**
85
+ * Callback that is triggered on location update
86
+ */
87
+ onUpdate?(location: Location): void;
88
+ /**
89
+ * Show or hide small arrow which indicates direction the device is pointing relative to north.
90
+ */
91
+ showsUserHeadingIndicator?: boolean;
92
+ /**
93
+ * Minimum amount of movement before GPS location is updated in meters
94
+ */
95
+ minDisplacement?: number;
96
+ /**
97
+ * Custom location icon of type mapbox-gl-native components
98
+ *
99
+ * NOTE: Forking maintainer does not understand the above comment.
100
+ */
101
+ children?: ReactElement | ReactElement[];
102
+ }
103
+
104
+ interface UserLocationState {
105
+ shouldShowUserLocation: boolean;
106
+ coordinates?: number[];
107
+ heading?: number;
108
+ }
109
+
110
+ export enum UserLocationRenderMode {
111
+ Native = "native",
112
+ Normal = "normal",
113
+ }
114
+
115
+ export interface UserLocationRef {
116
+ setLocationManager: (props: { running: boolean }) => Promise<void>;
117
+ needsLocationManagerRunning: () => boolean;
118
+ _onLocationUpdate: (location: Location | null) => void;
119
+ }
120
+
121
+ const UserLocation = React.memo(
122
+ React.forwardRef<UserLocationRef, UserLocationProps>(
123
+ (
124
+ {
125
+ animated = true,
126
+ visible = true,
127
+ showsUserHeadingIndicator = false,
128
+ minDisplacement = 0,
129
+ renderMode = "normal",
130
+ androidRenderMode,
131
+ children,
132
+ onUpdate,
133
+ onPress,
134
+ }: UserLocationProps,
135
+ ref,
136
+ ) => {
137
+ const _isMounted = React.useRef<boolean | null>(null);
138
+ const locationManagerRunning = React.useRef<boolean>(false);
139
+
140
+ const [userLocationState, setUserLocationState] =
141
+ React.useState<UserLocationState>({
142
+ shouldShowUserLocation: false,
143
+ });
144
+
145
+ useImperativeHandle(
146
+ ref,
147
+ (): UserLocationRef => ({
148
+ /**
149
+ * Whether to start or stop listening to the locationManager
150
+ *
151
+ * Notice, that listening will start automatically when
152
+ * either `onUpdate` or `visible` are set
153
+ *
154
+ * @async
155
+ * @param {Object} running - Object with key `running` and `boolean` value
156
+ * @return {Promise<void>}
157
+ */
158
+ setLocationManager,
159
+ /**
160
+ *
161
+ * If locationManager should be running
162
+ *
163
+ * @return {boolean}
164
+ */
165
+ needsLocationManagerRunning,
166
+ _onLocationUpdate,
167
+ }),
168
+ );
169
+
170
+ useEffect(() => {
171
+ _isMounted.current = true;
172
+
173
+ setLocationManager({
174
+ running: needsLocationManagerRunning(),
175
+ }).then(() => {
176
+ if (renderMode === UserLocationRenderMode.Native) {
177
+ return;
178
+ }
179
+
180
+ locationManager.setMinDisplacement(minDisplacement ?? 0);
181
+ });
182
+
183
+ return (): void => {
184
+ _isMounted.current = false;
185
+ setLocationManager({ running: false });
186
+ };
187
+ // eslint-disable-next-line react-hooks/exhaustive-deps
188
+ }, []);
189
+
190
+ useEffect(() => {
191
+ locationManager.setMinDisplacement(minDisplacement ?? 0);
192
+ }, [minDisplacement]);
193
+
194
+ useEffect(() => {
195
+ if (!_isMounted.current) {
196
+ return;
197
+ }
198
+
199
+ setLocationManager({
200
+ running: needsLocationManagerRunning(),
201
+ });
202
+ });
203
+
204
+ async function setLocationManager({
205
+ running,
206
+ }: {
207
+ running: boolean;
208
+ }): Promise<void> {
209
+ if (locationManagerRunning.current !== running) {
210
+ locationManagerRunning.current = running;
211
+
212
+ if (running) {
213
+ locationManager.addListener(_onLocationUpdate);
214
+ const location = await locationManager.getLastKnownLocation();
215
+ _onLocationUpdate(location);
216
+ } else {
217
+ locationManager.removeListener(_onLocationUpdate);
218
+ }
219
+ }
220
+ }
221
+
222
+ function needsLocationManagerRunning(): boolean {
223
+ return !!(
224
+ !!onUpdate ||
225
+ (renderMode === UserLocationRenderMode.Normal && visible)
226
+ );
227
+ }
228
+
229
+ function _onLocationUpdate(location: Location | null): void {
230
+ if (!_isMounted.current || !location) {
231
+ return;
232
+ }
233
+
234
+ let coordinates;
235
+ let heading;
236
+
237
+ if (location && location.coords) {
238
+ const { longitude, latitude } = location.coords;
239
+ heading = location.coords.heading;
240
+ coordinates = [longitude, latitude];
241
+ }
242
+
243
+ setUserLocationState({
244
+ ...userLocationState,
245
+ coordinates,
246
+ heading,
247
+ });
248
+
249
+ if (onUpdate) {
250
+ onUpdate(location);
251
+ }
252
+ }
253
+
254
+ if (!visible) {
255
+ return null;
256
+ }
257
+
258
+ if (renderMode === UserLocationRenderMode.Native) {
259
+ const props = {
260
+ androidRenderMode,
261
+ iosShowsUserHeadingIndicator: showsUserHeadingIndicator,
262
+ };
263
+
264
+ return <NativeUserLocation {...props} />;
265
+ }
266
+
267
+ if (!userLocationState.coordinates) {
268
+ return null;
269
+ }
270
+
271
+ return (
272
+ <Annotation
273
+ animated={animated}
274
+ id="mapboxUserLocation"
275
+ onPress={onPress}
276
+ coordinates={userLocationState.coordinates}
277
+ style={{
278
+ iconRotate: userLocationState.heading,
279
+ }}
280
+ >
281
+ {children ||
282
+ normalIcon(showsUserHeadingIndicator, userLocationState.heading)}
283
+ </Annotation>
284
+ );
285
+ },
286
+ ),
287
+ );
288
+
289
+ export default UserLocation;
@@ -0,0 +1,218 @@
1
+ import { featureCollection } from "@turf/helpers";
2
+ import React, { memo, useImperativeHandle } from "react";
3
+ import {
4
+ NativeModules,
5
+ NativeSyntheticEvent,
6
+ requireNativeComponent,
7
+ } from "react-native";
8
+
9
+ import useAbstractSource from "../hooks/useAbstractSource";
10
+ import useNativeBridge from "../hooks/useNativeBridge";
11
+ import BaseProps from "../types/BaseProps";
12
+ import OnPressEvent from "../types/OnPressEvent";
13
+ import { cloneReactChildrenWithProps, isFunction, isAndroid } from "../utils";
14
+ import { FilterExpression } from "../utils/MaplibreStyles";
15
+ import { copyPropertiesAsDeprecated } from "../utils/deprecation";
16
+ import { getFilter } from "../utils/filterUtils";
17
+
18
+ const MapLibreGL = NativeModules.MLNModule;
19
+
20
+ export const NATIVE_MODULE_NAME = "RCTMLNVectorSource";
21
+
22
+ interface VectorSourceProps extends BaseProps {
23
+ /**
24
+ * A string that uniquely identifies the source.
25
+ */
26
+ id: string;
27
+ /**
28
+ * A URL to a TileJSON configuration file describing the source’s contents and other metadata.
29
+ */
30
+ url?: string;
31
+ /**
32
+ * An array of tile URL templates. If multiple endpoints are specified, clients may use any combination of endpoints.
33
+ * Example: https://example.com/vector-tiles/{z}/{x}/{y}.pbf
34
+ */
35
+ tileUrlTemplates?: string[];
36
+ /**
37
+ * An unsigned integer that specifies the minimum zoom level at which to display tiles from the source.
38
+ * The value should be between 0 and 22, inclusive, and less than
39
+ * maxZoomLevel, if specified. The default value for this option is 0.
40
+ */
41
+ minZoomLevel?: number;
42
+ /**
43
+ * An unsigned integer that specifies the maximum zoom level at which to display tiles from the source.
44
+ * The value should be between 0 and 22, inclusive, and less than
45
+ * minZoomLevel, if specified. The default value for this option is 22.
46
+ */
47
+ maxZoomLevel?: number;
48
+ /**
49
+ * Influences the y direction of the tile coordinates. (tms inverts y axis)
50
+ */
51
+ tms?: boolean;
52
+ /**
53
+ * An HTML or literal text string defining the buttons to be displayed in an action sheet when the
54
+ * source is part of a map view’s style and the map view’s attribution button is pressed.
55
+ */
56
+ attribution?: string;
57
+ /**
58
+ * Source press listener, gets called when a user presses one of the children layers only
59
+ * if that layer has a higher z-index than another source layers
60
+ *
61
+ * @param {Object} event
62
+ * @param {Object[]} event.features - the geojson features that have hit by the press (might be multiple)
63
+ * @param {Object} event.coordinates - the coordinates of the click
64
+ * @param {Object} event.point - the point of the click
65
+ */
66
+ onPress?: (event: OnPressEvent) => void;
67
+ /**
68
+ * Overrides the default touch hitbox(44x44 pixels) for the source layers
69
+ */
70
+ hitbox?: {
71
+ /**
72
+ * `width` of hitbox
73
+ */
74
+ width: number;
75
+ /**
76
+ * `height` of hitbox
77
+ */
78
+ height: number;
79
+ };
80
+
81
+ children?: React.ReactElement | React.ReactElement[];
82
+ }
83
+
84
+ type NativeProps = VectorSourceProps;
85
+
86
+ const RCTMLNVectorSource =
87
+ requireNativeComponent<VectorSourceProps>(NATIVE_MODULE_NAME);
88
+
89
+ /**
90
+ * VectorSource is a map content source that supplies tiled vector data in Mapbox Vector Tile format to be shown on the map.
91
+ * The location of and metadata about the tiles are defined either by an option dictionary or by an external file that conforms to the TileJSON specification.
92
+ */
93
+ const VectorSource = memo(
94
+ React.forwardRef(
95
+ (
96
+ {
97
+ id = MapLibreGL.StyleSource.DefaultSourceID,
98
+ ...props
99
+ }: VectorSourceProps,
100
+ ref,
101
+ ) => {
102
+ // * exposes the methods of the function component so we don't break projects that depend on calling this methods
103
+ useImperativeHandle(ref, () => ({
104
+ /**
105
+ * Returns all features that match the query parameters regardless of whether or not the feature is
106
+ * currently rendered on the map. The domain of the query includes all currently-loaded vector tiles
107
+ * and GeoJSON source tiles. This function does not check tiles outside of the visible viewport.
108
+ *
109
+ * @example
110
+ * vectorSource.features(['id1', 'id2'])
111
+ *
112
+ * @param {Array=} layerIDs - 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.
113
+ * @param {Array=} filter - an optional filter statement to filter the returned Features.
114
+ * @return {GeoJSON.FeatureCollection}
115
+ */
116
+ features,
117
+ onPress,
118
+ }));
119
+
120
+ const {
121
+ _runNativeCommand,
122
+ // _runPendingNativeCommands,
123
+ _onAndroidCallback,
124
+ } = useNativeBridge(NATIVE_MODULE_NAME);
125
+ const { setNativeRef, _nativeRef } = useAbstractSource<NativeProps>();
126
+
127
+ // const _setNativeRef = (
128
+ // nativeRef: (Component<NativeProps> & Readonly<NativeMethods>) | null,
129
+ // ): void => {
130
+ // if (nativeRef) {
131
+ // setNativeRef(nativeRef);
132
+ // _runPendingNativeCommands(nativeRef);
133
+ // }
134
+ // };
135
+
136
+ const features = async (
137
+ layerIDs = [],
138
+ filter?: FilterExpression,
139
+ ): Promise<GeoJSON.FeatureCollection> => {
140
+ if (!_nativeRef) {
141
+ return featureCollection([]);
142
+ }
143
+ const res: { data: string | GeoJSON.FeatureCollection } =
144
+ await _runNativeCommand("features", _nativeRef, [
145
+ [[layerIDs, getFilter(filter)]],
146
+ ]);
147
+
148
+ if (isAndroid()) {
149
+ return JSON.parse(res?.data as string);
150
+ }
151
+
152
+ return res.data as GeoJSON.FeatureCollection;
153
+ };
154
+
155
+ const onPress = (
156
+ event: NativeSyntheticEvent<{ payload: OnPressEvent }>,
157
+ ): void => {
158
+ const { onPress } = props;
159
+
160
+ if (!onPress) {
161
+ return;
162
+ }
163
+ const {
164
+ nativeEvent: {
165
+ payload: { features, coordinates, point },
166
+ },
167
+ } = event;
168
+ let newEvent = {
169
+ features,
170
+ coordinates,
171
+ point,
172
+ };
173
+ newEvent = copyPropertiesAsDeprecated(
174
+ event,
175
+ newEvent,
176
+ (key: string) => {
177
+ console.warn(
178
+ `event.${key} is deprecated on VectorSource#onPress, please use event.features`,
179
+ );
180
+ },
181
+ {
182
+ nativeEvent: (origNativeEvent: OnPressEvent) => ({
183
+ ...origNativeEvent,
184
+ payload: features[0],
185
+ }),
186
+ },
187
+ );
188
+
189
+ onPress(newEvent);
190
+ };
191
+
192
+ const allProps = {
193
+ id,
194
+ url: props.url,
195
+ tileUrlTemplates: props.tileUrlTemplates,
196
+ minZoomLevel: props.minZoomLevel,
197
+ maxZoomLevel: props.maxZoomLevel,
198
+ tms: props.tms,
199
+ attribution: props.attribution,
200
+ hitbox: props.hitbox,
201
+ hasPressListener: isFunction(props.onPress),
202
+ onMapboxVectorSourcePress: onPress,
203
+ onPress: undefined,
204
+ onAndroidCallback: isAndroid() ? _onAndroidCallback : undefined,
205
+ };
206
+
207
+ return (
208
+ <RCTMLNVectorSource ref={setNativeRef} {...allProps}>
209
+ {cloneReactChildrenWithProps(props.children, {
210
+ sourceID: id,
211
+ })}
212
+ </RCTMLNVectorSource>
213
+ );
214
+ },
215
+ ),
216
+ );
217
+
218
+ export default VectorSource;
@@ -0,0 +1,161 @@
1
+ import React, {
2
+ ReactElement,
3
+ useCallback,
4
+ useEffect,
5
+ useImperativeHandle,
6
+ } from "react";
7
+ import { Animated as RNAnimated, Easing } from "react-native";
8
+
9
+ import OnPressEvent from "../../types/OnPressEvent";
10
+ import { SymbolLayerStyleProps } from "../../utils/MaplibreStyles";
11
+ import { AnimatedShapeSource } from "../../utils/animated/Animated";
12
+ import AnimatedMapPoint from "../../utils/animated/AnimatedPoint";
13
+ import SymbolLayer from "../SymbolLayer";
14
+
15
+ interface AnnotationProps {
16
+ id: string;
17
+ animated?: boolean;
18
+ animationDuration?: number;
19
+ animationEasingFunction?(x: number): number;
20
+ coordinates?: number[];
21
+ onPress?(event: OnPressEvent): void;
22
+ children?: ReactElement | ReactElement[];
23
+ style?: object;
24
+ icon?: string | number | object;
25
+ }
26
+
27
+ type Shape = AnimatedMapPoint | GeoJSON.Point;
28
+
29
+ function getShapeFromProps(props: Partial<AnnotationProps> = {}): Shape {
30
+ const lng = props.coordinates?.[0] || 0;
31
+ const lat = props.coordinates?.[1] || 0;
32
+ const point: GeoJSON.Point = { type: "Point", coordinates: [lng, lat] };
33
+
34
+ if (props.animated) {
35
+ return new AnimatedMapPoint(point);
36
+ }
37
+
38
+ return point;
39
+ }
40
+
41
+ function isShapeAnimated(shape: Shape): shape is AnimatedMapPoint {
42
+ return shape instanceof AnimatedMapPoint;
43
+ }
44
+
45
+ interface AnnotationRef {
46
+ onPress(event: OnPressEvent): void;
47
+ symbolStyle: SymbolLayerStyleProps | undefined;
48
+ }
49
+
50
+ const Annotation = React.forwardRef<AnnotationRef, AnnotationProps>(
51
+ (
52
+ {
53
+ animated = false,
54
+ animationDuration = 1000,
55
+ animationEasingFunction = Easing.linear,
56
+ ...otherProps
57
+ }: AnnotationProps,
58
+ ref,
59
+ ) => {
60
+ const props = {
61
+ ...otherProps,
62
+ animated,
63
+ animationDuration,
64
+ animationEasingFunction,
65
+ };
66
+
67
+ useImperativeHandle(
68
+ ref,
69
+ (): AnnotationRef => ({
70
+ onPress,
71
+ symbolStyle,
72
+ }),
73
+ );
74
+
75
+ const [shape, setShape] = React.useState<Shape | null>(
76
+ getShapeFromProps(props),
77
+ );
78
+
79
+ // this will run useEffect only when actual coordinates values change
80
+ const coordinateDeps = props.coordinates?.join(",");
81
+
82
+ useEffect(() => {
83
+ if (!Array.isArray(props.coordinates)) {
84
+ setShape(null);
85
+ return;
86
+ }
87
+
88
+ if (shape && isShapeAnimated(shape)) {
89
+ shape.stopAnimation();
90
+
91
+ shape
92
+ .timing({
93
+ coordinates: props.coordinates,
94
+ easing: animationEasingFunction,
95
+ duration: animationDuration,
96
+ })
97
+ .start();
98
+
99
+ return;
100
+ }
101
+
102
+ if (!shape || !isShapeAnimated(shape)) {
103
+ const newShape = getShapeFromProps(props);
104
+ setShape(newShape);
105
+ }
106
+ }, [coordinateDeps]);
107
+
108
+ const onPressProp = props.onPress;
109
+
110
+ const _onPress = useCallback(
111
+ (event: OnPressEvent) => {
112
+ if (onPressProp) {
113
+ onPressProp(event);
114
+ }
115
+ },
116
+ [onPressProp],
117
+ );
118
+
119
+ // This function is needed to correctly generate Annotation.md doc
120
+ function onPress(event: OnPressEvent): void {
121
+ _onPress(event);
122
+ }
123
+
124
+ if (!props.coordinates) {
125
+ return null;
126
+ }
127
+
128
+ const children = [];
129
+ const symbolStyle: SymbolLayerStyleProps | undefined = props.icon
130
+ ? { ...props.style, iconImage: props.icon }
131
+ : undefined;
132
+
133
+ if (symbolStyle) {
134
+ children.push(
135
+ <SymbolLayer id={`${props.id}-symbol`} style={symbolStyle} />,
136
+ );
137
+ }
138
+
139
+ if (props.children) {
140
+ if (Array.isArray(props.children)) {
141
+ children.push(...props.children);
142
+ } else {
143
+ children.push(props.children);
144
+ }
145
+ }
146
+
147
+ return (
148
+ <AnimatedShapeSource
149
+ id={props.id}
150
+ onPress={_onPress}
151
+ shape={shape as RNAnimated.WithAnimatedObject<GeoJSON.Point>}
152
+ >
153
+ {children}
154
+ </AnimatedShapeSource>
155
+ );
156
+ },
157
+ );
158
+
159
+ Annotation.displayName = "Annotation";
160
+
161
+ export default Annotation;