@maplibre/maplibre-react-native 10.0.0-alpha.24 → 10.0.0-alpha.26

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 (173) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/android/build.gradle +51 -16
  4. package/docs/Annotation.md +8 -17
  5. package/docs/BackgroundLayer.md +136 -128
  6. package/docs/Callout.md +5 -4
  7. package/docs/Camera.md +38 -39
  8. package/docs/CircleLayer.md +413 -388
  9. package/docs/FillExtrusionLayer.md +303 -292
  10. package/docs/FillLayer.md +266 -251
  11. package/docs/HeadingIndicator.md +5 -4
  12. package/docs/HeatmapLayer.md +179 -172
  13. package/docs/ImageSource.md +5 -4
  14. package/docs/Images.md +5 -4
  15. package/docs/Light.md +131 -123
  16. package/docs/LineLayer.md +525 -498
  17. package/docs/MapView.md +23 -42
  18. package/docs/MarkerView.md +5 -4
  19. package/docs/NativeUserLocation.md +5 -4
  20. package/docs/PointAnnotation.md +7 -10
  21. package/docs/RasterLayer.md +318 -310
  22. package/docs/RasterSource.md +5 -4
  23. package/docs/ShapeSource.md +16 -15
  24. package/docs/Style.md +5 -4
  25. package/docs/SymbolLayer.md +1501 -1406
  26. package/docs/UserLocation.md +10 -13
  27. package/docs/VectorSource.md +10 -9
  28. package/docs/coordinates.md +4 -3
  29. package/docs/docs.json +49 -88
  30. package/docs/location.md +4 -3
  31. package/docs/offlineManager.md +29 -44
  32. package/docs/snapshotManager.md +7 -6
  33. package/ios/RCTMLN/RCTMLNCamera.h +0 -3
  34. package/ios/RCTMLN/RCTMLNCamera.m +1 -1
  35. package/ios/RCTMLN/RCTMLNCameraManager.m +0 -3
  36. package/javascript/MLNModule.ts +9 -0
  37. package/javascript/Maplibre.ts +1 -1
  38. package/javascript/components/{annotations/Annotation.tsx → Annotation.tsx} +5 -5
  39. package/javascript/components/Camera.tsx +257 -388
  40. package/javascript/components/UserLocation.tsx +1 -1
  41. package/javascript/hooks/useNativeRef.ts +2 -1
  42. package/javascript/types/CameraMode.ts +6 -0
  43. package/package.json +16 -24
  44. package/scripts/codegen.ts +340 -0
  45. package/scripts/templates/MaplibreStyles.ts.ejs +8 -7
  46. package/scripts/templates/RCTMLNStyle.h.ejs +4 -3
  47. package/scripts/templates/RCTMLNStyle.m.ejs +11 -10
  48. package/scripts/templates/RCTMLNStyleFactory.java.ejs +12 -11
  49. package/scripts/templates/component.md.ejs +88 -85
  50. package/scripts/templates/index.d.ts.ejs +2 -1
  51. package/scripts/templates/styleMap.ts.ejs +2 -1
  52. package/scripts/utils/{DocJSONBuilder.js → DocJSONBuilder.ts} +133 -128
  53. package/scripts/utils/{JSDocNodeTree.js → JSDocNodeTree.ts} +14 -13
  54. package/scripts/utils/MarkdownBuilder.ts +44 -0
  55. package/scripts/utils/{template-globals.js → TemplateHelpers.ts} +66 -95
  56. package/scripts/utils/getNativeVersion.ts +53 -0
  57. package/tsconfig.json +2 -3
  58. package/.husky/pre-commit +0 -5
  59. package/android/rctmln/.settings/org.eclipse.buildship.core.prefs +0 -2
  60. package/android/rctmln/build.gradle +0 -64
  61. package/android/rctmln/proguard-rules.pro +0 -25
  62. package/docs/OfflineManager.md +0 -246
  63. package/react-native.config.js +0 -10
  64. package/scripts/download-style-spec.sh +0 -15
  65. package/scripts/generate-docs.js +0 -396
  66. package/scripts/utils/MarkdownBuilder.js +0 -37
  67. package/style-spec/v8.json +0 -6645
  68. /package/android/{rctmln/src → src}/main/AndroidManifest.xml +0 -0
  69. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/RCTMLNPackage.java +0 -0
  70. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/AbstractEvent.java +0 -0
  71. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/AbstractEventEmitter.java +0 -0
  72. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/AbstractMapFeature.java +0 -0
  73. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/MarkerView.java +0 -0
  74. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/MarkerViewManager.java +0 -0
  75. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCallout.java +0 -0
  76. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCalloutManager.java +0 -0
  77. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java +0 -0
  78. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerViewManager.java +0 -0
  79. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java +0 -0
  80. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotationManager.java +0 -0
  81. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/CameraStop.java +0 -0
  82. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/CameraUpdateItem.java +0 -0
  83. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/CameraUpdateQueue.java +0 -0
  84. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java +0 -0
  85. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java +0 -0
  86. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/camera/constants/CameraMode.java +0 -0
  87. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java +0 -0
  88. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/images/RCTMLNImagesManager.java +0 -0
  89. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/location/LocationComponentManager.java +0 -0
  90. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java +0 -0
  91. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java +0 -0
  92. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/LayerSourceInfo.java +0 -0
  93. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +0 -0
  94. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +0 -0
  95. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java +0 -0
  96. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java +0 -0
  97. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/mapview/helpers/CameraChangeTracker.java +0 -0
  98. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java +0 -0
  99. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java +0 -0
  100. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java +0 -0
  101. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java +0 -0
  102. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTLayer.java +0 -0
  103. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +0 -0
  104. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayerManager.java +0 -0
  105. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java +0 -0
  106. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayerManager.java +0 -0
  107. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java +0 -0
  108. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayerManager.java +0 -0
  109. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java +0 -0
  110. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayerManager.java +0 -0
  111. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java +0 -0
  112. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayerManager.java +0 -0
  113. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java +0 -0
  114. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayerManager.java +0 -0
  115. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +0 -0
  116. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayerManager.java +0 -0
  117. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java +0 -0
  118. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayerManager.java +0 -0
  119. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java +0 -0
  120. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLightManager.java +0 -0
  121. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java +0 -0
  122. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java +0 -0
  123. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java +0 -0
  124. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSourceManager.java +0 -0
  125. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java +0 -0
  126. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java +0 -0
  127. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java +0 -0
  128. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSourceManager.java +0 -0
  129. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java +0 -0
  130. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSourceManager.java +0 -0
  131. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/components/styles/sources/RCTSource.java +0 -0
  132. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/AbstractEvent.java +0 -0
  133. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/AndroidCallbackEvent.java +0 -0
  134. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/EventEmitter.java +0 -0
  135. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/FeatureClickEvent.java +0 -0
  136. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/IEvent.java +0 -0
  137. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/ImageMissingEvent.java +0 -0
  138. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/LocationEvent.java +0 -0
  139. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/MapChangeEvent.java +0 -0
  140. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/MapClickEvent.java +0 -0
  141. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/MapUserTrackingModeEvent.java +0 -0
  142. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/OfflineEvent.java +0 -0
  143. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/PointAnnotationClickEvent.java +0 -0
  144. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/PointAnnotationDragEvent.java +0 -0
  145. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/constants/EventKeys.java +0 -0
  146. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/events/constants/EventTypes.java +0 -0
  147. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/http/CustomHeadersInterceptor.java +0 -0
  148. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/LocationManager.java +0 -0
  149. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserLocation.java +0 -0
  150. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserLocationVerticalAlignment.java +0 -0
  151. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserTrackingMode.java +0 -0
  152. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/location/UserTrackingState.java +0 -0
  153. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java +0 -0
  154. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java +0 -0
  155. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java +0 -0
  156. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java +0 -0
  157. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java +0 -0
  158. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/BitmapUtils.java +0 -0
  159. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ClusterPropertyEntry.java +0 -0
  160. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ConvertUtils.java +0 -0
  161. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/DownloadMapImageTask.java +0 -0
  162. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ExpressionParser.java +0 -0
  163. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/GeoJSONUtils.java +0 -0
  164. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/GeoViewport.java +0 -0
  165. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ImageEntry.java +0 -0
  166. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/ResourceUtils.java +0 -0
  167. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/SimpleEventCallback.java +0 -0
  168. /package/android/{rctmln/src → src}/main/java/com/maplibre/rctmln/utils/SphericalMercator.java +0 -0
  169. /package/android/{rctmln/src → src}/main/res/drawable/empty.xml +0 -0
  170. /package/android/{rctmln/src → src}/main/res/drawable/empty_drawable.png +0 -0
  171. /package/android/{rctmln/src → src}/main/res/drawable-xxhdpi/red_marker.png +0 -0
  172. /package/android/{rctmln/src → src}/main/res/layout/annotation.xml +0 -0
  173. /package/android/{rctmln/src → src}/main/res/values/strings.xml +0 -0
