@maplibre/maplibre-react-native 8.6.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +158 -0
  3. package/.gitattributes +1 -0
  4. package/.nvmrc +1 -0
  5. package/.prettierrc.js +7 -0
  6. package/.sonarcloud.properties +15 -0
  7. package/CHANGELOG.md +367 -0
  8. package/CODE_OF_CONDUCT.md +2 -0
  9. package/CONTRIBUTING.md +34 -0
  10. package/LICENSE.md +9 -0
  11. package/README.md +224 -0
  12. package/RELEASE.md +30 -0
  13. package/android/build.gradle +34 -0
  14. package/android/install.md +16 -0
  15. package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +2 -0
  16. package/android/rctmgl/build.gradle +61 -0
  17. package/android/rctmgl/proguard-rules.pro +25 -0
  18. package/android/rctmgl/src/main/AndroidManifest.xml +4 -0
  19. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +99 -0
  20. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEvent.java +35 -0
  21. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEventEmitter.java +80 -0
  22. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractMapFeature.java +19 -0
  23. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerView.java +23 -0
  24. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerViewManager.java +67 -0
  25. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java +15 -0
  26. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +22 -0
  27. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java +112 -0
  28. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java +45 -0
  29. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java +360 -0
  30. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java +88 -0
  31. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraStop.java +249 -0
  32. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java +125 -0
  33. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java +73 -0
  34. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java +530 -0
  35. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java +101 -0
  36. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/constants/CameraMode.java +22 -0
  37. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java +234 -0
  38. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java +103 -0
  39. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/LocationComponentManager.java +149 -0
  40. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java +66 -0
  41. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java +35 -0
  42. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/LayerSourceInfo.java +59 -0
  43. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +16 -0
  44. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +31 -0
  45. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java +1527 -0
  46. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java +353 -0
  47. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +41 -0
  48. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java +83 -0
  49. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java +2242 -0
  50. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java +108 -0
  51. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java +212 -0
  52. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTLayer.java +287 -0
  53. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +27 -0
  54. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java +64 -0
  55. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java +55 -0
  56. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java +77 -0
  57. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java +55 -0
  58. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java +80 -0
  59. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java +55 -0
  60. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java +80 -0
  61. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java +55 -0
  62. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java +77 -0
  63. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java +55 -0
  64. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java +79 -0
  65. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +27 -0
  66. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java +64 -0
  67. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java +55 -0
  68. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java +75 -0
  69. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java +65 -0
  70. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java +29 -0
  71. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java +81 -0
  72. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java +72 -0
  73. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java +45 -0
  74. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java +44 -0
  75. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java +302 -0
  76. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java +227 -0
  77. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java +97 -0
  78. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java +80 -0
  79. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +64 -0
  80. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java +84 -0
  81. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTSource.java +244 -0
  82. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AbstractEvent.java +66 -0
  83. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AndroidCallbackEvent.java +38 -0
  84. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/EventEmitter.java +45 -0
  85. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/FeatureClickEvent.java +79 -0
  86. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/IEvent.java +18 -0
  87. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/ImageMissingEvent.java +42 -0
  88. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/LocationEvent.java +100 -0
  89. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapChangeEvent.java +47 -0
  90. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapClickEvent.java +51 -0
  91. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.java +36 -0
  92. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/OfflineEvent.java +29 -0
  93. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationClickEvent.java +46 -0
  94. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationDragEvent.java +51 -0
  95. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventKeys.java +39 -0
  96. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventTypes.java +51 -0
  97. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/http/CustomHeadersInterceptor.java +38 -0
  98. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/LocationManager.java +168 -0
  99. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocation.java +63 -0
  100. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +11 -0
  101. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingMode.java +63 -0
  102. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingState.java +19 -0
  103. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +158 -0
  104. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java +140 -0
  105. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java +348 -0
  106. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java +597 -0
  107. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java +139 -0
  108. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/BitmapUtils.java +129 -0
  109. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ConvertUtils.java +257 -0
  110. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/DownloadMapImageTask.java +159 -0
  111. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ExpressionParser.java +74 -0
  112. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoJSONUtils.java +209 -0
  113. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoViewport.java +38 -0
  114. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ImageEntry.java +25 -0
  115. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ResourceUtils.java +30 -0
  116. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SimpleEventCallback.java +30 -0
  117. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SphericalMercator.java +69 -0
  118. package/android/rctmgl/src/main/res/drawable/empty.xml +5 -0
  119. package/android/rctmgl/src/main/res/drawable/empty_drawable.png +0 -0
  120. package/android/rctmgl/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
  121. package/android/rctmgl/src/main/res/layout/annotation.xml +17 -0
  122. package/android/rctmgl/src/main/res/values/strings.xml +3 -0
  123. package/android/settings.gradle +1 -0
  124. package/app.plugin.js +1 -0
  125. package/assets/heading.png +0 -0
  126. package/assets/heading@2x.png +0 -0
  127. package/assets/heading@3x.png +0 -0
  128. package/assets/indoor_building_map_android.png +0 -0
  129. package/assets/indoor_building_map_ios.png +0 -0
  130. package/assets/mapbox_logo.png +0 -0
  131. package/babel.config.js +9 -0
  132. package/docs/Annotation.md +39 -0
  133. package/docs/Annotations.md +17 -0
  134. package/docs/BackgroundLayer.md +166 -0
  135. package/docs/Callout.md +15 -0
  136. package/docs/Camera.md +162 -0
  137. package/docs/CircleLayer.md +453 -0
  138. package/docs/CustomHttpHeaders.md +87 -0
  139. package/docs/FillExtrusionLayer.md +327 -0
  140. package/docs/FillLayer.md +293 -0
  141. package/docs/GettingStarted.md +72 -0
  142. package/docs/HeadingIndicator.md +10 -0
  143. package/docs/HeatmapLayer.md +215 -0
  144. package/docs/ImageSource.md +12 -0
  145. package/docs/Images.md +12 -0
  146. package/docs/Light.md +159 -0
  147. package/docs/LineLayer.md +567 -0
  148. package/docs/Logger.md +23 -0
  149. package/docs/MapView.md +211 -0
  150. package/docs/MapboxGL.md +65 -0
  151. package/docs/MarkerView.md +14 -0
  152. package/docs/NativeUserLocation.md +11 -0
  153. package/docs/OfflineManager.md +246 -0
  154. package/docs/PointAnnotation.md +34 -0
  155. package/docs/RasterLayer.md +357 -0
  156. package/docs/RasterSource.md +17 -0
  157. package/docs/ShapeSource.md +100 -0
  158. package/docs/Style.md +10 -0
  159. package/docs/StyleSheet.md +430 -0
  160. package/docs/SymbolLayer.md +1658 -0
  161. package/docs/UserLocation.md +39 -0
  162. package/docs/VectorSource.md +48 -0
  163. package/docs/docs.json +6093 -0
  164. package/docs/snapshotManager.md +53 -0
  165. package/index.d.ts +953 -0
  166. package/ios/RCTMGL/CameraMode.h +18 -0
  167. package/ios/RCTMGL/CameraMode.m +18 -0
  168. package/ios/RCTMGL/CameraStop.h +26 -0
  169. package/ios/RCTMGL/CameraStop.m +83 -0
  170. package/ios/RCTMGL/CameraUpdateItem.h +18 -0
  171. package/ios/RCTMGL/CameraUpdateItem.m +178 -0
  172. package/ios/RCTMGL/CameraUpdateQueue.h +21 -0
  173. package/ios/RCTMGL/CameraUpdateQueue.m +74 -0
  174. package/ios/RCTMGL/FilterParser.h +14 -0
  175. package/ios/RCTMGL/FilterParser.m +22 -0
  176. package/ios/RCTMGL/MGLCustomHeaders.h +20 -0
  177. package/ios/RCTMGL/MGLCustomHeaders.m +98 -0
  178. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +23 -0
  179. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.m +474 -0
  180. package/ios/RCTMGL/MGLModule.h +13 -0
  181. package/ios/RCTMGL/MGLModule.m +269 -0
  182. package/ios/RCTMGL/MGLOfflineModule.h +19 -0
  183. package/ios/RCTMGL/MGLOfflineModule.m +516 -0
  184. package/ios/RCTMGL/MGLSnapshotModule.h +13 -0
  185. package/ios/RCTMGL/MGLSnapshotModule.m +80 -0
  186. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.h +11 -0
  187. package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.m +57 -0
  188. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +11 -0
  189. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.m +102 -0
  190. package/ios/RCTMGL/MGLUserLocationHeadingIndicator.h +10 -0
  191. package/ios/RCTMGL/RCTConvert+Mapbox.h +16 -0
  192. package/ios/RCTMGL/RCTConvert+Mapbox.m +32 -0
  193. package/ios/RCTMGL/RCTMGL.h +13 -0
  194. package/ios/RCTMGL/RCTMGL.m +13 -0
  195. package/ios/RCTMGL/RCTMGLBackgroundLayer.h +14 -0
  196. package/ios/RCTMGL/RCTMGLBackgroundLayer.m +27 -0
  197. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.h +13 -0
  198. package/ios/RCTMGL/RCTMGLBackgroundLayerManager.m +35 -0
  199. package/ios/RCTMGL/RCTMGLCallout.h +15 -0
  200. package/ios/RCTMGL/RCTMGLCallout.m +74 -0
  201. package/ios/RCTMGL/RCTMGLCalloutManager.h +13 -0
  202. package/ios/RCTMGL/RCTMGLCalloutManager.m +21 -0
  203. package/ios/RCTMGL/RCTMGLCamera.h +39 -0
  204. package/ios/RCTMGL/RCTMGLCamera.m +258 -0
  205. package/ios/RCTMGL/RCTMGLCameraManager.h +13 -0
  206. package/ios/RCTMGL/RCTMGLCameraManager.m +52 -0
  207. package/ios/RCTMGL/RCTMGLCircleLayer.h +13 -0
  208. package/ios/RCTMGL/RCTMGLCircleLayer.m +34 -0
  209. package/ios/RCTMGL/RCTMGLCircleLayerManager.h +13 -0
  210. package/ios/RCTMGL/RCTMGLCircleLayerManager.m +39 -0
  211. package/ios/RCTMGL/RCTMGLEvent.h +21 -0
  212. package/ios/RCTMGL/RCTMGLEvent.m +47 -0
  213. package/ios/RCTMGL/RCTMGLEventProtocol.h +16 -0
  214. package/ios/RCTMGL/RCTMGLEventTypes.h +50 -0
  215. package/ios/RCTMGL/RCTMGLEventTypes.m +49 -0
  216. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +14 -0
  217. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.m +32 -0
  218. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.h +13 -0
  219. package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.m +39 -0
  220. package/ios/RCTMGL/RCTMGLFillLayer.h +14 -0
  221. package/ios/RCTMGL/RCTMGLFillLayer.m +33 -0
  222. package/ios/RCTMGL/RCTMGLFillLayerManager.h +13 -0
  223. package/ios/RCTMGL/RCTMGLFillLayerManager.m +37 -0
  224. package/ios/RCTMGL/RCTMGLHeatmapLayer.h +12 -0
  225. package/ios/RCTMGL/RCTMGLHeatmapLayer.m +30 -0
  226. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +12 -0
  227. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.m +38 -0
  228. package/ios/RCTMGL/RCTMGLImageQueue.h +19 -0
  229. package/ios/RCTMGL/RCTMGLImageQueue.m +57 -0
  230. package/ios/RCTMGL/RCTMGLImageQueueOperation.h +17 -0
  231. package/ios/RCTMGL/RCTMGLImageQueueOperation.m +138 -0
  232. package/ios/RCTMGL/RCTMGLImageSource.h +16 -0
  233. package/ios/RCTMGL/RCTMGLImageSource.m +60 -0
  234. package/ios/RCTMGL/RCTMGLImageSourceManager.h +13 -0
  235. package/ios/RCTMGL/RCTMGLImageSourceManager.m +25 -0
  236. package/ios/RCTMGL/RCTMGLImages.h +25 -0
  237. package/ios/RCTMGL/RCTMGLImages.m +126 -0
  238. package/ios/RCTMGL/RCTMGLImagesManager.h +5 -0
  239. package/ios/RCTMGL/RCTMGLImagesManager.m +21 -0
  240. package/ios/RCTMGL/RCTMGLLayer.h +52 -0
  241. package/ios/RCTMGL/RCTMGLLayer.m +236 -0
  242. package/ios/RCTMGL/RCTMGLLight.h +17 -0
  243. package/ios/RCTMGL/RCTMGLLight.m +46 -0
  244. package/ios/RCTMGL/RCTMGLLightManager.h +13 -0
  245. package/ios/RCTMGL/RCTMGLLightManager.m +23 -0
  246. package/ios/RCTMGL/RCTMGLLineLayer.h +14 -0
  247. package/ios/RCTMGL/RCTMGLLineLayer.m +33 -0
  248. package/ios/RCTMGL/RCTMGLLineLayerManager.h +13 -0
  249. package/ios/RCTMGL/RCTMGLLineLayerManager.m +40 -0
  250. package/ios/RCTMGL/RCTMGLLocation.h +19 -0
  251. package/ios/RCTMGL/RCTMGLLocation.m +32 -0
  252. package/ios/RCTMGL/RCTMGLLocationManager.h +30 -0
  253. package/ios/RCTMGL/RCTMGLLocationManager.m +180 -0
  254. package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +20 -0
  255. package/ios/RCTMGL/RCTMGLLocationModule.h +15 -0
  256. package/ios/RCTMGL/RCTMGLLocationModule.m +99 -0
  257. package/ios/RCTMGL/RCTMGLLogging.h +18 -0
  258. package/ios/RCTMGL/RCTMGLLogging.m +132 -0
  259. package/ios/RCTMGL/RCTMGLMapTouchEvent.h +25 -0
  260. package/ios/RCTMGL/RCTMGLMapTouchEvent.m +77 -0
  261. package/ios/RCTMGL/RCTMGLMapView.h +91 -0
  262. package/ios/RCTMGL/RCTMGLMapView.m +536 -0
  263. package/ios/RCTMGL/RCTMGLMapViewManager.h +17 -0
  264. package/ios/RCTMGL/RCTMGLMapViewManager.m +625 -0
  265. package/ios/RCTMGL/RCTMGLNativeUserLocation.h +18 -0
  266. package/ios/RCTMGL/RCTMGLNativeUserLocation.m +49 -0
  267. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +5 -0
  268. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +25 -0
  269. package/ios/RCTMGL/RCTMGLPointAnnotation.h +41 -0
  270. package/ios/RCTMGL/RCTMGLPointAnnotation.m +251 -0
  271. package/ios/RCTMGL/RCTMGLPointAnnotationManager.h +13 -0
  272. package/ios/RCTMGL/RCTMGLPointAnnotationManager.m +36 -0
  273. package/ios/RCTMGL/RCTMGLRasterLayer.h +14 -0
  274. package/ios/RCTMGL/RCTMGLRasterLayer.m +30 -0
  275. package/ios/RCTMGL/RCTMGLRasterLayerManager.h +13 -0
  276. package/ios/RCTMGL/RCTMGLRasterLayerManager.m +35 -0
  277. package/ios/RCTMGL/RCTMGLRasterSource.h +16 -0
  278. package/ios/RCTMGL/RCTMGLRasterSource.m +35 -0
  279. package/ios/RCTMGL/RCTMGLRasterSourceManager.h +13 -0
  280. package/ios/RCTMGL/RCTMGLRasterSourceManager.m +32 -0
  281. package/ios/RCTMGL/RCTMGLShapeSource.h +52 -0
  282. package/ios/RCTMGL/RCTMGLShapeSource.m +180 -0
  283. package/ios/RCTMGL/RCTMGLShapeSourceManager.h +14 -0
  284. package/ios/RCTMGL/RCTMGLShapeSourceManager.m +205 -0
  285. package/ios/RCTMGL/RCTMGLSource.h +35 -0
  286. package/ios/RCTMGL/RCTMGLSource.m +143 -0
  287. package/ios/RCTMGL/RCTMGLStyle.h +219 -0
  288. package/ios/RCTMGL/RCTMGLStyle.m +1654 -0
  289. package/ios/RCTMGL/RCTMGLStyleValue.h +27 -0
  290. package/ios/RCTMGL/RCTMGLStyleValue.m +167 -0
  291. package/ios/RCTMGL/RCTMGLSymbolLayer.h +19 -0
  292. package/ios/RCTMGL/RCTMGLSymbolLayer.m +121 -0
  293. package/ios/RCTMGL/RCTMGLSymbolLayerManager.h +13 -0
  294. package/ios/RCTMGL/RCTMGLSymbolLayerManager.m +40 -0
  295. package/ios/RCTMGL/RCTMGLTileSource.h +22 -0
  296. package/ios/RCTMGL/RCTMGLTileSource.m +31 -0
  297. package/ios/RCTMGL/RCTMGLUserLocation.h +15 -0
  298. package/ios/RCTMGL/RCTMGLUserLocation.m +38 -0
  299. package/ios/RCTMGL/RCTMGLUtils.h +31 -0
  300. package/ios/RCTMGL/RCTMGLUtils.m +218 -0
  301. package/ios/RCTMGL/RCTMGLVectorLayer.h +15 -0
  302. package/ios/RCTMGL/RCTMGLVectorLayer.m +59 -0
  303. package/ios/RCTMGL/RCTMGLVectorSource.h +16 -0
  304. package/ios/RCTMGL/RCTMGLVectorSource.m +28 -0
  305. package/ios/RCTMGL/RCTMGLVectorSourceManager.h +14 -0
  306. package/ios/RCTMGL/RCTMGLVectorSourceManager.m +79 -0
  307. package/ios/RCTMGL/RNMBImageUtils.h +17 -0
  308. package/ios/RCTMGL/RNMBImageUtils.m +31 -0
  309. package/ios/RCTMGL/ViewManager.h +16 -0
  310. package/ios/RCTMGL/ViewManager.m +63 -0
  311. package/ios/RCTMGL/index.d.ts +1164 -0
  312. package/ios/RCTMGL.xcodeproj/project.pbxproj +774 -0
  313. package/ios/install.md +44 -0
  314. package/javascript/components/AbstractLayer.js +75 -0
  315. package/javascript/components/AbstractSource.js +15 -0
  316. package/javascript/components/BackgroundLayer.js +97 -0
  317. package/javascript/components/Callout.js +139 -0
  318. package/javascript/components/Camera.js +665 -0
  319. package/javascript/components/CircleLayer.js +101 -0
  320. package/javascript/components/FillExtrusionLayer.js +98 -0
  321. package/javascript/components/FillLayer.js +94 -0
  322. package/javascript/components/HeadingIndicator.js +31 -0
  323. package/javascript/components/HeatmapLayer.js +99 -0
  324. package/javascript/components/ImageSource.js +82 -0
  325. package/javascript/components/Images.js +119 -0
  326. package/javascript/components/Light.js +47 -0
  327. package/javascript/components/LineLayer.js +94 -0
  328. package/javascript/components/MapView.js +817 -0
  329. package/javascript/components/MarkerView.js +87 -0
  330. package/javascript/components/NativeBridgeComponent.js +86 -0
  331. package/javascript/components/NativeUserLocation.js +41 -0
  332. package/javascript/components/PointAnnotation.js +216 -0
  333. package/javascript/components/RasterLayer.js +95 -0
  334. package/javascript/components/RasterSource.js +124 -0
  335. package/javascript/components/ShapeSource.js +357 -0
  336. package/javascript/components/Style.js +264 -0
  337. package/javascript/components/SymbolLayer.js +120 -0
  338. package/javascript/components/UserLocation.js +273 -0
  339. package/javascript/components/VectorSource.js +200 -0
  340. package/javascript/components/annotations/Annotation.js +122 -0
  341. package/javascript/index.js +153 -0
  342. package/javascript/modules/location/locationManager.js +101 -0
  343. package/javascript/modules/offline/OfflineCreatePackOptions.js +46 -0
  344. package/javascript/modules/offline/OfflinePack.js +40 -0
  345. package/javascript/modules/offline/offlineManager.js +378 -0
  346. package/javascript/modules/snapshot/SnapshotOptions.js +67 -0
  347. package/javascript/modules/snapshot/snapshotManager.js +62 -0
  348. package/javascript/utils/BridgeValue.js +81 -0
  349. package/javascript/utils/Logger.js +114 -0
  350. package/javascript/utils/animated/Animated.js +39 -0
  351. package/javascript/utils/animated/AnimatedCoordinatesArray.js +191 -0
  352. package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.js +43 -0
  353. package/javascript/utils/animated/AnimatedPoint.js +126 -0
  354. package/javascript/utils/animated/AnimatedRouteCoordinatesArray.js +124 -0
  355. package/javascript/utils/animated/AnimatedShape.js +72 -0
  356. package/javascript/utils/deprecation.js +25 -0
  357. package/javascript/utils/filterUtils.js +7 -0
  358. package/javascript/utils/geoUtils.js +73 -0
  359. package/javascript/utils/index.js +113 -0
  360. package/javascript/utils/styleMap.js +1901 -0
  361. package/maplibre-react-native.podspec +79 -0
  362. package/package.json +120 -0
  363. package/plugin/build/withMapbox.d.ts +12 -0
  364. package/plugin/build/withMapbox.js +119 -0
  365. package/plugin/install.md +32 -0
  366. package/react-native.config.js +10 -0
  367. package/scripts/autogenHelpers/DocJSONBuilder.js +458 -0
  368. package/scripts/autogenHelpers/JSDocNodeTree.js +131 -0
  369. package/scripts/autogenHelpers/MarkdownBuilder.js +29 -0
  370. package/scripts/autogenHelpers/globals.js +507 -0
  371. package/scripts/autogenerate.js +374 -0
  372. package/scripts/download-style-spec.sh +15 -0
  373. package/scripts/templates/RCTMGLStyle.h.ejs +33 -0
  374. package/scripts/templates/RCTMGLStyle.m.ejs +97 -0
  375. package/scripts/templates/RCTMGLStyleFactory.java.ejs +107 -0
  376. package/scripts/templates/component.md.ejs +122 -0
  377. package/scripts/templates/index.d.ts.ejs +56 -0
  378. package/scripts/templates/styleMap.js.ejs +115 -0
  379. package/setup-jest.js +121 -0
  380. package/style-spec/v8.json +5798 -0
  381. package/tsconfig.json +65 -0
