@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.
- package/.eslintignore +3 -0
- package/.eslintrc.js +158 -0
- package/.gitattributes +1 -0
- package/.nvmrc +1 -0
- package/.prettierrc.js +7 -0
- package/.sonarcloud.properties +15 -0
- package/CHANGELOG.md +367 -0
- package/CODE_OF_CONDUCT.md +2 -0
- package/CONTRIBUTING.md +34 -0
- package/LICENSE.md +9 -0
- package/README.md +224 -0
- package/RELEASE.md +30 -0
- package/android/build.gradle +34 -0
- package/android/install.md +16 -0
- package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +2 -0
- package/android/rctmgl/build.gradle +61 -0
- package/android/rctmgl/proguard-rules.pro +25 -0
- package/android/rctmgl/src/main/AndroidManifest.xml +4 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +99 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEvent.java +35 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractEventEmitter.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/AbstractMapFeature.java +19 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerView.java +23 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/MarkerViewManager.java +67 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java +15 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +22 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java +112 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java +45 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java +360 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java +88 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraStop.java +249 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateItem.java +125 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/CameraUpdateQueue.java +73 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java +530 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java +101 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/constants/CameraMode.java +22 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java +234 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java +103 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/LocationComponentManager.java +149 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java +66 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java +35 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/LayerSourceInfo.java +59 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +16 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +31 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java +1527 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java +353 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/helpers/CameraChangeTracker.java +41 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java +83 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java +2242 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java +108 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java +212 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTLayer.java +287 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +27 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java +64 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java +77 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java +77 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java +79 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +27 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java +64 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java +55 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java +75 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java +65 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java +29 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java +81 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java +72 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java +45 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java +44 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java +302 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java +227 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java +97 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java +80 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java +64 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java +84 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTSource.java +244 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AbstractEvent.java +66 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/AndroidCallbackEvent.java +38 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/EventEmitter.java +45 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/FeatureClickEvent.java +79 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/IEvent.java +18 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/ImageMissingEvent.java +42 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/LocationEvent.java +100 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapChangeEvent.java +47 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapClickEvent.java +51 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/MapUserTrackingModeEvent.java +36 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/OfflineEvent.java +29 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationClickEvent.java +46 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/PointAnnotationDragEvent.java +51 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventKeys.java +39 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/events/constants/EventTypes.java +51 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/http/CustomHeadersInterceptor.java +38 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/LocationManager.java +168 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocation.java +63 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserLocationVerticalAlignment.java +11 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingMode.java +63 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/location/UserTrackingState.java +19 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java +158 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java +140 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java +348 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java +597 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java +139 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/BitmapUtils.java +129 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ConvertUtils.java +257 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/DownloadMapImageTask.java +159 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ExpressionParser.java +74 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoJSONUtils.java +209 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/GeoViewport.java +38 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ImageEntry.java +25 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/ResourceUtils.java +30 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SimpleEventCallback.java +30 -0
- package/android/rctmgl/src/main/java/com/mapbox/rctmgl/utils/SphericalMercator.java +69 -0
- package/android/rctmgl/src/main/res/drawable/empty.xml +5 -0
- package/android/rctmgl/src/main/res/drawable/empty_drawable.png +0 -0
- package/android/rctmgl/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
- package/android/rctmgl/src/main/res/layout/annotation.xml +17 -0
- package/android/rctmgl/src/main/res/values/strings.xml +3 -0
- package/android/settings.gradle +1 -0
- package/app.plugin.js +1 -0
- package/assets/heading.png +0 -0
- package/assets/heading@2x.png +0 -0
- package/assets/heading@3x.png +0 -0
- package/assets/indoor_building_map_android.png +0 -0
- package/assets/indoor_building_map_ios.png +0 -0
- package/assets/mapbox_logo.png +0 -0
- package/babel.config.js +9 -0
- package/docs/Annotation.md +39 -0
- package/docs/Annotations.md +17 -0
- package/docs/BackgroundLayer.md +166 -0
- package/docs/Callout.md +15 -0
- package/docs/Camera.md +162 -0
- package/docs/CircleLayer.md +453 -0
- package/docs/CustomHttpHeaders.md +87 -0
- package/docs/FillExtrusionLayer.md +327 -0
- package/docs/FillLayer.md +293 -0
- package/docs/GettingStarted.md +72 -0
- package/docs/HeadingIndicator.md +10 -0
- package/docs/HeatmapLayer.md +215 -0
- package/docs/ImageSource.md +12 -0
- package/docs/Images.md +12 -0
- package/docs/Light.md +159 -0
- package/docs/LineLayer.md +567 -0
- package/docs/Logger.md +23 -0
- package/docs/MapView.md +211 -0
- package/docs/MapboxGL.md +65 -0
- package/docs/MarkerView.md +14 -0
- package/docs/NativeUserLocation.md +11 -0
- package/docs/OfflineManager.md +246 -0
- package/docs/PointAnnotation.md +34 -0
- package/docs/RasterLayer.md +357 -0
- package/docs/RasterSource.md +17 -0
- package/docs/ShapeSource.md +100 -0
- package/docs/Style.md +10 -0
- package/docs/StyleSheet.md +430 -0
- package/docs/SymbolLayer.md +1658 -0
- package/docs/UserLocation.md +39 -0
- package/docs/VectorSource.md +48 -0
- package/docs/docs.json +6093 -0
- package/docs/snapshotManager.md +53 -0
- package/index.d.ts +953 -0
- package/ios/RCTMGL/CameraMode.h +18 -0
- package/ios/RCTMGL/CameraMode.m +18 -0
- package/ios/RCTMGL/CameraStop.h +26 -0
- package/ios/RCTMGL/CameraStop.m +83 -0
- package/ios/RCTMGL/CameraUpdateItem.h +18 -0
- package/ios/RCTMGL/CameraUpdateItem.m +178 -0
- package/ios/RCTMGL/CameraUpdateQueue.h +21 -0
- package/ios/RCTMGL/CameraUpdateQueue.m +74 -0
- package/ios/RCTMGL/FilterParser.h +14 -0
- package/ios/RCTMGL/FilterParser.m +22 -0
- package/ios/RCTMGL/MGLCustomHeaders.h +20 -0
- package/ios/RCTMGL/MGLCustomHeaders.m +98 -0
- package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +23 -0
- package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.m +474 -0
- package/ios/RCTMGL/MGLModule.h +13 -0
- package/ios/RCTMGL/MGLModule.m +269 -0
- package/ios/RCTMGL/MGLOfflineModule.h +19 -0
- package/ios/RCTMGL/MGLOfflineModule.m +516 -0
- package/ios/RCTMGL/MGLSnapshotModule.h +13 -0
- package/ios/RCTMGL/MGLSnapshotModule.m +80 -0
- package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.h +11 -0
- package/ios/RCTMGL/MGLUserLocationHeadingArrowLayer.m +57 -0
- package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +11 -0
- package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.m +102 -0
- package/ios/RCTMGL/MGLUserLocationHeadingIndicator.h +10 -0
- package/ios/RCTMGL/RCTConvert+Mapbox.h +16 -0
- package/ios/RCTMGL/RCTConvert+Mapbox.m +32 -0
- package/ios/RCTMGL/RCTMGL.h +13 -0
- package/ios/RCTMGL/RCTMGL.m +13 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayer.m +27 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLBackgroundLayerManager.m +35 -0
- package/ios/RCTMGL/RCTMGLCallout.h +15 -0
- package/ios/RCTMGL/RCTMGLCallout.m +74 -0
- package/ios/RCTMGL/RCTMGLCalloutManager.h +13 -0
- package/ios/RCTMGL/RCTMGLCalloutManager.m +21 -0
- package/ios/RCTMGL/RCTMGLCamera.h +39 -0
- package/ios/RCTMGL/RCTMGLCamera.m +258 -0
- package/ios/RCTMGL/RCTMGLCameraManager.h +13 -0
- package/ios/RCTMGL/RCTMGLCameraManager.m +52 -0
- package/ios/RCTMGL/RCTMGLCircleLayer.h +13 -0
- package/ios/RCTMGL/RCTMGLCircleLayer.m +34 -0
- package/ios/RCTMGL/RCTMGLCircleLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLCircleLayerManager.m +39 -0
- package/ios/RCTMGL/RCTMGLEvent.h +21 -0
- package/ios/RCTMGL/RCTMGLEvent.m +47 -0
- package/ios/RCTMGL/RCTMGLEventProtocol.h +16 -0
- package/ios/RCTMGL/RCTMGLEventTypes.h +50 -0
- package/ios/RCTMGL/RCTMGLEventTypes.m +49 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayer.m +32 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLFillExtrusionLayerManager.m +39 -0
- package/ios/RCTMGL/RCTMGLFillLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLFillLayer.m +33 -0
- package/ios/RCTMGL/RCTMGLFillLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLFillLayerManager.m +37 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayer.h +12 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayer.m +30 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +12 -0
- package/ios/RCTMGL/RCTMGLHeatmapLayerManager.m +38 -0
- package/ios/RCTMGL/RCTMGLImageQueue.h +19 -0
- package/ios/RCTMGL/RCTMGLImageQueue.m +57 -0
- package/ios/RCTMGL/RCTMGLImageQueueOperation.h +17 -0
- package/ios/RCTMGL/RCTMGLImageQueueOperation.m +138 -0
- package/ios/RCTMGL/RCTMGLImageSource.h +16 -0
- package/ios/RCTMGL/RCTMGLImageSource.m +60 -0
- package/ios/RCTMGL/RCTMGLImageSourceManager.h +13 -0
- package/ios/RCTMGL/RCTMGLImageSourceManager.m +25 -0
- package/ios/RCTMGL/RCTMGLImages.h +25 -0
- package/ios/RCTMGL/RCTMGLImages.m +126 -0
- package/ios/RCTMGL/RCTMGLImagesManager.h +5 -0
- package/ios/RCTMGL/RCTMGLImagesManager.m +21 -0
- package/ios/RCTMGL/RCTMGLLayer.h +52 -0
- package/ios/RCTMGL/RCTMGLLayer.m +236 -0
- package/ios/RCTMGL/RCTMGLLight.h +17 -0
- package/ios/RCTMGL/RCTMGLLight.m +46 -0
- package/ios/RCTMGL/RCTMGLLightManager.h +13 -0
- package/ios/RCTMGL/RCTMGLLightManager.m +23 -0
- package/ios/RCTMGL/RCTMGLLineLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLLineLayer.m +33 -0
- package/ios/RCTMGL/RCTMGLLineLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLLineLayerManager.m +40 -0
- package/ios/RCTMGL/RCTMGLLocation.h +19 -0
- package/ios/RCTMGL/RCTMGLLocation.m +32 -0
- package/ios/RCTMGL/RCTMGLLocationManager.h +30 -0
- package/ios/RCTMGL/RCTMGLLocationManager.m +180 -0
- package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +20 -0
- package/ios/RCTMGL/RCTMGLLocationModule.h +15 -0
- package/ios/RCTMGL/RCTMGLLocationModule.m +99 -0
- package/ios/RCTMGL/RCTMGLLogging.h +18 -0
- package/ios/RCTMGL/RCTMGLLogging.m +132 -0
- package/ios/RCTMGL/RCTMGLMapTouchEvent.h +25 -0
- package/ios/RCTMGL/RCTMGLMapTouchEvent.m +77 -0
- package/ios/RCTMGL/RCTMGLMapView.h +91 -0
- package/ios/RCTMGL/RCTMGLMapView.m +536 -0
- package/ios/RCTMGL/RCTMGLMapViewManager.h +17 -0
- package/ios/RCTMGL/RCTMGLMapViewManager.m +625 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocation.h +18 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocation.m +49 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +5 -0
- package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +25 -0
- package/ios/RCTMGL/RCTMGLPointAnnotation.h +41 -0
- package/ios/RCTMGL/RCTMGLPointAnnotation.m +251 -0
- package/ios/RCTMGL/RCTMGLPointAnnotationManager.h +13 -0
- package/ios/RCTMGL/RCTMGLPointAnnotationManager.m +36 -0
- package/ios/RCTMGL/RCTMGLRasterLayer.h +14 -0
- package/ios/RCTMGL/RCTMGLRasterLayer.m +30 -0
- package/ios/RCTMGL/RCTMGLRasterLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLRasterLayerManager.m +35 -0
- package/ios/RCTMGL/RCTMGLRasterSource.h +16 -0
- package/ios/RCTMGL/RCTMGLRasterSource.m +35 -0
- package/ios/RCTMGL/RCTMGLRasterSourceManager.h +13 -0
- package/ios/RCTMGL/RCTMGLRasterSourceManager.m +32 -0
- package/ios/RCTMGL/RCTMGLShapeSource.h +52 -0
- package/ios/RCTMGL/RCTMGLShapeSource.m +180 -0
- package/ios/RCTMGL/RCTMGLShapeSourceManager.h +14 -0
- package/ios/RCTMGL/RCTMGLShapeSourceManager.m +205 -0
- package/ios/RCTMGL/RCTMGLSource.h +35 -0
- package/ios/RCTMGL/RCTMGLSource.m +143 -0
- package/ios/RCTMGL/RCTMGLStyle.h +219 -0
- package/ios/RCTMGL/RCTMGLStyle.m +1654 -0
- package/ios/RCTMGL/RCTMGLStyleValue.h +27 -0
- package/ios/RCTMGL/RCTMGLStyleValue.m +167 -0
- package/ios/RCTMGL/RCTMGLSymbolLayer.h +19 -0
- package/ios/RCTMGL/RCTMGLSymbolLayer.m +121 -0
- package/ios/RCTMGL/RCTMGLSymbolLayerManager.h +13 -0
- package/ios/RCTMGL/RCTMGLSymbolLayerManager.m +40 -0
- package/ios/RCTMGL/RCTMGLTileSource.h +22 -0
- package/ios/RCTMGL/RCTMGLTileSource.m +31 -0
- package/ios/RCTMGL/RCTMGLUserLocation.h +15 -0
- package/ios/RCTMGL/RCTMGLUserLocation.m +38 -0
- package/ios/RCTMGL/RCTMGLUtils.h +31 -0
- package/ios/RCTMGL/RCTMGLUtils.m +218 -0
- package/ios/RCTMGL/RCTMGLVectorLayer.h +15 -0
- package/ios/RCTMGL/RCTMGLVectorLayer.m +59 -0
- package/ios/RCTMGL/RCTMGLVectorSource.h +16 -0
- package/ios/RCTMGL/RCTMGLVectorSource.m +28 -0
- package/ios/RCTMGL/RCTMGLVectorSourceManager.h +14 -0
- package/ios/RCTMGL/RCTMGLVectorSourceManager.m +79 -0
- package/ios/RCTMGL/RNMBImageUtils.h +17 -0
- package/ios/RCTMGL/RNMBImageUtils.m +31 -0
- package/ios/RCTMGL/ViewManager.h +16 -0
- package/ios/RCTMGL/ViewManager.m +63 -0
- package/ios/RCTMGL/index.d.ts +1164 -0
- package/ios/RCTMGL.xcodeproj/project.pbxproj +774 -0
- package/ios/install.md +44 -0
- package/javascript/components/AbstractLayer.js +75 -0
- package/javascript/components/AbstractSource.js +15 -0
- package/javascript/components/BackgroundLayer.js +97 -0
- package/javascript/components/Callout.js +139 -0
- package/javascript/components/Camera.js +665 -0
- package/javascript/components/CircleLayer.js +101 -0
- package/javascript/components/FillExtrusionLayer.js +98 -0
- package/javascript/components/FillLayer.js +94 -0
- package/javascript/components/HeadingIndicator.js +31 -0
- package/javascript/components/HeatmapLayer.js +99 -0
- package/javascript/components/ImageSource.js +82 -0
- package/javascript/components/Images.js +119 -0
- package/javascript/components/Light.js +47 -0
- package/javascript/components/LineLayer.js +94 -0
- package/javascript/components/MapView.js +817 -0
- package/javascript/components/MarkerView.js +87 -0
- package/javascript/components/NativeBridgeComponent.js +86 -0
- package/javascript/components/NativeUserLocation.js +41 -0
- package/javascript/components/PointAnnotation.js +216 -0
- package/javascript/components/RasterLayer.js +95 -0
- package/javascript/components/RasterSource.js +124 -0
- package/javascript/components/ShapeSource.js +357 -0
- package/javascript/components/Style.js +264 -0
- package/javascript/components/SymbolLayer.js +120 -0
- package/javascript/components/UserLocation.js +273 -0
- package/javascript/components/VectorSource.js +200 -0
- package/javascript/components/annotations/Annotation.js +122 -0
- package/javascript/index.js +153 -0
- package/javascript/modules/location/locationManager.js +101 -0
- package/javascript/modules/offline/OfflineCreatePackOptions.js +46 -0
- package/javascript/modules/offline/OfflinePack.js +40 -0
- package/javascript/modules/offline/offlineManager.js +378 -0
- package/javascript/modules/snapshot/SnapshotOptions.js +67 -0
- package/javascript/modules/snapshot/snapshotManager.js +62 -0
- package/javascript/utils/BridgeValue.js +81 -0
- package/javascript/utils/Logger.js +114 -0
- package/javascript/utils/animated/Animated.js +39 -0
- package/javascript/utils/animated/AnimatedCoordinatesArray.js +191 -0
- package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.js +43 -0
- package/javascript/utils/animated/AnimatedPoint.js +126 -0
- package/javascript/utils/animated/AnimatedRouteCoordinatesArray.js +124 -0
- package/javascript/utils/animated/AnimatedShape.js +72 -0
- package/javascript/utils/deprecation.js +25 -0
- package/javascript/utils/filterUtils.js +7 -0
- package/javascript/utils/geoUtils.js +73 -0
- package/javascript/utils/index.js +113 -0
- package/javascript/utils/styleMap.js +1901 -0
- package/maplibre-react-native.podspec +79 -0
- package/package.json +120 -0
- package/plugin/build/withMapbox.d.ts +12 -0
- package/plugin/build/withMapbox.js +119 -0
- package/plugin/install.md +32 -0
- package/react-native.config.js +10 -0
- package/scripts/autogenHelpers/DocJSONBuilder.js +458 -0
- package/scripts/autogenHelpers/JSDocNodeTree.js +131 -0
- package/scripts/autogenHelpers/MarkdownBuilder.js +29 -0
- package/scripts/autogenHelpers/globals.js +507 -0
- package/scripts/autogenerate.js +374 -0
- package/scripts/download-style-spec.sh +15 -0
- package/scripts/templates/RCTMGLStyle.h.ejs +33 -0
- package/scripts/templates/RCTMGLStyle.m.ejs +97 -0
- package/scripts/templates/RCTMGLStyleFactory.java.ejs +107 -0
- package/scripts/templates/component.md.ejs +122 -0
- package/scripts/templates/index.d.ts.ejs +56 -0
- package/scripts/templates/styleMap.js.ejs +115 -0
- package/setup-jest.js +121 -0
- package/style-spec/v8.json +5798 -0
- 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
|
+
}
|