@@ -1,246 +0,0 @@
1
- <!-- This file was autogenerated from offlineManager.js do not modify -->
2
- ## <MapLibreGL.offlineManager />
3
- ### OfflineManager implements a singleton (shared object) that manages offline packs.<br/>All of this class’s instance methods are asynchronous, reflecting the fact that offline resources are stored in a database.<br/>The shared object maintains a canonical collection of offline packs.
4
-
5
-
6
- ### methods
7
- #### createPack(options[, progressListener][, errorListener])
8
-
9
- Creates and registers an offline pack that downloads the resources needed to use the given region offline.
10
-
11
- ##### arguments
12
- | Name | Type | Required | Description |
13
- | ---- | :--: | :------: | :----------: |
14
- | `options` | `OfflineCreatePackOptions` | `Yes` | Create options for a offline pack that specifices zoom levels, style url, and the region to download. |
15
- | `progressListener` | `Callback` | `No` | Callback that listens for status events while downloading the offline resource. |
16
- | `errorListener` | `Callback` | `No` | Callback that listens for status events while downloading the offline resource. |
17
-
18
-
19
-
20
- ```javascript
21
- const progressListener = (offlineRegion, status) => console.log(offlineRegion, status);
22
- const errorListener = (offlineRegion, err) => console.log(offlineRegion, err);
23
-
24
- await MapLibreGL.offlineManager.createPack({
25
- name: 'offlinePack',
26
- styleURL: 'mapbox://...',
27
- minZoom: 14,
28
- maxZoom: 20,
29
- bounds: [[neLng, neLat], [swLng, swLat]]
30
- }, progressListener, errorListener)
31
- ```
32
-
33
-
34
- #### invalidatePack(name)
35
-
36
- Invalidates the specified offline pack. This method checks that the tiles in the specified offline pack match those from the server. Local tiles that do not match the latest version on the server are updated.This is more efficient than deleting the offline pack and downloading it again. If the data stored locally matches that on the server, new data will not be downloaded.
37
-
38
- ##### arguments
39
- | Name | Type | Required | Description |
40
- | ---- | :--: | :------: | :----------: |
41
- | `name` | `String` | `Yes` | Name of the offline pack. |
42
-
43
-
44
-
45
- ```javascript
46
- await MapLibreGL.offlineManager.invalidatePack('packName')
47
- ```
48
-
49
-
50
- #### deletePack(name)
51
-
52
- Unregisters the given offline pack and allows resources that are no longer required by any remaining packs to be potentially freed.
53
-
54
- ##### arguments
55
- | Name | Type | Required | Description |
56
- | ---- | :--: | :------: | :----------: |
57
- | `name` | `String` | `Yes` | Name of the offline pack. |
58
-
59
-
60
-
61
- ```javascript
62
- await MapLibreGL.offlineManager.deletePack('packName')
63
- ```
64
-
65
-
66
- #### invalidateAmbientCache()
67
-
68
- Forces a revalidation of the tiles in the ambient cache and downloads a fresh version of the tiles from the tile server.<br/>This is the recommend method for clearing the cache.<br/>This is the most efficient method because tiles in the ambient cache are re-downloaded to remove outdated data from a device.<br/>It does not erase resources from the ambient cache or delete the database, which can be computationally expensive operations that may carry unintended side effects.
69
-
70
- ##### arguments
71
- | Name | Type | Required | Description |
72
- | ---- | :--: | :------: | :----------: |
73
-
74
-
75
-
76
-
77
- ```javascript
78
- await MapLibreGL.offlineManager.invalidateAmbientCache();
79
- ```
80
-
81
-
82
- #### clearAmbientCache()
83
-
84
- Erases resources from the ambient cache.<br/>This method clears the cache and decreases the amount of space that map resources take up on the device.
85
-
86
- ##### arguments
87
- | Name | Type | Required | Description |
88
- | ---- | :--: | :------: | :----------: |
89
-
90
-
91
-
92
-
93
- ```javascript
94
- await MapLibreGL.offlineManager.clearAmbientCache();
95
- ```
96
-
97
-
98
- #### setMaximumAmbientCacheSize(size)
99
-
100
- Sets the maximum size of the ambient cache in bytes. Disables the ambient cache if set to 0.<br/>This method may be computationally expensive because it will erase resources from the ambient cache if its size is decreased.
101
-
102
- ##### arguments
103
- | Name | Type | Required | Description |
104
- | ---- | :--: | :------: | :----------: |
105
- | `size` | `Number` | `Yes` | Size of ambient cache. |
106
-
107
-
108
-
109
- ```javascript
110
- await MapLibreGL.offlineManager.setMaximumAmbientCacheSize(5000000);
111
- ```
112
-
113
-
114
- #### resetDatabase()
115
-
116
- Deletes the existing database, which includes both the ambient cache and offline packs, then reinitializes it.
117
-
118
- ##### arguments
119
- | Name | Type | Required | Description |
120
- | ---- | :--: | :------: | :----------: |
121
-
122
-
123
-
124
-
125
- ```javascript
126
- await MapLibreGL.offlineManager.resetDatabase();
127
- ```
128
-
129
-
130
- #### getPacks()
131
-
132
- Retrieves all the current offline packs that are stored in the database.
133
-
134
- ##### arguments
135
- | Name | Type | Required | Description |
136
- | ---- | :--: | :------: | :----------: |
137
-
138
-
139
-
140
-
141
- ```javascript
142
- const offlinePacks = await MapLibreGL.offlineManager.getPacks();
143
- ```
144
-
145
-
146
- #### getPack(name)
147
-
148
- Retrieves an offline pack that is stored in the database by name.
149
-
150
- ##### arguments
151
- | Name | Type | Required | Description |
152
- | ---- | :--: | :------: | :----------: |
153
- | `name` | `String` | `Yes` | Name of the offline pack. |
154
-
155
-
156
-
157
- ```javascript
158
- const offlinePack = await MapLibreGL.offlineManager.getPack();
159
- ```
160
-
161
-
162
- #### mergeOfflineRegions(path)
163
-
164
- Sideloads offline db
165
-
166
- ##### arguments
167
- | Name | Type | Required | Description |
168
- | ---- | :--: | :------: | :----------: |
169
- | `path` | `String` | `Yes` | Path to offline tile db on file system. |
170
-
171
-
172
-
173
- ```javascript
174
- await MapLibreGL.offlineManager.mergeOfflineRegions(path);
175
- ```
176
-
177
-
178
- #### setTileCountLimit(limit)
179
-
180
- Sets the maximum number of tiles that may be downloaded and stored on the current device.<br/>Consult the Terms of Service for your map tile host before changing this value.
181
-
182
- ##### arguments
183
- | Name | Type | Required | Description |
184
- | ---- | :--: | :------: | :----------: |
185
- | `limit` | `Number` | `Yes` | Map tile limit count. |
186
-
187
-
188
-
189
- ```javascript
190
- MapLibreGL.offlineManager.setTileCountLimit(1000);
191
- ```
192
-
193
-
194
- #### setProgressEventThrottle(throttleValue)
195
-
196
- Sets the period at which download status events will be sent over the React Native bridge.<br/>The default is 500ms.
197
-
198
- ##### arguments
199
- | Name | Type | Required | Description |
200
- | ---- | :--: | :------: | :----------: |
201
- | `throttleValue` | `Number` | `Yes` | event throttle value in ms. |
202
-
203
-
204
-
205
- ```javascript
206
- MapLibreGL.offlineManager.setProgressEventThrottle(500);
207
- ```
208
-
209
-
210
- #### subscribe(packName, progressListener, errorListener)
211
-
212
- Subscribe to download status/error events for the requested offline pack.<br/>Note that createPack calls this internally if listeners are provided.
213
-
214
- ##### arguments
215
- | Name | Type | Required | Description |
216
- | ---- | :--: | :------: | :----------: |
217
- | `packName` | `String` | `Yes` | Name of the offline pack. |
218
- | `progressListener` | `Callback` | `Yes` | Callback that listens for status events while downloading the offline resource. |
219
- | `errorListener` | `Callback` | `Yes` | Callback that listens for status events while downloading the offline resource. |
220
-
221
-
222
-
223
- ```javascript
224
- const progressListener = (offlinePack, status) => console.log(offlinePack, status)
225
- const errorListener = (offlinePack, err) => console.log(offlinePack, err)
226
- MapLibreGL.offlineManager.subscribe('packName', progressListener, errorListener)
227
- ```
228
-
229
-
230
- #### unsubscribe(packName)
231
-
232
- Unsubscribes any listeners associated with the offline pack.<br/>It's a good idea to call this on componentWillUnmount.
233
-
234
- ##### arguments
235
- | Name | Type | Required | Description |
236
- | ---- | :--: | :------: | :----------: |
237
- | `packName` | `String` | `Yes` | Name of the offline pack. |
238
-
239
-
240
-
241
- ```javascript
242
- MapLibreGL.offlineManager.unsubscribe('packName')
243
- ```
244
-
245
-
246
-
@@ -1,10 +0,0 @@
1
- module.exports = {
2
- dependency: {
3
- platforms: {
4
- ios: {},
5
- android: {
6
- sourceDir: "./android/rctmln",
7
- },
8
- },
9
- },
10
- };
@@ -1,15 +0,0 @@
1
- #!/bin/sh
2
-
3
- echo "Downloading MapLibre 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/maplibre/maplibre-style-spec/main/src/reference/${FILENAME} -o ${FILENAME}
15
- cd ..
@@ -1,396 +0,0 @@
1
- require("./utils/template-globals");
2
-
3
- const { execSync } = require("child_process");
4
- const ejs = require("ejs");
5
- const prettierrc = require("eslint-config-universe");
6
- const fs = require("fs");
7
- const path = require("path");
8
- const prettier = require("prettier");
9
-
10
- const { camelCase } = require("./utils/template-globals");
11
- const styleSpecJSON = require("../style-spec/v8.json");
12
- const DocJSONBuilder = require("./utils/DocJSONBuilder");
13
- const MarkdownBuilder = require("./utils/MarkdownBuilder");
14
-
15
- function readIosVersion() {
16
- const podspecPath = path.join(
17
- __dirname,
18
- "..",
19
- "maplibre-react-native.podspec",
20
- );
21
- const lines = fs.readFileSync(podspecPath, "utf8").split("\n");
22
- const maplibreLineRegex = /^\s+version:\s*"(\d+\.\d+\.\d+)"$/;
23
- const maplibreLine = lines.filter((i) => maplibreLineRegex.exec(i))[0];
24
- return `${maplibreLineRegex.exec(maplibreLine)[1]}.0`;
25
- }
26
-
27
- function readAndroidVersion() {
28
- const buildGradlePath = path.join(
29
- __dirname,
30
- "..",
31
- "android",
32
- "rctmln",
33
- "build.gradle",
34
- );
35
- const lines = fs.readFileSync(buildGradlePath, "utf8").split("\n");
36
- const maplibreLineRegex =
37
- /^\s+implementation\s+"org.maplibre.gl:android-sdk:(\d+\.\d+\.\d+)"$/;
38
- const maplibreLine = lines.filter((i) => maplibreLineRegex.exec(i))[0];
39
- return maplibreLineRegex.exec(maplibreLine)[1];
40
- }
41
-
42
- if (!styleSpecJSON) {
43
- console.log(
44
- 'Could not find style spec, try running "yarn generate:fetch-style-spec"',
45
- );
46
- process.exit(1);
47
- }
48
-
49
- const layers = [];
50
- const androidVersion = readAndroidVersion();
51
- const iosVersion = readIosVersion();
52
-
53
- const TMPL_PATH = path.join(__dirname, "templates");
54
-
55
- const outputToExample = false;
56
- const OUTPUT_EXAMPLE_PREFIX = [
57
- "..",
58
- "example",
59
- "node_modules",
60
- "@maplibre",
61
- "maplibre-react-native",
62
- ];
63
- const OUTPUT_PREFIX = outputToExample ? OUTPUT_EXAMPLE_PREFIX : [".."];
64
-
65
- const IOS_OUTPUT_PATH = path.join(__dirname, ...OUTPUT_PREFIX, "ios", "RCTMLN");
66
- const ANDROID_OUTPUT_PATH = path.join(
67
- __dirname,
68
- ...OUTPUT_PREFIX,
69
- "android",
70
- "rctmln",
71
- "src",
72
- "main",
73
- "java",
74
- "com",
75
- "maplibre",
76
- "rctmln",
77
- "components",
78
- "styles",
79
- );
80
- const JS_OUTPUT_PATH = path.join(
81
- __dirname,
82
- ...OUTPUT_PREFIX,
83
- "javascript",
84
- "utils",
85
- );
86
-
87
- getSupportedLayers(Object.keys(styleSpecJSON.layer.type.values)).forEach(
88
- (layerName) => {
89
- layers.push({
90
- name: layerName,
91
- properties: getPropertiesForLayer(layerName),
92
- });
93
- },
94
- );
95
-
96
- // add light as a layer
97
- layers.push({ name: "light", properties: getPropertiesForLight() });
98
-
99
- function getPropertiesForLight() {
100
- const lightAttributes = styleSpecJSON.light;
101
-
102
- return getSupportedProperties(lightAttributes).map((attrName) => {
103
- return Object.assign({}, buildProperties(lightAttributes, attrName), {
104
- allowedFunctionTypes: [],
105
- });
106
- });
107
- }
108
-
109
- function getPropertiesForLayer(layerName) {
110
- const paintAttributes = styleSpecJSON[`paint_${layerName}`];
111
- const layoutAttributes = styleSpecJSON[`layout_${layerName}`];
112
-
113
- const paintProps = getSupportedProperties(paintAttributes).map((attrName) => {
114
- const prop = buildProperties(paintAttributes, attrName);
115
-
116
- // overrides
117
- if (["line-width"].includes(attrName)) {
118
- prop.allowedFunctionTypes = ["camera"];
119
- }
120
-
121
- return prop;
122
- });
123
-
124
- const layoutProps = getSupportedProperties(layoutAttributes).map(
125
- (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
- // Overide type padding
142
- if (prop.type === "padding") {
143
- prop.type = "array";
144
- prop.value = "number";
145
- prop.length = 4;
146
- }
147
- return prop;
148
- },
149
- );
150
-
151
- return layoutProps.concat(paintProps);
152
- }
153
-
154
- function getSupportedLayers(layerNames) {
155
- const layerMap = styleSpecJSON.layer.type.values;
156
-
157
- const supportedLayers = [];
158
- for (const layerName of layerNames) {
159
- const layer = layerMap[layerName];
160
- const support = getAttributeSupport(layer["sdk-support"]);
161
-
162
- if (support.basic.android && support.basic.ios) {
163
- supportedLayers.push(layerName);
164
- }
165
- }
166
-
167
- return supportedLayers;
168
- }
169
-
170
- function getSupportedProperties(attributes) {
171
- return Object.keys(attributes).filter((attrName) =>
172
- isAttrSupported(attributes[attrName]),
173
- );
174
- }
175
-
176
- function buildProperties(attributes, attrName) {
177
- return {
178
- name: camelCase(attrName),
179
- doc: {
180
- default: attributes[attrName].default,
181
- minimum: attributes[attrName].minimum,
182
- maximum: attributes[attrName].maximum,
183
- units: attributes[attrName].units,
184
- description: formatDescription(attributes[attrName].doc),
185
- requires: getRequires(attributes[attrName].requires),
186
- disabledBy: getDisables(attributes[attrName].requires),
187
- values: attributes[attrName].values,
188
- },
189
- type: attributes[attrName].type,
190
- value: attributes[attrName].value,
191
- image: isImage(attrName),
192
- translate: isTranslate(attrName),
193
- transition: attributes[attrName].transition,
194
- expression: attributes[attrName].expression,
195
- expressionSupported:
196
- Object.keys(attributes[attrName].expression || {}).length > 0,
197
- support: getAttributeSupport(attributes[attrName]["sdk-support"]),
198
- allowedFunctionTypes: getAllowedFunctionTypes(attributes[attrName]),
199
- };
200
- }
201
-
202
- function formatDescription(description) {
203
- const words = description.split(" ");
204
-
205
- for (let i = 0; i < words.length; i++) {
206
- const word = words[i];
207
-
208
- if (word.includes("-")) {
209
- words[i] = camelCase(word);
210
- }
211
- }
212
-
213
- return words.join(" ");
214
- }
215
-
216
- function getRequires(requiredItems) {
217
- const items = [];
218
-
219
- if (!requiredItems) {
220
- return items;
221
- }
222
-
223
- for (const item of requiredItems) {
224
- if (typeof item === "string") {
225
- items.push(camelCase(item, "-"));
226
- }
227
- }
228
-
229
- return items;
230
- }
231
-
232
- function getDisables(disabledItems) {
233
- const items = [];
234
-
235
- if (!disabledItems) {
236
- return items;
237
- }
238
-
239
- for (const item of disabledItems) {
240
- if (item["!"]) {
241
- items.push(camelCase(item["!"], "-"));
242
- }
243
- }
244
-
245
- return items;
246
- }
247
-
248
- function isImage(attrName) {
249
- return (
250
- attrName.toLowerCase().indexOf("pattern") !== -1 ||
251
- attrName.toLowerCase().indexOf("image") !== -1
252
- );
253
- }
254
-
255
- function isTranslate(attrName) {
256
- return attrName.toLowerCase().indexOf("translate") !== -1;
257
- }
258
-
259
- function isAttrSupported(attr) {
260
- const support = getAttributeSupport(attr["sdk-support"]);
261
- if (attr.private) {
262
- return false;
263
- }
264
- return support.basic.android && support.basic.ios;
265
- }
266
-
267
- function getAttributeSupport(sdkSupport) {
268
- const support = {
269
- basic: { android: false, ios: false },
270
- data: { android: false, ios: false },
271
- };
272
-
273
- const basicSupport = sdkSupport && sdkSupport["basic functionality"];
274
- if (basicSupport && basicSupport.android) {
275
- support.basic.android = isVersionGTE(androidVersion, basicSupport.android);
276
- }
277
- if (basicSupport && basicSupport.ios) {
278
- support.basic.ios = isVersionGTE(iosVersion, basicSupport.ios);
279
- }
280
-
281
- const dataDrivenSupport = sdkSupport && sdkSupport["data-driven styling"];
282
- if (dataDrivenSupport && dataDrivenSupport.android) {
283
- support.data.android = isVersionGTE(
284
- androidVersion,
285
- dataDrivenSupport.android,
286
- );
287
- }
288
- if (dataDrivenSupport && dataDrivenSupport.ios) {
289
- support.data.ios = isVersionGTE(iosVersion, dataDrivenSupport.ios);
290
- }
291
-
292
- if (support.data.ios !== true || support.data.android !== true) {
293
- support.data.ios = false;
294
- support.data.android = false;
295
- }
296
-
297
- return support;
298
- }
299
-
300
- function isVersionGTE(version, otherVersion) {
301
- const v = +version
302
- .split(".")
303
- .map((i) => String(i).padStart(3, "0"))
304
- .join("");
305
- const ov = +otherVersion
306
- .split(".")
307
- .map((i) => String(i).padStart(3, "0"))
308
- .join("");
309
- return v >= ov;
310
- }
311
-
312
- function getAllowedFunctionTypes(paintAttr) {
313
- const allowedFunctionTypes = [];
314
-
315
- if (paintAttr["zoom-function"]) {
316
- allowedFunctionTypes.push("camera");
317
- }
318
-
319
- if (paintAttr["property-function"]) {
320
- allowedFunctionTypes.push("source");
321
- allowedFunctionTypes.push("composite");
322
- }
323
-
324
- return allowedFunctionTypes;
325
- }
326
-
327
- async function generate() {
328
- const templateMappings = [
329
- {
330
- input: path.join(TMPL_PATH, "RCTMLNStyle.h.ejs"),
331
- output: path.join(IOS_OUTPUT_PATH, "RCTMLNStyle.h"),
332
- },
333
- {
334
- input: path.join(TMPL_PATH, "MaplibreStyles.ts.ejs"),
335
- output: path.join(JS_OUTPUT_PATH, "MaplibreStyles.d.ts"),
336
- },
337
- {
338
- input: path.join(TMPL_PATH, "RCTMLNStyle.m.ejs"),
339
- output: path.join(IOS_OUTPUT_PATH, "RCTMLNStyle.m"),
340
- },
341
- {
342
- input: path.join(TMPL_PATH, "RCTMLNStyleFactory.java.ejs"),
343
- output: path.join(ANDROID_OUTPUT_PATH, "RCTMLNStyleFactory.java"),
344
- },
345
- {
346
- input: path.join(TMPL_PATH, "styleMap.ts.ejs"),
347
- output: path.join(JS_OUTPUT_PATH, "styleMap.ts"),
348
- },
349
- ];
350
- const outputPaths = templateMappings.map((m) => m.output);
351
-
352
- // autogenerate code
353
- await Promise.all(
354
- templateMappings.map(async ({ input, output }) => {
355
- const filename = output.split("/").pop();
356
- console.log(`Generating ${filename}`);
357
- const tmpl = ejs.compile(fs.readFileSync(input, "utf8"), {
358
- strict: true,
359
- });
360
- let results = tmpl({ layers });
361
- if (filename.endsWith("ts")) {
362
- results = await prettier.format(results, {
363
- ...prettierrc,
364
- filepath: filename,
365
- });
366
- // Ensure all enums are exported
367
- results = results.replace(/enum (\w+Enum) \{[^}]+\}\n/g, "export $&");
368
- // Replace Array<any> with any[]
369
- results = results.replace(/Array<any>/g, "any[]");
370
- // Replace padding type with float array
371
- results = results.replace(/padding: string;/g, "padding: number[];");
372
- }
373
- fs.writeFileSync(output, results);
374
- }),
375
- );
376
-
377
- // autogenerate docs
378
- const docBuilder = new DocJSONBuilder(layers);
379
- const markdownBuilder = new MarkdownBuilder();
380
- await docBuilder.generate();
381
- await markdownBuilder.generate();
382
-
383
- // Check if any generated files changed
384
- try {
385
- execSync(`git diff --exit-code docs/ ${outputPaths.join(" ")}`);
386
- } catch (_error) {
387
- console.error(
388
- "\n\nThere are unstaged changes in the generated code. " +
389
- "Please add them to your commit.\n" +
390
- 'If you would really like to exclude them, run "git commit -n" to skip.\n\n',
391
- );
392
- process.exit(1);
393
- }
394
- }
395
-
396
- generate();
@@ -1,37 +0,0 @@
1
- const ejs = require("ejs");
2
- const fs = require("fs");
3
- const path = require("path");
4
-
5
- const TMPL_PATH = path.join(__dirname, "..", "templates");
6
- const TMPL_FILE = fs.readFileSync(
7
- path.join(TMPL_PATH, "component.md.ejs"),
8
- "utf8",
9
- );
10
-
11
- class MarkdownBuilder {
12
- generateComponentFile(docJSON, componentName) {
13
- const tmpl = ejs.compile(TMPL_FILE, { strict: true });
14
- const fileContents = tmpl({ component: docJSON[componentName] });
15
- fs.writeFileSync(
16
- path.join(__dirname, "..", "..", "docs", `${componentName}.md`),
17
- fileContents,
18
- );
19
- }
20
-
21
- generate() {
22
- const docJSONFile = fs.readFileSync(
23
- path.join(__dirname, "..", "..", "docs", "docs.json"),
24
- "utf8",
25
- );
26
- const docJSON = JSON.parse(docJSONFile);
27
- const componentPaths = Object.keys(docJSON);
28
-
29
- for (const componentPath of componentPaths) {
30
- this.generateComponentFile(docJSON, componentPath);
31
- }
32
-
33
- console.log("Markdown is finished generating");
34
- }
35
- }
36
-
37
- module.exports = MarkdownBuilder;