@@ -0,0 +1,39 @@
1
+ //
2
+ // RCTMGLFillExtrusionLayerManager.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/15/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLFillExtrusionLayerManager.h"
10
+ #import "RCTMGLFillExtrusionLayer.h"
11
+
12
+ @implementation RCTMGLFillExtrusionLayerManager
13
+
14
+ RCT_EXPORT_MODULE()
15
+
16
+ // fill extrusion layer props
17
+ RCT_EXPORT_VIEW_PROPERTY(sourceLayerID, NSString);
18
+
19
+ // standard layer props
20
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString);
21
+ RCT_EXPORT_VIEW_PROPERTY(sourceID, NSString);
22
+ RCT_EXPORT_VIEW_PROPERTY(filter, NSArray);
23
+
24
+ RCT_EXPORT_VIEW_PROPERTY(aboveLayerID, NSString);
25
+ RCT_EXPORT_VIEW_PROPERTY(belowLayerID, NSString);
26
+ RCT_EXPORT_VIEW_PROPERTY(layerIndex, NSNumber);
27
+ RCT_EXPORT_VIEW_PROPERTY(reactStyle, NSDictionary);
28
+
29
+ RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber);
30
+ RCT_EXPORT_VIEW_PROPERTY(minZoomLevel, NSNumber);
31
+
32
+ - (UIView*)view
33
+ {
34
+ RCTMGLFillExtrusionLayer *layer = [RCTMGLFillExtrusionLayer new];
35
+ layer.bridge = self.bridge;
36
+ return layer;
37
+ }
38
+
39
+ @end
@@ -0,0 +1,14 @@
1
+ //
2
+ // RCTMGLFillLayer.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/8/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLVectorLayer.h"
10
+ @import Mapbox;
11
+
12
+ @interface RCTMGLFillLayer : RCTMGLVectorLayer
13
+
14
+ @end
@@ -0,0 +1,33 @@
1
+ //
2
+ // RCTMGLFillLayer.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/8/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLFillLayer.h"
10
+ #import "RCTMGLStyle.h"
11
+ #import <React/RCTLog.h>
12
+
13
+ @implementation RCTMGLFillLayer
14
+
15
+ - (MGLStyleLayer*)makeLayer:(MGLStyle*)style
16
+ {
17
+ MGLSource *source = [self layerWithSourceIDInStyle:style];
18
+ if (source == nil) { return nil; }
19
+ MGLFillStyleLayer *layer = [[MGLFillStyleLayer alloc] initWithIdentifier:self.id source:source];
20
+ layer.sourceLayerIdentifier = self.sourceLayerID;
21
+ return layer;
22
+ }
23
+
24
+ - (void)addStyles
25
+ {
26
+ RCTMGLStyle *style = [[RCTMGLStyle alloc] initWithMGLStyle:self.style];
27
+ style.bridge = self.bridge;
28
+ [style fillLayer:(MGLFillStyleLayer*)self.styleLayer withReactStyle:self.reactStyle isValid:^{
29
+ return [self isAddedToMap];
30
+ }];
31
+ }
32
+
33
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // RCTMGLFillLayerManager.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/8/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "ViewManager.h"
10
+
11
+ @interface RCTMGLFillLayerManager : ViewManager
12
+
13
+ @end
@@ -0,0 +1,37 @@
1
+ //
2
+ // RCTMGLFillLayerManager.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 9/8/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLFillLayerManager.h"
10
+ #import "RCTMGLFillLayer.h"
11
+
12
+ @implementation RCTMGLFillLayerManager
13
+
14
+ RCT_EXPORT_MODULE();
15
+
16
+ RCT_EXPORT_VIEW_PROPERTY(sourceLayerID, NSString);
17
+
18
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString);
19
+ RCT_EXPORT_VIEW_PROPERTY(sourceID, NSString);
20
+ RCT_EXPORT_VIEW_PROPERTY(filter, NSArray);
21
+
22
+ RCT_EXPORT_VIEW_PROPERTY(aboveLayerID, NSString);
23
+ RCT_EXPORT_VIEW_PROPERTY(belowLayerID, NSString);
24
+ RCT_EXPORT_VIEW_PROPERTY(layerIndex, NSNumber);
25
+ RCT_EXPORT_VIEW_PROPERTY(reactStyle, NSDictionary);
26
+
27
+ RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber);
28
+ RCT_EXPORT_VIEW_PROPERTY(minZoomLevel, NSNumber);
29
+
30
+ - (UIView*)view
31
+ {
32
+ RCTMGLFillLayer *layer = [RCTMGLFillLayer new];
33
+ layer.bridge = self.bridge;
34
+ return layer;
35
+ }
36
+
37
+ @end
@@ -0,0 +1,12 @@
1
+ //
2
+ // RCTMGLHeatmapLayer.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Dheeraj Yalamanchili on 6/8/19.
6
+ //
7
+
8
+ #import "RCTMGLVectorLayer.h"
9
+
10
+ @interface RCTMGLHeatmapLayer : RCTMGLVectorLayer
11
+
12
+ @end
@@ -0,0 +1,30 @@
1
+ //
2
+ // RCTMGLHeatmapLayer.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Dheeraj Yalamanchili on 6/8/2019
6
+
7
+ #import "RCTMGLHeatmapLayer.h"
8
+ #import "RCTMGLStyle.h"
9
+
10
+ @implementation RCTMGLHeatmapLayer
11
+
12
+ - (MGLHeatmapStyleLayer*)makeLayer:(MGLStyle*)style
13
+ {
14
+ MGLSource *source = [self layerWithSourceIDInStyle:style];
15
+ if (source == nil) { return nil; }
16
+ MGLHeatmapStyleLayer *layer = [[MGLHeatmapStyleLayer alloc] initWithIdentifier:self.id source:source];
17
+ layer.sourceLayerIdentifier = self.sourceLayerID;
18
+ return layer;
19
+ }
20
+
21
+ - (void)addStyles
22
+ {
23
+ RCTMGLStyle *style = [[RCTMGLStyle alloc] initWithMGLStyle:self.style];
24
+ style.bridge = self.bridge;
25
+ [style heatmapLayer:(MGLHeatmapStyleLayer *)self.styleLayer withReactStyle:self.reactStyle isValid:^{
26
+ return [self isAddedToMap];
27
+ }];
28
+ }
29
+
30
+ @end
@@ -0,0 +1,12 @@
1
+ //
2
+ // RCTMGLHeatmapLayerManager.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Dheeraj Yalamanchili on 6/8/19.
6
+ //
7
+
8
+ #import "ViewManager.h"
9
+
10
+ @interface RCTMGLHeatmapLayerManager : ViewManager
11
+
12
+ @end
@@ -0,0 +1,38 @@
1
+ //
2
+ // RCTMGLHeatmapLayerManager.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Dheeraj Yalamanchili on 6/8/19.
6
+ //
7
+
8
+ #import "RCTMGLHeatmapLayerManager.h"
9
+ #import "RCTMGLHeatmapLayer.h"
10
+
11
+ @implementation RCTMGLHeatmapLayerManager
12
+
13
+ RCT_EXPORT_MODULE()
14
+
15
+ // Heatmap layer props
16
+ RCT_EXPORT_VIEW_PROPERTY(sourceLayerID, NSString);
17
+
18
+ // standard layer props
19
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString);
20
+ RCT_EXPORT_VIEW_PROPERTY(sourceID, NSString);
21
+ RCT_EXPORT_VIEW_PROPERTY(filter, NSArray);
22
+
23
+ RCT_EXPORT_VIEW_PROPERTY(aboveLayerID, NSString);
24
+ RCT_EXPORT_VIEW_PROPERTY(belowLayerID, NSString);
25
+ RCT_EXPORT_VIEW_PROPERTY(layerIndex, NSNumber);
26
+ RCT_EXPORT_VIEW_PROPERTY(reactStyle, NSDictionary);
27
+
28
+ RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, NSNumber);
29
+ RCT_EXPORT_VIEW_PROPERTY(minZoomLevel, NSNumber);
30
+
31
+ - (UIView*)view
32
+ {
33
+ RCTMGLHeatmapLayer *layer = [RCTMGLHeatmapLayer new];
34
+ layer.bridge = self.bridge;
35
+ return layer;
36
+ }
37
+
38
+ @end
@@ -0,0 +1,19 @@
1
+ //
2
+ // RCTMGLImageQueue.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 10/23/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import <React/RCTImageLoader.h>
11
+
12
+ @interface RCTMGLImageQueue : NSObject
13
+
14
+ + (instancetype)sharedInstance;
15
+
16
+ - (void)cancelAllOperations;
17
+ - (void)addImage:(NSString *)imageURL scale:(double)scale bridge:(RCTBridge *)bridge completionHandler:(RCTImageLoaderCompletionBlock)handler;
18
+
19
+ @end
@@ -0,0 +1,57 @@
1
+ //
2
+ // RCTMGLImageQueue.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 10/23/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLImageQueue.h"
10
+ #import "RCTMGLImageQueueOperation.h"
11
+ #import "RCTMGLUtils.h"
12
+
13
+ @implementation RCTMGLImageQueue
14
+ {
15
+ NSOperationQueue *imageQueue;
16
+ }
17
+
18
+ - (id)init
19
+ {
20
+ if (self = [super init]) {
21
+ imageQueue = [[NSOperationQueue alloc] init];
22
+ imageQueue.name = @"com.mapbox.rctmgl.DownloadImageQueue";
23
+ }
24
+ return self;
25
+ }
26
+
27
+ - (void)dealloc
28
+ {
29
+ [self cancelAllOperations];
30
+ }
31
+
32
+ + (instancetype)sharedInstance
33
+ {
34
+ static RCTMGLImageQueue *sharedInstance = nil;
35
+ static dispatch_once_t onceToken;
36
+ dispatch_once(&onceToken, ^{
37
+ sharedInstance = [[RCTMGLImageQueue alloc] init];
38
+ });
39
+ return sharedInstance;
40
+ }
41
+
42
+ - (void)cancelAllOperations
43
+ {
44
+ [imageQueue cancelAllOperations];
45
+ }
46
+
47
+ - (void)addImage:(NSString *)imageURL scale:(double)scale bridge:(RCTBridge *)bridge completionHandler:(RCTImageLoaderCompletionBlock)handler
48
+ {
49
+ RCTMGLImageQueueOperation *operation = [[RCTMGLImageQueueOperation alloc] init];
50
+ operation.bridge = bridge;
51
+ operation.urlRequest = [RCTConvert NSURLRequest:imageURL];
52
+ operation.completionHandler = handler;
53
+ operation.scale = scale;
54
+ [imageQueue addOperation:operation];
55
+ }
56
+
57
+ @end
@@ -0,0 +1,17 @@
1
+ //
2
+ // RCTMGLImageQueueOperation.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 2/28/18.
6
+ // Copyright © 2018 Mapbox Inc. All rights reserved.
7
+ //
8
+ #import <React/RCTImageLoader.h>
9
+
10
+ @interface RCTMGLImageQueueOperation : NSBlockOperation
11
+
12
+ @property (nonatomic, weak) RCTBridge *bridge;
13
+ @property (nonatomic, copy) RCTImageLoaderCompletionBlock completionHandler;
14
+ @property (nonatomic, copy) NSURLRequest *urlRequest;
15
+ @property (nonatomic) double scale;
16
+
17
+ @end
@@ -0,0 +1,138 @@
1
+ //
2
+ // RCTMGLImageQueueOperation.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 2/28/18.
6
+ // Copyright © 2018 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLImageQueueOperation.h"
10
+
11
+
12
+ typedef NS_ENUM(NSInteger, RCTMGLImageQueueOperationState) {
13
+ IOState_Initial,
14
+ IOState_CancelledDoNotExecute,
15
+ IOState_Executing, // cancellationBlock is set
16
+ IOState_Finished,
17
+
18
+ /* Not sates, just selectors for only and except params */
19
+ IOState_Filter_None,
20
+ IOState_Filter_All,
21
+ };
22
+
23
+ @interface RCTMGLImageQueueOperation()
24
+ @property (nonatomic) RCTMGLImageQueueOperationState state;
25
+ @end
26
+
27
+ @implementation RCTMGLImageQueueOperation
28
+ {
29
+ RCTImageLoaderCancellationBlock _cancellationBlock;
30
+ BOOL _cancelled;
31
+ }
32
+
33
+ - (instancetype)init {
34
+ self = [super init];
35
+ if (self) {
36
+ _state = IOState_Initial;
37
+ _cancelled = false;
38
+ }
39
+ return self;
40
+ }
41
+
42
+ - (BOOL)isExecuting {
43
+ @synchronized (self) {
44
+ return self.state == IOState_Executing;
45
+ }
46
+ }
47
+
48
+ - (BOOL)isFinished {
49
+ @synchronized (self) {
50
+ return (self.state == IOState_Finished || self.state == IOState_CancelledDoNotExecute);
51
+ }
52
+ }
53
+
54
+ - (BOOL)isCancelled {
55
+ @synchronized (self) {
56
+ return self.state == IOState_CancelledDoNotExecute;
57
+ }
58
+ }
59
+
60
+ - (void)setCancellationBlock:(dispatch_block_t) block {
61
+ _cancellationBlock = block;
62
+ }
63
+
64
+ -(void)callCancellationBlock {
65
+ if (_cancellationBlock) {
66
+ _cancellationBlock();
67
+ }
68
+ }
69
+
70
+ - (RCTMGLImageQueueOperationState)setState:(RCTMGLImageQueueOperationState)newState only:(RCTMGLImageQueueOperationState)only except:(RCTMGLImageQueueOperationState) except
71
+ {
72
+ RCTMGLImageQueueOperationState prevState = IOState_Filter_None;
73
+ [self willChangeValueForKey:@"isExecuting"];
74
+ [self willChangeValueForKey:@"isFinished"];
75
+ [self willChangeValueForKey:@"isCancelled"];
76
+
77
+ @synchronized (self) {
78
+ BOOL allowed = YES;
79
+ prevState = self.state;
80
+ if (! (only == IOState_Filter_All || prevState == only)) {
81
+ allowed = NO;
82
+ }
83
+ if (prevState == except) {
84
+ allowed = NO;
85
+ }
86
+ if (allowed) {
87
+ self.state = newState;
88
+ }
89
+ }
90
+ [self didChangeValueForKey:@"isExecuting"];
91
+ [self didChangeValueForKey:@"isFinished"];
92
+ [self didChangeValueForKey:@"isCancelled"];
93
+ return prevState;
94
+ }
95
+
96
+ - (RCTMGLImageQueueOperationState)setState:(RCTMGLImageQueueOperationState)newState only:(RCTMGLImageQueueOperationState)only
97
+ {
98
+ return [self setState: newState only:only except:IOState_Filter_None];
99
+ }
100
+
101
+ - (RCTMGLImageQueueOperationState)setState:(RCTMGLImageQueueOperationState)newState except:(RCTMGLImageQueueOperationState)except
102
+ {
103
+ return [self setState: newState only:IOState_Filter_All except:except];
104
+ }
105
+
106
+ - (void)start
107
+ {
108
+ if (self.state == IOState_CancelledDoNotExecute) {
109
+ return;
110
+ }
111
+ __weak RCTMGLImageQueueOperation *weakSelf = self;
112
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
113
+ [weakSelf setCancellationBlock: [[weakSelf.bridge moduleForName:@"ImageLoader" lazilyLoadIfNecessary:YES]
114
+ loadImageWithURLRequest:weakSelf.urlRequest
115
+ size:CGSizeZero
116
+ scale:weakSelf.scale
117
+ clipped:YES
118
+ resizeMode:RCTResizeModeStretch
119
+ progressBlock:nil
120
+ partialLoadBlock:nil
121
+ completionBlock:^void (NSError *error, UIImage *image){
122
+ weakSelf.completionHandler(error, image);
123
+ [weakSelf setState:IOState_Finished except:IOState_Finished];
124
+ }]];
125
+ if ([weakSelf setState:IOState_Executing only:IOState_Initial] == IOState_CancelledDoNotExecute) {
126
+ [weakSelf callCancellationBlock];
127
+ }
128
+ });
129
+ }
130
+
131
+ - (void)cancel
132
+ {
133
+ if ([self setState:IOState_CancelledDoNotExecute except:IOState_Finished] == IOState_Executing) {
134
+ [self callCancellationBlock];
135
+ }
136
+ }
137
+
138
+ @end
@@ -0,0 +1,16 @@
1
+ //
2
+ // RCTMGLImageSource.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 11/29/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLSource.h"
10
+
11
+ @interface RCTMGLImageSource : RCTMGLSource
12
+
13
+ @property (nonatomic, copy) NSString *url;
14
+ @property (nonatomic, copy) NSArray<NSArray<NSNumber *> *> *coordinates;
15
+
16
+ @end
@@ -0,0 +1,60 @@
1
+ //
2
+ // RCTMGLImageSource.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 11/29/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLImageSource.h"
10
+ @import Mapbox;
11
+
12
+ @implementation RCTMGLImageSource
13
+
14
+ - (void)setUrl:(NSString *)url
15
+ {
16
+ _url = url;
17
+
18
+ if (self.source != nil) {
19
+ MGLImageSource *source = (MGLImageSource *)self.source;
20
+ source.URL = [NSURL URLWithString:_url];
21
+ }
22
+ }
23
+
24
+ - (void)setCoordinates:(NSArray<NSArray<NSNumber *> *> *)coordinates
25
+ {
26
+ _coordinates = coordinates;
27
+ if (self.source != nil) {
28
+ MGLImageSource *source = (MGLImageSource *)self.source;
29
+ source.coordinates = [self _makeCoordQuad];
30
+ }
31
+ }
32
+
33
+ - (nullable MGLSource *)makeSource
34
+ {
35
+ NSURL *myURL;
36
+
37
+ if ([[_url substringToIndex:4] isEqualToString:@"http"]) {
38
+ myURL = [NSURL URLWithString:_url];
39
+ }
40
+ else
41
+ {
42
+ //Default consider it file url path
43
+ myURL = [NSURL fileURLWithPath:_url];
44
+ }
45
+
46
+ return [[MGLImageSource alloc] initWithIdentifier:self.id
47
+ coordinateQuad:[self _makeCoordQuad]
48
+ URL:myURL];
49
+ }
50
+
51
+ - (MGLCoordinateQuad)_makeCoordQuad
52
+ {
53
+ CLLocationCoordinate2D topLeft = CLLocationCoordinate2DMake([self.coordinates[0][1] floatValue], [self.coordinates[0][0] floatValue]);
54
+ CLLocationCoordinate2D topRight = CLLocationCoordinate2DMake([self.coordinates[1][1] floatValue], [self.coordinates[1][0] floatValue]);
55
+ CLLocationCoordinate2D bottomRight = CLLocationCoordinate2DMake([self.coordinates[2][1] floatValue], [self.coordinates[2][0] floatValue]);
56
+ CLLocationCoordinate2D bottomLeft = CLLocationCoordinate2DMake([self.coordinates[3][1] floatValue], [self.coordinates[3][0] floatValue]);
57
+ return MGLCoordinateQuadMake(topLeft, bottomLeft, bottomRight, topRight);
58
+ }
59
+
60
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // RCTMGLImageSourceManager.h
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 11/29/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "ViewManager.h"
10
+
11
+ @interface RCTMGLImageSourceManager : ViewManager
12
+
13
+ @end
@@ -0,0 +1,25 @@
1
+ //
2
+ // RCTMGLImageSourceManager.m
3
+ // RCTMGL
4
+ //
5
+ // Created by Nick Italiano on 11/29/17.
6
+ // Copyright © 2017 Mapbox Inc. All rights reserved.
7
+ //
8
+
9
+ #import "RCTMGLImageSourceManager.h"
10
+ #import "RCTMGLImageSource.h"
11
+
12
+ @implementation RCTMGLImageSourceManager
13
+
14
+ RCT_EXPORT_MODULE()
15
+
16
+ RCT_EXPORT_VIEW_PROPERTY(id, NSString)
17
+ RCT_EXPORT_VIEW_PROPERTY(url, NSString)
18
+ RCT_EXPORT_VIEW_PROPERTY(coordinates, NSArray)
19
+
20
+ - (UIView*)view
21
+ {
22
+ return [RCTMGLImageSource new];
23
+ }
24
+
25
+ @end
@@ -0,0 +1,25 @@
1
+ #import <React/RCTBridge.h>
2
+ #import <React/RCTComponent.h>
3
+ #import <UIKit/UIKit.h>
4
+
5
+ @import Mapbox;
6
+
7
+ @class RCTMGLMapView;
8
+
9
+ @interface RCTMGLImages : UIView
10
+
11
+ @property (nonatomic, weak) RCTBridge *bridge;
12
+
13
+ @property (nonatomic, strong) RCTMGLMapView *map;
14
+
15
+ @property (nonatomic, strong) NSDictionary<NSString *, NSString *> *images;
16
+ @property (nonatomic, strong) NSArray<NSString *> *nativeImages;
17
+
18
+ @property (nonatomic, copy) RCTBubblingEventBlock onImageMissing;
19
+ @property (nonatomic, assign) BOOL hasOnImageMissing;
20
+
21
+ - (BOOL)addMissingImageToStyle:(NSString *)imageName;
22
+ - (void)sendImageMissingEvent:(NSString *)imageName;
23
+
24
+ @end
25
+