@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,374 @@
1
+ require('./autogenHelpers/globals');
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ const ejs = require('ejs');
7
+
8
+ const {execSync} = require('child_process');
9
+
10
+ const prettier = require('prettier');
11
+
12
+ const styleSpecJSON = require('../style-spec/v8.json');
13
+
14
+ const DocJSONBuilder = require('./autogenHelpers/DocJSONBuilder');
15
+ const MarkdownBuilder = require('./autogenHelpers/MarkdownBuilder');
16
+
17
+ function readIosVersion() {
18
+ const podspecPath = path.join(
19
+ __dirname,
20
+ '..',
21
+ 'maplibre-react-native.podspec',
22
+ );
23
+ const lines = fs.readFileSync(podspecPath, 'utf8').split('\n');
24
+ const maplibreLineRegex = /^\s+version:\s*"(\d+\.\d+\.\d+)"$/;
25
+ const maplibreLine = lines.filter(i => maplibreLineRegex.exec(i))[0];
26
+ return `${maplibreLineRegex.exec(maplibreLine)[1]}.0`;
27
+ }
28
+
29
+ function readAndroidVersion() {
30
+ const buildGradlePath = path.join(
31
+ __dirname,
32
+ '..',
33
+ 'android',
34
+ 'rctmgl',
35
+ 'build.gradle',
36
+ );
37
+ const lines = fs.readFileSync(buildGradlePath, 'utf8').split('\n');
38
+ const maplibreLineRegex = /^\s+implementation\s+"org.maplibre.gl:android-sdk:(\d+\.\d+\.\d+)"$/;
39
+ const maplibreLine = lines.filter(i => maplibreLineRegex.exec(i))[0];
40
+ return maplibreLineRegex.exec(maplibreLine)[1];
41
+ }
42
+
43
+ if (!styleSpecJSON) {
44
+ console.log(
45
+ 'Could not find style spec, try running "yarn run fetch:style:spec"',
46
+ );
47
+ process.exit(1);
48
+ }
49
+
50
+ const layers = [];
51
+ const androidVersion = readAndroidVersion();
52
+ const iosVersion = readIosVersion();
53
+
54
+ const TMPL_PATH = path.join(__dirname, 'templates');
55
+
56
+ const outputToExample = false;
57
+ const OUTPUT_EXAMPLE_PREFIX = [
58
+ '..',
59
+ 'example',
60
+ 'node_modules',
61
+ '@maplibre',
62
+ 'maplibre-react-native',
63
+ ];
64
+ const OUTPUT_PREFIX = outputToExample ? OUTPUT_EXAMPLE_PREFIX : ['..'];
65
+
66
+ const IOS_OUTPUT_PATH = path.join(__dirname, ...OUTPUT_PREFIX, 'ios', 'RCTMGL');
67
+ const ANDROID_OUTPUT_PATH = path.join(
68
+ __dirname,
69
+ ...OUTPUT_PREFIX,
70
+ 'android',
71
+ 'rctmgl',
72
+ 'src',
73
+ 'main',
74
+ 'java',
75
+ 'com',
76
+ 'mapbox',
77
+ 'rctmgl',
78
+ 'components',
79
+ 'styles',
80
+ );
81
+ const JS_OUTPUT_PATH = path.join(
82
+ __dirname,
83
+ ...OUTPUT_PREFIX,
84
+ 'javascript',
85
+ 'utils',
86
+ );
87
+
88
+ getSupportedLayers(Object.keys(styleSpecJSON.layer.type.values)).forEach(
89
+ layerName => {
90
+ layers.push({
91
+ name: layerName,
92
+ properties: getPropertiesForLayer(layerName),
93
+ });
94
+ },
95
+ );
96
+
97
+ // add light as a layer
98
+ layers.push({name: 'light', properties: getPropertiesForLight()});
99
+
100
+ function getPropertiesForLight() {
101
+ const lightAttributes = styleSpecJSON.light;
102
+
103
+ return getSupportedProperties(lightAttributes).map(attrName => {
104
+ return Object.assign({}, buildProperties(lightAttributes, attrName), {
105
+ allowedFunctionTypes: [],
106
+ });
107
+ });
108
+ }
109
+
110
+ function getPropertiesForLayer(layerName) {
111
+ const paintAttributes = styleSpecJSON[`paint_${layerName}`];
112
+ const layoutAttributes = styleSpecJSON[`layout_${layerName}`];
113
+
114
+ const paintProps = getSupportedProperties(paintAttributes).map(attrName => {
115
+ const prop = buildProperties(paintAttributes, attrName);
116
+
117
+ // overrides
118
+ if (['line-width'].includes(attrName)) {
119
+ prop.allowedFunctionTypes = ['camera'];
120
+ }
121
+
122
+ return prop;
123
+ });
124
+
125
+ const layoutProps = getSupportedProperties(layoutAttributes).map(attrName => {
126
+ const prop = buildProperties(layoutAttributes, attrName);
127
+
128
+ // overrides
129
+ if (
130
+ [
131
+ 'line-join',
132
+ 'text-max-width',
133
+ 'text-letter-spacing',
134
+ 'text-anchor',
135
+ 'text-justify',
136
+ 'text-font',
137
+ ].includes(attrName)
138
+ ) {
139
+ prop.allowedFunctionTypes = ['camera'];
140
+ }
141
+
142
+ return prop;
143
+ });
144
+
145
+ return layoutProps.concat(paintProps);
146
+ }
147
+
148
+ function getSupportedLayers(layerNames) {
149
+ const layerMap = styleSpecJSON.layer.type.values;
150
+
151
+ const supportedLayers = [];
152
+ for (const layerName of layerNames) {
153
+ const layer = layerMap[layerName];
154
+ const support = getAttributeSupport(layer['sdk-support']);
155
+
156
+ if (support.basic.android && support.basic.ios) {
157
+ supportedLayers.push(layerName);
158
+ }
159
+ }
160
+
161
+ return supportedLayers;
162
+ }
163
+
164
+ function getSupportedProperties(attributes) {
165
+ return Object.keys(attributes).filter(attrName =>
166
+ isAttrSupported(attributes[attrName]),
167
+ );
168
+ }
169
+
170
+ function buildProperties(attributes, attrName) {
171
+ return {
172
+ name: camelCase(attrName),
173
+ doc: {
174
+ default: attributes[attrName].default,
175
+ minimum: attributes[attrName].minimum,
176
+ maximum: attributes[attrName].maximum,
177
+ units: attributes[attrName].units,
178
+ description: formatDescription(attributes[attrName].doc),
179
+ requires: getRequires(attributes[attrName].requires),
180
+ disabledBy: getDisables(attributes[attrName].requires),
181
+ values: attributes[attrName].values,
182
+ },
183
+ type: attributes[attrName].type,
184
+ value: attributes[attrName].value,
185
+ image: isImage(attrName),
186
+ translate: isTranslate(attrName),
187
+ transition: attributes[attrName].transition,
188
+ expression: attributes[attrName].expression,
189
+ expressionSupported:
190
+ Object.keys(attributes[attrName].expression || {}).length > 0,
191
+ support: getAttributeSupport(attributes[attrName]['sdk-support']),
192
+ allowedFunctionTypes: getAllowedFunctionTypes(attributes[attrName]),
193
+ };
194
+ }
195
+
196
+ function formatDescription(description) {
197
+ const words = description.split(' ');
198
+
199
+ for (let i = 0; i < words.length; i++) {
200
+ const word = words[i];
201
+
202
+ if (word.includes('-')) {
203
+ words[i] = camelCase(word);
204
+ }
205
+ }
206
+
207
+ return words.join(' ');
208
+ }
209
+
210
+ function getRequires(requiredItems) {
211
+ const items = [];
212
+
213
+ if (!requiredItems) {
214
+ return items;
215
+ }
216
+
217
+ for (const item of requiredItems) {
218
+ if (typeof item === 'string') {
219
+ items.push(camelCase(item, '-'));
220
+ }
221
+ }
222
+
223
+ return items;
224
+ }
225
+
226
+ function getDisables(disabledItems) {
227
+ const items = [];
228
+
229
+ if (!disabledItems) {
230
+ return items;
231
+ }
232
+
233
+ for (const item of disabledItems) {
234
+ if (item['!']) {
235
+ items.push(camelCase(item['!'], '-'));
236
+ }
237
+ }
238
+
239
+ return items;
240
+ }
241
+
242
+ function isImage(attrName) {
243
+ return (
244
+ attrName.toLowerCase().indexOf('pattern') !== -1 ||
245
+ attrName.toLowerCase().indexOf('image') !== -1
246
+ );
247
+ }
248
+
249
+ function isTranslate(attrName) {
250
+ return attrName.toLowerCase().indexOf('translate') !== -1;
251
+ }
252
+
253
+ function isAttrSupported(attr) {
254
+ const support = getAttributeSupport(attr['sdk-support']);
255
+ return support.basic.android && support.basic.ios;
256
+ }
257
+
258
+ function getAttributeSupport(sdkSupport) {
259
+ const support = {
260
+ basic: {android: false, ios: false},
261
+ data: {android: false, ios: false},
262
+ };
263
+
264
+ const basicSupport = sdkSupport && sdkSupport['basic functionality'];
265
+ if (basicSupport && basicSupport.android) {
266
+ support.basic.android = isVersionGTE(androidVersion, basicSupport.android);
267
+ }
268
+ if (basicSupport && basicSupport.ios) {
269
+ support.basic.ios = isVersionGTE(iosVersion, basicSupport.ios);
270
+ }
271
+
272
+ const dataDrivenSupport = sdkSupport && sdkSupport['data-driven styling'];
273
+ if (dataDrivenSupport && dataDrivenSupport.android) {
274
+ support.data.android = isVersionGTE(
275
+ androidVersion,
276
+ dataDrivenSupport.android,
277
+ );
278
+ }
279
+ if (dataDrivenSupport && dataDrivenSupport.ios) {
280
+ support.data.ios = isVersionGTE(iosVersion, dataDrivenSupport.ios);
281
+ }
282
+
283
+ if (support.data.ios !== true || support.data.android !== true) {
284
+ support.data.ios = false;
285
+ support.data.android = false;
286
+ }
287
+
288
+ return support;
289
+ }
290
+
291
+ function isVersionGTE(version, otherVersion) {
292
+ const v = +version
293
+ .split('.')
294
+ .map(i => String(i).padStart(3, '0'))
295
+ .join('');
296
+ const ov = +otherVersion
297
+ .split('.')
298
+ .map(i => String(i).padStart(3, '0'))
299
+ .join('');
300
+ return v >= ov;
301
+ }
302
+
303
+ function getAllowedFunctionTypes(paintAttr) {
304
+ const allowedFunctionTypes = [];
305
+
306
+ if (paintAttr['zoom-function']) {
307
+ allowedFunctionTypes.push('camera');
308
+ }
309
+
310
+ if (paintAttr['property-function']) {
311
+ allowedFunctionTypes.push('source');
312
+ allowedFunctionTypes.push('composite');
313
+ }
314
+
315
+ return allowedFunctionTypes;
316
+ }
317
+
318
+ async function generate() {
319
+ const templateMappings = [
320
+ {
321
+ input: path.join(TMPL_PATH, 'RCTMGLStyle.h.ejs'),
322
+ output: path.join(IOS_OUTPUT_PATH, 'RCTMGLStyle.h'),
323
+ },
324
+ {
325
+ input: path.join(TMPL_PATH, 'index.d.ts.ejs'),
326
+ output: path.join(IOS_OUTPUT_PATH, 'index.d.ts'),
327
+ },
328
+ {
329
+ input: path.join(TMPL_PATH, 'RCTMGLStyle.m.ejs'),
330
+ output: path.join(IOS_OUTPUT_PATH, 'RCTMGLStyle.m'),
331
+ },
332
+ {
333
+ input: path.join(TMPL_PATH, 'RCTMGLStyleFactory.java.ejs'),
334
+ output: path.join(ANDROID_OUTPUT_PATH, 'RCTMGLStyleFactory.java'),
335
+ },
336
+ {
337
+ input: path.join(TMPL_PATH, 'styleMap.js.ejs'),
338
+ output: path.join(JS_OUTPUT_PATH, 'styleMap.js'),
339
+ },
340
+ ];
341
+ const outputPaths = templateMappings.map(m => m.output);
342
+
343
+ // autogenerate code
344
+ templateMappings.forEach(({input, output}) => {
345
+ const filename = output.split('/').pop();
346
+ console.log(`Generating ${filename}`);
347
+ const tmpl = ejs.compile(fs.readFileSync(input, 'utf8'), {strict: true});
348
+ let results = tmpl({layers});
349
+ if (filename.endsWith('ts')) {
350
+ results = prettier.format(results, {filepath: filename});
351
+ }
352
+ fs.writeFileSync(output, results);
353
+ });
354
+
355
+ // autogenerate docs
356
+ const docBuilder = new DocJSONBuilder(layers);
357
+ const markdownBuilder = new MarkdownBuilder();
358
+ await docBuilder.generate();
359
+ await markdownBuilder.generate();
360
+
361
+ // Check if any generated files changed
362
+ try {
363
+ execSync(`git diff --exit-code docs/ ${outputPaths.join(' ')}`);
364
+ } catch (error) {
365
+ console.error(
366
+ '\n\nThere are unstaged changes in the generated code. ' +
367
+ 'Please add them to your commit.\n' +
368
+ 'If you would really like to exclude them, run "git commit -n" to skip.\n\n',
369
+ );
370
+ process.exit(1);
371
+ }
372
+ }
373
+
374
+ generate();
@@ -0,0 +1,15 @@
1
+ #!/bin/sh
2
+
3
+ echo "Downloading MapboxGL Style Spec"
4
+ cd style-spec/
5
+
6
+ FILENAME=v8.json
7
+
8
+ if [ -e "./${FILENAME}" ]; then
9
+ echo "Removing old style spec ${FILENAME}"
10
+ rm "./${FILENAME}"
11
+ fi
12
+
13
+ echo "Fetching new style spec ${FILENAME}"
14
+ curl -sS https://raw.githubusercontent.com/mapbox/mapbox-gl-js/master/src/style-spec/reference/${FILENAME} -o ${FILENAME}
15
+ cd ..
@@ -0,0 +1,33 @@
1
+ <%
2
+ const layers = locals.layers;
3
+ -%>
4
+ // DO NOT MODIFY
5
+ // THIS FILE IS AUTOGENERATED
6
+
7
+ #import "RCTMGLStyle.h"
8
+ #import "RCTMGLStyleValue.h"
9
+ #import <React/RCTBridge.h>
10
+
11
+ @import Mapbox;
12
+
13
+ @interface RCTMGLStyle : NSObject
14
+
15
+ @property (nonatomic, weak) RCTBridge *bridge;
16
+ @property (nonatomic, strong) MGLStyle *style;
17
+
18
+ - (id)initWithMGLStyle:(MGLStyle*)mglStyle;
19
+
20
+ <%_ for (const layer of layers) { _%>
21
+ - (void)<%- setLayerMethodName(layer, 'ios') -%>:(<%- getLayerType(layer, 'ios') -%> *)layer withReactStyle:(NSDictionary *)reactStyle isValid:(BOOL (^)(void)) isValid;
22
+ <%_ } _%>
23
+
24
+ <%_ for (const layer of layers) { _%>
25
+ <%_ for (const prop of layer.properties) { _%>
26
+ - (void)set<%- iosPropMethodName(layer, pascelCase(prop.name)) -%>:(<%- getLayerType(layer, 'ios') -%> *)layer withReactStyleValue:(RCTMGLStyleValue *)styleValue;
27
+ <%_ if (prop.transition) { _%>
28
+ - (void)set<%- iosPropMethodName(layer, pascelCase(prop.name)) -%>Transition:(<%- getLayerType(layer, 'ios') -%> *)layer withReactStyleValue:(RCTMGLStyleValue *)styleValue;
29
+ <%_ } _%>
30
+ <%_ } _%>
31
+ <% } %>
32
+
33
+ @end
@@ -0,0 +1,97 @@
1
+ <%
2
+ const layers = locals.layers;
3
+ -%>
4
+ // DO NOT MODIFY
5
+ // THIS FILE IS AUTOGENERATED
6
+
7
+ #import "RCTMGLStyle.h"
8
+ #import "RCTMGLUtils.h"
9
+
10
+ @implementation RCTMGLStyle
11
+
12
+ - (id)initWithMGLStyle:(MGLStyle*)mglStyle
13
+ {
14
+ if (self = [super init]) {
15
+ _style = mglStyle;
16
+ }
17
+ return self;
18
+ }
19
+
20
+ <% for (const layer of layers) { %>
21
+ - (void)<%- setLayerMethodName(layer, 'ios') -%>:(<%- getLayerType(layer, 'ios') -%> *)layer withReactStyle:(NSDictionary *)reactStyle isValid:(BOOL (^)(void)) isValid
22
+ {
23
+ if (![self _hasReactStyle:reactStyle]) {
24
+ // TODO throw exception
25
+ return;
26
+ }
27
+
28
+ NSArray<NSString*> *styleProps = [reactStyle allKeys];
29
+ for (NSString *prop in styleProps) {
30
+ if ([prop isEqualToString:@"__MAPBOX_STYLESHEET__"]) {
31
+ continue;
32
+ }
33
+
34
+ RCTMGLStyleValue *styleValue = [RCTMGLStyleValue make:reactStyle[prop]];
35
+
36
+ <% for (let i = 0; i < layer.properties.length; i++) { -%>
37
+ <%- ifOrElseIf(i) -%> ([prop isEqualToString:@"<%= layer.properties[i].name %>"]) {
38
+ <%_ if (layer.properties[i].image) { _%>
39
+ if (![styleValue shouldAddImage]) {
40
+ [self set<%- iosPropMethodName(layer, pascelCase(layer.properties[i].name)) -%>:layer withReactStyleValue:styleValue];
41
+ } else {
42
+ NSString *imageURI = [styleValue getImageURI];
43
+
44
+ [RCTMGLUtils fetchImage:_bridge url:imageURI scale:[styleValue getImageScale] callback:^(NSError *error, UIImage *image) {
45
+ if (image != nil) {
46
+ dispatch_async(dispatch_get_main_queue(), ^{
47
+ if (isValid()) {
48
+ [self->_style setImage:image forName:imageURI];
49
+ [self set<%- iosPropMethodName(layer, pascelCase(layer.properties[i].name)) -%>:layer withReactStyleValue:styleValue];
50
+ }
51
+ });
52
+ }
53
+ }];
54
+ }
55
+ <%_ } else { _%>
56
+ [self set<%- iosPropMethodName(layer, pascelCase(layer.properties[i].name)) -%>:layer withReactStyleValue:styleValue];
57
+ <%_ } _%>
58
+ <%_ if (layer.properties[i].transition) { _%>
59
+ } else if ([prop isEqualToString:@"<%= layer.properties[i].name %>Transition"]) {
60
+ [self set<%- iosPropMethodName(layer, pascelCase(layer.properties[i].name)) -%>Transition:layer withReactStyleValue:styleValue];
61
+ <%_ } _%>
62
+ <% } -%>
63
+ } else {
64
+ // TODO throw exception
65
+ }
66
+ }
67
+ }
68
+ <% } %>
69
+
70
+ <% for (const layer of layers) {%>
71
+ <% for (const prop of layer.properties) {%>
72
+ - (void)set<%- iosPropMethodName(layer, pascelCase(prop.name)) -%>:(<%- getLayerType(layer, 'ios') -%> *)layer withReactStyleValue:(RCTMGLStyleValue *)styleValue
73
+ {
74
+ <%_ if (layer.name === 'light' && prop.name === 'position') { _%>
75
+ layer.position = [styleValue getSphericalPosition];
76
+ <%_ } else if (prop.name === 'visibility') { _%>
77
+ layer.visible = [styleValue isVisible];
78
+ <%_ } else { _%>
79
+ layer.<%- iosPropName(prop.name) -%> = styleValue.mglStyleValue;
80
+ <%_ } _%>
81
+ }
82
+ <%_ if (prop.transition) { _%>
83
+
84
+ - (void)set<%- iosPropMethodName(layer, pascelCase(prop.name)) -%>Transition:(<%- getLayerType(layer, 'ios') -%> *)layer withReactStyleValue:(RCTMGLStyleValue *)styleValue
85
+ {
86
+ layer.<%- iosPropName(prop.name) -%>Transition = [styleValue getTransition];
87
+ }
88
+ <%_ } _%>
89
+ <% } %>
90
+ <% } %>
91
+
92
+ - (BOOL)_hasReactStyle:(NSDictionary *)reactStyle
93
+ {
94
+ return reactStyle != nil && reactStyle.allKeys.count > 0;
95
+ }
96
+
97
+ @end
@@ -0,0 +1,107 @@
1
+ <%
2
+ const layers = locals.layers;
3
+ -%>
4
+ // DO NOT MODIFY
5
+ // THIS FILE IS AUTOGENERATED
6
+
7
+ package com.mapbox.rctmgl.components.styles;
8
+
9
+ import com.mapbox.mapboxsdk.style.layers.BackgroundLayer;
10
+ import com.mapbox.mapboxsdk.style.layers.CircleLayer;
11
+ import com.mapbox.mapboxsdk.style.layers.FillExtrusionLayer;
12
+ import com.mapbox.mapboxsdk.style.layers.FillLayer;
13
+ import com.mapbox.mapboxsdk.style.layers.LineLayer;
14
+ import com.mapbox.mapboxsdk.style.layers.PropertyFactory;
15
+ import com.mapbox.mapboxsdk.style.layers.PropertyValue;
16
+ import com.mapbox.mapboxsdk.style.layers.RasterLayer;
17
+ import com.mapbox.mapboxsdk.style.layers.SymbolLayer;
18
+ import com.mapbox.mapboxsdk.style.layers.HeatmapLayer;
19
+ import com.mapbox.mapboxsdk.style.layers.HillshadeLayer;
20
+ import com.mapbox.mapboxsdk.style.layers.TransitionOptions;
21
+ import com.mapbox.mapboxsdk.style.light.Light;
22
+ import com.mapbox.mapboxsdk.style.light.Position;
23
+ import com.mapbox.rctmgl.utils.DownloadMapImageTask;
24
+
25
+ import java.util.List;
26
+
27
+ public class RCTMGLStyleFactory {
28
+ public static final String VALUE_KEY = "value";
29
+ public static final String SHOULD_ADD_IMAGE_KEY = "shouldAddImage";
30
+
31
+ <%_ for (const layer of layers) { _%>
32
+ public static void <%- setLayerMethodName(layer) -%>(final <%- getLayerType(layer, 'android') -%> layer, RCTMGLStyle style) {
33
+ List<String> styleKeys = style.getAllStyleKeys();
34
+
35
+ if (styleKeys.size() == 0) {
36
+ return;
37
+ }
38
+
39
+ for (String styleKey : styleKeys) {
40
+ final RCTMGLStyleValue styleValue = style.getStyleValueForKey(styleKey);
41
+
42
+ switch (styleKey) {
43
+ <%_ for (const prop of layer.properties) { _%>
44
+ case "<%= prop.name %>":
45
+ <%_ if (prop.image) { _%>
46
+ style.addImage(styleValue, new DownloadMapImageTask.OnAllImagesLoaded() {
47
+ @Override
48
+ public void onAllImagesLoaded() {
49
+ RCTMGLStyleFactory.set<%- pascelCase(prop.name) -%>(layer, styleValue);
50
+ }
51
+ });
52
+ <%_ } else { _%>
53
+ RCTMGLStyleFactory.set<%- pascelCase(prop.name) -%>(layer, styleValue);
54
+ <%_ } _%>
55
+ break;
56
+ <%_ if (prop.transition) { _%>
57
+ case "<%= prop.name %>Transition":
58
+ RCTMGLStyleFactory.set<%- pascelCase(prop.name) -%>Transition(layer, styleValue);
59
+ break;
60
+ <%_ } _%>
61
+ <%_ } _%>
62
+ }
63
+ }
64
+ }
65
+ <%_ } _%>
66
+
67
+ <%_ for (const layer of layers) { _%>
68
+ <%_ for (const prop of layer.properties) { _%>
69
+ public static void set<%- pascelCase(prop.name) -%>(<%- getLayerType(layer, 'android') -%> layer, RCTMGLStyleValue styleValue) {
70
+ <%_ if (layer.name === 'light' && prop.name === 'position') { _%>
71
+ Float[] values = styleValue.getFloatArray(VALUE_KEY);
72
+ layer.set<%- pascelCase(prop.name) -%>(Position.fromPosition(values[0], values[1], values[2]));
73
+ <%_ } else if (layer.name === 'light') { _%>
74
+ layer.set<%- pascelCase(prop.name) -%>(<%- androidGetConfigType(androidInputType(prop.type, prop.value), prop) -%>);
75
+ <%_ } else if (prop.name === 'visibility') { _%>
76
+ layer.setProperties(PropertyFactory.visibility(styleValue.getString(VALUE_KEY)));
77
+ <%_ } else if (prop.type === 'resolvedImage') { _%>
78
+ if (styleValue.isExpression()) {
79
+ if (styleValue.isImageStringValue()) {
80
+ layer.setProperties(PropertyFactory.<%= prop.name %>(styleValue.getImageStringValue()));
81
+ } else {
82
+ layer.setProperties(PropertyFactory.<%= prop.name %>(styleValue.getExpression()));
83
+ }
84
+ } else {
85
+ layer.setProperties(PropertyFactory.<%= prop.name %>(<%- androidGetConfigType(androidInputType(prop.type, prop.value), prop) -%>));
86
+ }
87
+ <%_ } else { _%>
88
+ if (styleValue.isExpression()) {
89
+ layer.setProperties(PropertyFactory.<%= prop.name %>(styleValue.getExpression()));
90
+ } else {
91
+ layer.setProperties(PropertyFactory.<%= prop.name %>(<%- androidGetConfigType(androidInputType(prop.type, prop.value), prop) -%>));
92
+ }
93
+ <%_ } _%>
94
+ }
95
+
96
+ <%_ if (prop.transition) { %>
97
+ public static void set<%- pascelCase(prop.name) -%>Transition(<%- getLayerType(layer, 'android') -%> layer, RCTMGLStyleValue styleValue) {
98
+ TransitionOptions transition = styleValue.getTransition();
99
+ if (transition != null) {
100
+ layer.set<%- pascelCase(prop.name) -%>Transition(transition);
101
+ }
102
+ }
103
+
104
+ <%_ } _%>
105
+ <%_ } _%>
106
+ <%_ } _%>
107
+ }