@rnmapbox/maps 10.1.0-beta.23 → 10.1.0-beta.24

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 (31) hide show
  1. package/android/src/main/java/com/rnmapbox/rnmbx/components/camera/RNMBXViewport.kt +69 -2
  2. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocation.kt +51 -0
  3. package/android/src/main/java/com/rnmapbox/rnmbx/components/location/RNMBXNativeUserLocationManager.kt +8 -0
  4. package/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableMap.kt +37 -5
  5. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerDelegate.java +3 -0
  6. package/android/src/main/old-arch/com/facebook/react/viewmanagers/RNMBXNativeUserLocationManagerInterface.java +1 -0
  7. package/ios/RNMBX/RNMBXFabricPropConvert.h +11 -5
  8. package/ios/RNMBX/RNMBXFabricPropConvert.mm +5 -0
  9. package/ios/RNMBX/RNMBXInteractiveElement.swift +1 -1
  10. package/ios/RNMBX/RNMBXNativeUserLocation.swift +47 -16
  11. package/ios/RNMBX/RNMBXNativeUserLocationComponentView.mm +8 -7
  12. package/ios/RNMBX/RNMBXNativeUserLocationViewManager.m +1 -0
  13. package/ios/RNMBX/RNMBXViewport.swift +59 -3
  14. package/lib/commonjs/components/NativeUserLocation.js +25 -1
  15. package/lib/commonjs/components/NativeUserLocation.js.map +1 -1
  16. package/lib/commonjs/components/Viewport.js.map +1 -1
  17. package/lib/commonjs/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
  18. package/lib/module/components/NativeUserLocation.js +25 -1
  19. package/lib/module/components/NativeUserLocation.js.map +1 -1
  20. package/lib/module/components/Viewport.js.map +1 -1
  21. package/lib/module/specs/RNMBXNativeUserLocationNativeComponent.js.map +1 -1
  22. package/lib/typescript/src/components/NativeUserLocation.d.ts +20 -0
  23. package/lib/typescript/src/components/NativeUserLocation.d.ts.map +1 -1
  24. package/lib/typescript/src/components/Viewport.d.ts +32 -1
  25. package/lib/typescript/src/components/Viewport.d.ts.map +1 -1
  26. package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts +9 -1
  27. package/lib/typescript/src/specs/RNMBXNativeUserLocationNativeComponent.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/components/NativeUserLocation.tsx +46 -2
  30. package/src/components/Viewport.tsx +37 -0
  31. package/src/specs/RNMBXNativeUserLocationNativeComponent.ts +14 -1
@@ -32,9 +32,11 @@ import com.rnmapbox.rnmbx.utils.extensions.*
32
32
  import com.rnmapbox.rnmbx.utils.writableMapOf
33
33
 
34
34
  import com.facebook.react.uimanager.events.Event
35
+ import com.mapbox.geojson.Geometry
35
36
  import com.mapbox.maps.EdgeInsets
36
37
  import com.mapbox.maps.plugin.viewport.data.FollowPuckViewportStateBearing
37
38
  import com.mapbox.maps.plugin.viewport.data.FollowPuckViewportStateOptions
39
+ import com.mapbox.maps.plugin.viewport.data.OverviewViewportStateOptions
38
40
  import com.rnmapbox.rnmbx.events.constants.EventKeys
39
41
 
40
42
  class BaseEvent(
@@ -123,7 +125,9 @@ mContext
123
125
  "followPuck" -> viewport.makeFollowPuckViewportState(
124
126
  parseFollowViewportOptions(state)
125
127
  )
126
- //"overview" -> return viewport.makeOverviewViewportState()
128
+ "overview" -> return viewport.makeOverviewViewportState(
129
+ parseOverviewViewportOption(state)
130
+ )
127
131
  else -> {
128
132
  Logger.e(LOG_TAG, "toState: unexpected state: $kind")
129
133
  null
@@ -191,14 +195,73 @@ mContext
191
195
  builder.padding(null)
192
196
  } else {
193
197
  options.getAndLogIfNotMap("padding", LOG_TAG)?.let { paddingMap ->
194
- paddingMap?.toPadding(LOG_TAG)?.let { padding ->
198
+ paddingMap?.toPadding(LOG_TAG, resources.displayMetrics.density)?.let { padding ->
195
199
  builder.padding(padding)
196
200
  }
197
201
  }
198
202
  }
199
203
  }
204
+ }
205
+ return builder.build()
206
+ }
207
+
208
+ private fun parseOverviewViewportOption(state: ReadableMap): OverviewViewportStateOptions {
209
+ val builder = OverviewViewportStateOptions.Builder()
200
210
 
211
+ state.getAndLogIfNotMap("options", LOG_TAG)?.let { options ->
212
+ if (options.hasKey("padding")) {
213
+ if (!options.isNull("padding")) {
214
+ options.getAndLogIfNotMap("padding", LOG_TAG)?.let { paddingMap ->
215
+ paddingMap?.toPadding(LOG_TAG, resources.displayMetrics.density)?.let { padding ->
216
+ builder.padding(padding)
217
+ }
218
+ }
219
+ }
220
+ }
221
+
222
+ if (options.hasKey("bearing")) {
223
+ when (options.getType("bearing")) {
224
+ ReadableType.Number ->
225
+ builder.bearing(options.getDouble("bearing"))
226
+ ReadableType.Null ->
227
+ builder.bearing(null)
228
+ else -> {
229
+ Logger.e(
230
+ LOG_TAG,
231
+ "bearing in viewport options should be either constant number or null"
232
+ )
233
+ null
234
+ }
235
+ }
236
+ }
237
+
238
+ if (options.hasKey("pitch")) {
239
+ if (options.isNull("pitch")) {
240
+ builder.pitch(null)
241
+ } else {
242
+ options.getAndLogIfNotDouble("pitch", LOG_TAG)?.let {pitch ->
243
+ builder.pitch(pitch)
244
+ }
245
+ }
246
+ }
247
+
248
+ if (options.hasKey("animationDuration")) {
249
+ if (!options.isNull("animationDuration")) {
250
+ options.getAndLogIfNotDouble("zoom", LOG_TAG)?.let { duration ->
251
+ builder.animationDurationMs((duration * 1000.0).toLong())
252
+ }
253
+ }
254
+ }
255
+
256
+ if (options.hasKey("geometry")) {
257
+ options.getAndLogIfNotMap("geometry")?.let {map ->
258
+ map.toGeometry()?.let { geometry ->
259
+ builder.geometry(geometry)
260
+ }
261
+ }
262
+ }
201
263
  }
264
+
202
265
  return builder.build()
203
266
  }
204
267
 
@@ -215,6 +278,10 @@ mContext
215
278
  return builder.build()
216
279
  }
217
280
 
281
+ private fun toGeometry(geometry: ReadableMap): Geometry? {
282
+ return geometry.toGeometry()
283
+ }
284
+
218
285
  private fun toTransition(viewport: ViewportPlugin, state: ReadableMap?): ViewportTransition? {
219
286
  viewport.idle()
220
287
  return when (val kind = state?.getAndLogIfNotString("kind", LOG_TAG)) {
@@ -7,6 +7,9 @@ import android.graphics.Bitmap
7
7
  import android.graphics.BitmapFactory
8
8
  import android.graphics.drawable.BitmapDrawable
9
9
  import android.graphics.drawable.Drawable
10
+ import com.facebook.react.bridge.ColorPropConverter
11
+ import com.facebook.react.bridge.ReadableMap
12
+ import com.facebook.react.bridge.ReadableType
10
13
  import com.mapbox.android.core.permissions.PermissionsManager
11
14
  import com.mapbox.bindgen.Value
12
15
  import com.mapbox.maps.Image
@@ -14,6 +17,7 @@ import com.mapbox.maps.MapView
14
17
  import com.mapbox.maps.MapboxMap
15
18
  import com.mapbox.maps.Style
16
19
  import com.mapbox.maps.plugin.LocationPuck2D
20
+ import com.mapbox.maps.plugin.locationcomponent.LocationComponentConstants
17
21
  import com.mapbox.maps.plugin.locationcomponent.location
18
22
  import com.mapbox.maps.plugin.locationcomponent.R as LR
19
23
  import com.rnmapbox.rnmbx.R
@@ -26,6 +30,8 @@ import com.rnmapbox.rnmbx.components.mapview.OnMapReadyCallback
26
30
  import com.rnmapbox.rnmbx.components.mapview.RNMBXMapView
27
31
  import com.rnmapbox.rnmbx.utils.BitmapUtils
28
32
  import com.rnmapbox.rnmbx.utils.Logger
33
+ import com.rnmapbox.rnmbx.utils.extensions.getAndLogIfNotBoolean
34
+ import com.rnmapbox.rnmbx.utils.extensions.getAndLogIfNotString
29
35
  import com.rnmapbox.rnmbx.v11compat.image.AppCompatResourcesV11
30
36
  import com.rnmapbox.rnmbx.v11compat.image.ImageHolder
31
37
  import com.rnmapbox.rnmbx.v11compat.image.toDrawable
@@ -85,6 +91,12 @@ class RNMBXNativeUserLocation(context: Context) : AbstractMapFeature(context), O
85
91
  _apply()
86
92
  }
87
93
 
94
+ var pulsing: ReadableMap? = null
95
+ set(value) {
96
+ field = value
97
+ _apply()
98
+ }
99
+
88
100
  private fun imageNameUpdated(image: PuckImagePart, name: String?) {
89
101
  if (name != null) {
90
102
  imageNames[image] = name
@@ -153,6 +165,41 @@ class RNMBXNativeUserLocation(context: Context) : AbstractMapFeature(context), O
153
165
  this.puckBearingEnabled?.let {
154
166
  location2.puckBearingEnabled = it
155
167
  }
168
+
169
+ pulsing?.let { pulsing ->
170
+ pulsing.getAndLogIfNotString("kind")?.also { kind ->
171
+ if (kind == "default") {
172
+ location2.pulsingEnabled = true
173
+ }
174
+ }
175
+ if (pulsing.hasKey("color")) {
176
+ when (pulsing.getType("color")) {
177
+ ReadableType.Map ->
178
+ location2.pulsingColor = ColorPropConverter.getColor(pulsing.getMap("color"), mContext)
179
+ ReadableType.Number ->
180
+ location2.pulsingColor = pulsing.getInt("color")
181
+ else ->
182
+ Logger.e(LOG_TAG, "pusling.color should be either a map or a number, but was ${pulsing.getDynamic("color")}")
183
+ }
184
+ }
185
+ pulsing.getAndLogIfNotBoolean("isEnabled")?.let { enabled ->
186
+ location2.pulsingEnabled = enabled
187
+ }
188
+ if (pulsing.hasKey("radius")) {
189
+ when (pulsing.getType("radius")) {
190
+ ReadableType.Number ->
191
+ location2.pulsingMaxRadius = pulsing.getDouble("radius").toFloat()
192
+ ReadableType.String ->
193
+ if (pulsing.getString("radius") == "accuracy") {
194
+ location2.pulsingMaxRadius = LocationComponentConstants.PULSING_MAX_RADIUS_FOLLOW_ACCURACY
195
+ } else {
196
+ Logger.e(LOG_TAG, "Expected pulsing/radius to be a number or accuracy but was ${pulsing.getString("radius")}")
197
+ }
198
+ else ->
199
+ Logger.e(LOG_TAG, "Expected pulsing/radius to be a number or accuracy but was ${pulsing.getString("radius")}")
200
+ }
201
+ }
202
+ }
156
203
  }
157
204
 
158
205
  override fun addToMap(mapView: RNMBXMapView) {
@@ -229,6 +276,10 @@ class RNMBXNativeUserLocation(context: Context) : AbstractMapFeature(context), O
229
276
  }
230
277
  }
231
278
  // endregion
279
+
280
+ companion object {
281
+ const val LOG_TAG = "RNMBXNativeUserLocation"
282
+ }
232
283
  }
233
284
 
234
285
  fun makeDefaultLocationPuck2D(context: Context, renderMode: RenderMode): LocationPuck2D {
@@ -1,6 +1,7 @@
1
1
  package com.rnmapbox.rnmbx.components.location
2
2
 
3
3
  import com.facebook.react.bridge.Dynamic
4
+ import com.facebook.react.bridge.ReadableMap
4
5
  import com.facebook.react.bridge.ReadableType
5
6
  import com.facebook.react.uimanager.ThemedReactContext
6
7
  import com.facebook.react.uimanager.ViewGroupManager
@@ -82,6 +83,13 @@ class RNMBXNativeUserLocationManager : ViewGroupManager<RNMBXNativeUserLocation>
82
83
  view.visible = value
83
84
  }
84
85
 
86
+ @ReactProp(name = "pulsing")
87
+ override fun setPulsing(view: RNMBXNativeUserLocation, value: Dynamic) {
88
+ if (!value.isNull) {
89
+ view.pulsing = value.asMap()
90
+ }
91
+ }
92
+
85
93
  @Nonnull
86
94
  override fun createViewInstance(@Nonnull reactContext: ThemedReactContext): RNMBXNativeUserLocation {
87
95
  return RNMBXNativeUserLocation(reactContext)
@@ -5,6 +5,16 @@ import com.facebook.react.bridge.ReadableType
5
5
  import com.google.gson.JsonArray
6
6
  import com.google.gson.JsonElement
7
7
  import com.google.gson.JsonObject
8
+ import com.mapbox.geojson.Feature
9
+ import com.mapbox.geojson.FeatureCollection
10
+ import com.mapbox.geojson.Geometry
11
+ import com.mapbox.geojson.GeometryCollection
12
+ import com.mapbox.geojson.LineString
13
+ import com.mapbox.geojson.MultiLineString
14
+ import com.mapbox.geojson.MultiPoint
15
+ import com.mapbox.geojson.MultiPolygon
16
+ import com.mapbox.geojson.Point
17
+ import com.mapbox.geojson.Polygon
8
18
  import com.mapbox.maps.EdgeInsets
9
19
  import com.rnmapbox.rnmbx.utils.ConvertUtils
10
20
  import com.rnmapbox.rnmbx.utils.Logger
@@ -103,7 +113,29 @@ fun ReadableMap.toJsonObject() : JsonObject {
103
113
  return result
104
114
  }
105
115
 
106
- fun ReadableMap.toPadding(tag: String = "RNMBXReadableMap"): EdgeInsets? {
116
+ fun ReadableMap.toJson(): String {
117
+ return toJsonObject().toString()
118
+ }
119
+ fun ReadableMap.toGeometry(): Geometry?
120
+ {
121
+ return getAndLogIfNotString("type")?.let {kind ->
122
+ return when (kind) {
123
+ "geometrycollection", "GeometryCollection" -> GeometryCollection.fromJson(this.toJson())
124
+ "point", "Point" -> Point.fromJson(this.toJson())
125
+ "multipoint", "MultiPoint" -> MultiPoint.fromJson(this.toJson())
126
+ "polygon", "Polygon" -> Polygon.fromJson(this.toJson())
127
+ "multipolygon", "MultiPolygon" -> MultiPolygon.fromJson(this.toJson())
128
+ "linestring", "LineString" -> LineString.fromJson(this.toJson())
129
+ "mulilinestring", "MultilineString" -> MultiLineString.fromJson(this.toJson())
130
+ else -> {
131
+ Logger.e("ReadableMap.toGeometry", "Unexpected geometry kind: $kind")
132
+ null
133
+ }
134
+ }
135
+ }
136
+ }
137
+
138
+ fun ReadableMap.toPadding(tag: String = "RNMBXReadableMap", density: Float): EdgeInsets? {
107
139
  var top: Double = 0.0
108
140
  var bottom: Double = 0.0
109
141
  var left: Double = 0.0
@@ -111,19 +143,19 @@ fun ReadableMap.toPadding(tag: String = "RNMBXReadableMap"): EdgeInsets? {
111
143
  var empty = true
112
144
 
113
145
  getAndLogIfNotDouble("top", tag)?.let {
114
- top = it
146
+ top = it * density.toDouble()
115
147
  empty = false
116
148
  }
117
149
  getAndLogIfNotDouble("bottom", tag)?.let {
118
- bottom = it
150
+ bottom = it * density.toDouble()
119
151
  empty = false
120
152
  }
121
153
  getAndLogIfNotDouble("left", tag)?.let {
122
- left = it
154
+ left = it * density.toDouble()
123
155
  empty = false
124
156
  }
125
157
  getAndLogIfNotDouble("right", tag)?.let {
126
- right = it
158
+ right = it * density.toDouble()
127
159
  empty = false
128
160
  }
129
161
  if (empty) {
@@ -46,6 +46,9 @@ public class RNMBXNativeUserLocationManagerDelegate<T extends View, U extends Ba
46
46
  case "visible":
47
47
  mViewManager.setVisible(view, value == null ? false : (boolean) value);
48
48
  break;
49
+ case "pulsing":
50
+ mViewManager.setPulsing(view, new DynamicFromObject(value));
51
+ break;
49
52
  default:
50
53
  super.setProperty(view, propName, value);
51
54
  }
@@ -21,4 +21,5 @@ public interface RNMBXNativeUserLocationManagerInterface<T extends View> {
21
21
  void setTopImage(T view, Dynamic value);
22
22
  void setScale(T view, Dynamic value);
23
23
  void setVisible(T view, boolean value);
24
+ void setPulsing(T view, Dynamic value);
24
25
  }
@@ -14,28 +14,34 @@ BOOL RNMBXPropConvert_Optional_BOOL(const folly::dynamic &dyn, NSString* propert
14
14
  NSString* RNMBXPropConvert_Optional_NSString(const folly::dynamic &dyn, NSString* propertyName);
15
15
  id RNMBXPropConvert_Optional_ExpressionDouble(const folly::dynamic &dyn, NSString* propertyName);
16
16
  BOOL RNMBXPropConvert_BOOL(const folly::dynamic &dyn, NSString* propertyName);
17
+ NSDictionary* RNMBXPropConvert_Optional_NSDictionary(const folly::dynamic &dyn, NSString* propertyName);
17
18
 
18
- #define RNMBX_OPTIONAL_RPOP_BOOL_NSNumber(name) \
19
+ #define RNMBX_OPTIONAL_PROP_BOOL_NSNumber(name) \
19
20
  if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
20
21
  _view.name = RNMBXPropConvert_Optional_BOOL_NSNumber(newViewProps.name, @#name); \
21
22
  }
22
23
 
23
- #define RNMBX_OPTIONAL_RPOP_BOOL(name) \
24
+ #define RNMBX_OPTIONAL_PROP_BOOL(name) \
24
25
  if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
25
26
  _view.name = RNMBXPropConvert_Optional_BOOL(newViewProps.name, @#name); \
26
27
  }
27
28
 
28
- #define RNMBX_OPTIONAL_RPOP_NSString(name) \
29
+ #define RNMBX_OPTIONAL_PROP_NSString(name) \
29
30
  if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
30
31
  _view.name = RNMBXPropConvert_Optional_NSString(newViewProps.name, @#name); \
31
32
  }
32
33
 
33
- #define RNMBX_OPTIONAL_RPOP_ExpressionDouble(name) \
34
+ #define RNMBX_OPTIONAL_PROP_ExpressionDouble(name) \
34
35
  if ((!oldProps.get() || oldViewProps.name != newViewProps.name) && !newViewProps.name.isNull()) { \
35
36
  _view.name = RNMBXPropConvert_Optional_ExpressionDouble(newViewProps.name, @#name); \
36
37
  }
37
38
 
38
- #define RNMBX_RPOP_BOOL(name) \
39
+ #define RNMBX_PROP_BOOL(name) \
39
40
  if ((!oldProps.get() || oldViewProps.name != newViewProps.name)) { \
40
41
  _view.name = RNMBXPropConvert_BOOL(newViewProps.name, @#name); \
41
42
  }
43
+
44
+ #define RNMBX_OPTIONAL_PROP_NSDictionary(name) \
45
+ if ((!oldProps.get() || oldViewProps.name != newViewProps.name)) { \
46
+ _view.name = RNMBXPropConvert_Optional_NSDictionary(newViewProps.name, @#name); \
47
+ }
@@ -128,4 +128,9 @@ id RNMBXPropConvert_Optional_ExpressionDouble(const folly::dynamic &dyn, NSStrin
128
128
  }
129
129
  }
130
130
 
131
+ NSDictionary* RNMBXPropConvert_Optional_NSDictionary(const folly::dynamic &dyn, NSString* propertyName)
132
+ {
133
+ return RNMBXPropConvert_ID(dyn);
134
+ }
135
+
131
136
  #endif
@@ -18,7 +18,7 @@ public class RNMBXInteractiveElement : UIView, RNMBXMapComponent {
18
18
  @objc public var id: String! = nil {
19
19
  willSet {
20
20
  if id != nil && newValue != id {
21
- Logger.log(level:.warn, message: "Changing id from: \(optional: id) to \(optional: newValue), changing of id is supported")
21
+ Logger.log(level:.warn, message: "Changing id from: \(optional: id) to \(optional: newValue), changing of id is not supported")
22
22
  if let map = map { removeFromMap(map, reason: .ComponentChange) }
23
23
  }
24
24
  }
@@ -76,6 +76,9 @@ public class RNMBXNativeUserLocation: UIView, RNMBXMapComponent {
76
76
 
77
77
  @objc
78
78
  public var puckBearingEnabled: Bool = false
79
+
80
+ @objc
81
+ public var pulsing: NSDictionary? = nil
79
82
 
80
83
  @objc
81
84
  override public func didSetProps(_ props: [String]) {
@@ -151,20 +154,7 @@ public class RNMBXNativeUserLocation: UIView, RNMBXMapComponent {
151
154
  return
152
155
  }
153
156
 
154
- if (visible) {
155
- if images.isEmpty {
156
- location.options.puckType = .puck2D(.makeDefault(showBearing: puckBearingEnabled))
157
- } else {
158
- location.options.puckType = .puck2D(
159
- Puck2DConfiguration(
160
- topImage: self.images[.top],
161
- bearingImage: self.images[.bearing],
162
- shadowImage: self.images[.shadow],
163
- scale: toDoubleValue(value: scale, name: "scale")
164
- )
165
- )
166
- }
167
- } else {
157
+ if (!visible) {
168
158
  let emptyImage = UIGraphicsImageRenderer(size: CGSize(width: 1, height: 1)).image { _ in }
169
159
  location.options.puckType = .puck2D(
170
160
  Puck2DConfiguration(
@@ -174,9 +164,50 @@ public class RNMBXNativeUserLocation: UIView, RNMBXMapComponent {
174
164
  scale: Value.constant(1.0)
175
165
  )
176
166
  )
167
+ return
168
+ } else {
169
+ var configuration : Puck2DConfiguration = images.isEmpty ?
170
+ .makeDefault(showBearing: puckBearingEnabled) : Puck2DConfiguration(
171
+ topImage: self.images[.top],
172
+ bearingImage: self.images[.bearing],
173
+ shadowImage: self.images[.shadow])
174
+
175
+ if let scale = toDoubleValue(value: scale, name: "scale") {
176
+ configuration.scale = scale
177
+ }
178
+
179
+ if let pulsing = pulsing {
180
+ if let kind = pulsing["kind"] as? String, kind == "default" {
181
+ configuration.pulsing = .default
182
+ } else {
183
+ var pulsingConfig = Puck2DConfiguration.Pulsing()
184
+ if let isEnabled = pulsing["isEnabled"] as? Bool {
185
+ pulsingConfig.isEnabled = isEnabled
186
+ }
187
+
188
+ if let radius = pulsing["radius"] as? String {
189
+ if radius == "accuracy" {
190
+ pulsingConfig.radius = .accuracy
191
+ } else {
192
+ Logger.log(level: .error, message: "expected pulsing/radius to be either a number or accuracy but was \(radius)")
193
+ }
194
+ } else if let radius = pulsing["radius"] as? NSNumber {
195
+ pulsingConfig.radius = .constant(radius.doubleValue)
196
+ }
197
+
198
+ if let color = pulsing["color"] as? Any {
199
+ if let uicolor = RCTConvert.uiColor(color) {
200
+ pulsingConfig.color = uicolor
201
+ } else {
202
+ Logger.log(level: .error, message: "expected color to be a color but was \(color)")
203
+ }
204
+ }
205
+
206
+ configuration.pulsing = pulsingConfig
207
+ }
208
+ }
209
+ location.options.puckType = .puck2D(configuration)
177
210
  }
178
-
179
-
180
211
  location.options.puckBearingEnabled = puckBearingEnabled
181
212
  if let puckBearing = _puckBearing {
182
213
  location.options.puckBearing = puckBearing
@@ -57,13 +57,14 @@ using namespace facebook::react;
57
57
  const auto &oldViewProps = static_cast<const RNMBXNativeUserLocationProps &>(*oldProps);
58
58
  const auto &newViewProps = static_cast<const RNMBXNativeUserLocationProps &>(*props);
59
59
 
60
- RNMBX_OPTIONAL_RPOP_NSString(puckBearing)
61
- RNMBX_OPTIONAL_RPOP_BOOL(puckBearingEnabled)
62
- RNMBX_OPTIONAL_RPOP_NSString(bearingImage)
63
- RNMBX_OPTIONAL_RPOP_NSString(shadowImage)
64
- RNMBX_OPTIONAL_RPOP_NSString(topImage)
65
- RNMBX_OPTIONAL_RPOP_ExpressionDouble(scale)
66
- RNMBX_RPOP_BOOL(visible)
60
+ RNMBX_OPTIONAL_PROP_NSString(puckBearing)
61
+ RNMBX_OPTIONAL_PROP_BOOL(puckBearingEnabled)
62
+ RNMBX_OPTIONAL_PROP_NSString(bearingImage)
63
+ RNMBX_OPTIONAL_PROP_NSString(shadowImage)
64
+ RNMBX_OPTIONAL_PROP_NSString(topImage)
65
+ RNMBX_OPTIONAL_PROP_ExpressionDouble(scale)
66
+ RNMBX_PROP_BOOL(visible)
67
+ RNMBX_OPTIONAL_PROP_NSDictionary(pulsing)
67
68
 
68
69
  [super updateProps:props oldProps:oldProps];
69
70
 
@@ -11,6 +11,7 @@ RCT_EXPORT_VIEW_PROPERTY(scale, NSArray);
11
11
  RCT_EXPORT_VIEW_PROPERTY(visible, BOOL);
12
12
  RCT_EXPORT_VIEW_PROPERTY(puckBearing, NSString);
13
13
  RCT_EXPORT_VIEW_PROPERTY(puckBearingEnabled, BOOL);
14
+ RCT_EXPORT_VIEW_PROPERTY(pulsing, NSDictionary);
14
15
 
15
16
  @end
16
17
 
@@ -162,8 +162,13 @@ open class RNMBXViewport : UIView, RNMBXMapComponent, ViewportStatusObserver {
162
162
  return viewport.makeFollowPuckViewportState(options:
163
163
  parseFollowViewportOptions(state)
164
164
  )
165
- // case "overview":
166
- // viewport.makeOverviewViewportState(options: )
165
+ case "overview":
166
+ if let options = parseOverviewViewportOptions(state) {
167
+ return viewport.makeOverviewViewportState(options: options)
168
+ } else {
169
+ Logger.log(level:.error, message: "Cannot parse overview options")
170
+ return nil
171
+ }
167
172
  default:
168
173
  Logger.log(level:.error, message: "unexpected state kind: \(kind)")
169
174
  return nil
@@ -181,7 +186,7 @@ open class RNMBXViewport : UIView, RNMBXMapComponent, ViewportStatusObserver {
181
186
  Logger.log(level: .error, message: "parseFollowViewportOptions expected zoom to be number or 'keep', but was \(options["zoom"])")
182
187
  }
183
188
 
184
- if let pitch = options["pitch"] as? String, (pitch == "pitch") {
189
+ if let pitch = options["pitch"] as? String, (pitch == "keep") {
185
190
  result.pitch = nil
186
191
  } else if let pitch = options["pitch"] as? Double {
187
192
  result.pitch = pitch
@@ -218,6 +223,57 @@ open class RNMBXViewport : UIView, RNMBXMapComponent, ViewportStatusObserver {
218
223
  return result
219
224
  }
220
225
 
226
+ func parseOverviewViewportOptions(_ state: [String:Any]) -> OverviewViewportStateOptions? {
227
+ guard let options = state["options"] as? [String:Any] else {
228
+ return nil
229
+ }
230
+ guard let geometry = options["geometry"], let geometry = toGeometry(geometry) else {
231
+ return nil
232
+ }
233
+
234
+ var result = OverviewViewportStateOptions(geometry: geometry)
235
+
236
+ if let padding = options["padding"] as? [String: NSNumber] {
237
+ result.padding = toPadding(padding)
238
+ } else if (options["padding"] != nil) {
239
+ Logger.log(level: .error, message: "padding expected to be an object or nil or but was \(options["padding"])")
240
+ }
241
+
242
+ if options["bearing"] == nil {
243
+ result.bearing = (CLLocationDirection?)(nil)
244
+ } else if let bearing = options["bearing"] as? NSNumber {
245
+ result.bearing = bearing.doubleValue
246
+ } else if options["bearing"] != nil {
247
+ Logger.log(level: .error, message: "bearing expected to be a number or nil but was \(options["bearing"])")
248
+ }
249
+
250
+ if options["pitch"] == nil {
251
+ result.pitch = (CGFloat?)(nil)
252
+ } else if let pitch = options["pitch"] as? Double {
253
+ result.pitch = pitch
254
+ } else if options["pitch"] != nil{
255
+ Logger.log(level: .error, message: "parseOverviewViewportOptions expected pitch to be number or nil, but was \(options["pitch"])")
256
+ }
257
+
258
+ if let animationDuration = options["animationDuration"] as? Double {
259
+ result.animationDuration = animationDuration
260
+ } else if let animationDuration = options["animationDuration"] as? NSNumber {
261
+ result.animationDuration = animationDuration.doubleValue
262
+ } else if options["animationDuration"] != nil {
263
+ Logger.log(level: .error, message: "parseOverviewViewportOptions expected animationDuration to be a number or nil but was \(options["animationDuration"])")
264
+ }
265
+
266
+ return result
267
+ }
268
+
269
+ func toGeometry(_ geometry: Any) -> GeometryConvertible? {
270
+ return logged("toGeometry") {
271
+ let jsonData = try JSONSerialization.data(withJSONObject: geometry)
272
+ let geometry = try JSONDecoder().decode(Geometry.self, from: jsonData)
273
+ return geometry
274
+ }
275
+ }
276
+
221
277
  func toTransition(_ from: [String: Any], _ viewport: ViewportManager?) -> ViewportTransition? {
222
278
  guard let viewport = viewport else {
223
279
  Logger.log(level:.error, message: "no viewport")
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
8
9
  var _RNMBXNativeUserLocationNativeComponent = _interopRequireDefault(require("../specs/RNMBXNativeUserLocationNativeComponent"));
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -15,10 +16,13 @@ const defaultProps = {
15
16
  const NativeUserLocation = /*#__PURE__*/(0, _react.memo)(props => {
16
17
  const {
17
18
  iosShowsUserHeadingIndicator,
19
+ pulsing,
18
20
  ...rest
19
21
  } = props;
22
+ const nativePulsing = pulsing ? _pulsingToNative(pulsing) : undefined;
20
23
  let baseProps = {
21
- ...defaultProps
24
+ ...defaultProps,
25
+ pulsing: nativePulsing
22
26
  };
23
27
  if (iosShowsUserHeadingIndicator) {
24
28
  console.warn('NativeUserLocation: iosShowsUserHeadingIndicator is deprecated, use puckBearingEnabled={true} puckBearing="heading" instead');
@@ -34,5 +38,25 @@ const NativeUserLocation = /*#__PURE__*/(0, _react.memo)(props => {
34
38
  };
35
39
  return /*#__PURE__*/_react.default.createElement(_RNMBXNativeUserLocationNativeComponent.default, actualProps);
36
40
  });
41
+ function _pulsingToNative(pulsing) {
42
+ if (pulsing === 'default') {
43
+ return {
44
+ kind: 'default'
45
+ };
46
+ }
47
+ if (pulsing == null) {
48
+ return undefined;
49
+ }
50
+ const {
51
+ color,
52
+ isEnabled,
53
+ radius
54
+ } = pulsing;
55
+ return {
56
+ color: (0, _reactNative.processColor)(color),
57
+ isEnabled,
58
+ radius
59
+ };
60
+ }
37
61
  var _default = exports.default = NativeUserLocation;
38
62
  //# sourceMappingURL=NativeUserLocation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_RNMBXNativeUserLocationNativeComponent","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","defaultProps","visible","NativeUserLocation","memo","props","iosShowsUserHeadingIndicator","rest","baseProps","console","warn","puckBearingEnabled","puckBearing","actualProps","createElement","_default","exports"],"sourceRoot":"../../../src","sources":["components/NativeUserLocation.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,uCAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEyD,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAsEzD,MAAMY,YAAY,GAAG;EACnBC,OAAO,EAAE;AACX,CAAU;AAEV,MAAMC,kBAAkB,gBAAG,IAAAC,WAAI,EAAEC,KAAY,IAAK;EAChD,MAAM;IAAEC,4BAA4B;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EACvD,IAAIG,SAAsB,GAAG;IAAE,GAAGP;EAAa,CAAC;EAChD,IAAIK,4BAA4B,EAAE;IAChCG,OAAO,CAACC,IAAI,CACV,6HACF,CAAC;IACDF,SAAS,GAAG;MACV,GAAGA,SAAS;MACZG,kBAAkB,EAAE,IAAI;MACxBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,MAAMC,WAAW,GAAG;IAAE,GAAGL,SAAS;IAAE,GAAGD;EAAK,CAAC;EAC7C,oBAAOjC,MAAA,CAAAO,OAAA,CAAAiC,aAAA,CAACrC,uCAAA,CAAAI,OAAuB,EAAKgC,WAAc,CAAC;AACrD,CAAC,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAnC,OAAA,GAEYsB,kBAAkB"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_RNMBXNativeUserLocationNativeComponent","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","defaultProps","visible","NativeUserLocation","memo","props","iosShowsUserHeadingIndicator","pulsing","rest","nativePulsing","_pulsingToNative","undefined","baseProps","console","warn","puckBearingEnabled","puckBearing","actualProps","createElement","kind","color","isEnabled","radius","processColor","_default","exports"],"sourceRoot":"../../../src","sources":["components/NativeUserLocation.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_RNMBXViewportNativeComponent","_interopRequireDefault","_NativeRNMBXViewportModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","Viewport","exports","memo","forwardRef","props","ref","commands","useMemo","NativeCommands","RNMBXViewportModule","nativeViewport","useRef","useEffect","current","setNativeRef","useImperativeHandle","getState","console","log","idle","transitionTo","state","transition","onStatusChangedNative","propsOnStatusChanged","onStatusChanged","event","nativeEvent","payload","undefined","createElement","RNMBXViewport","hasStatusChanged","NativeViewport","constructor","module","preRefMethodQueue","nativeRef","item","pop","method","resolver","res","_call","name","args","Promise","resolve","push","handle","findNodeHandle","Error","String"],"sourceRoot":"../../../src","sources":["components/Viewport.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_RNMBXViewportNativeComponent","_interopRequireDefault","_NativeRNMBXViewportModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","Viewport","exports","memo","forwardRef","props","ref","commands","useMemo","NativeCommands","RNMBXViewportModule","nativeViewport","useRef","useEffect","current","setNativeRef","useImperativeHandle","getState","console","log","idle","transitionTo","state","transition","onStatusChangedNative","propsOnStatusChanged","onStatusChanged","event","nativeEvent","payload","undefined","createElement","RNMBXViewport","hasStatusChanged","NativeViewport","constructor","module","preRefMethodQueue","nativeRef","item","pop","method","resolver","res","_call","name","args","Promise","resolve","push","handle","findNodeHandle","Error","String"],"sourceRoot":"../../../src","sources":["components/Viewport.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AASA,IAAAC,YAAA,GAAAD,OAAA;AAOA,IAAAE,6BAAA,GAAAC,sBAAA,CAAAH,OAAA;AAIA,IAAAI,0BAAA,GAAAD,sBAAA,CAAAH,OAAA;AAAqE,SAAAG,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAAA,SAAAY,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAM,SAAA,CAAAC,MAAA,EAAAP,CAAA,UAAAQ,MAAA,GAAAF,SAAA,CAAAN,CAAA,YAAAS,GAAA,IAAAD,MAAA,QAAAf,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAuJrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMK,QAAQ,GAAAC,OAAA,CAAAD,QAAA,gBAAG,IAAAE,WAAI,gBAC1B,IAAAC,iBAAU,EAAa,CAACC,KAAY,EAAEC,GAA4B,KAAK;EACrE,MAAMC,QAAQ,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAIC,cAAc,CAACC,kCAAmB,CAAC,EAAE,EAAE,CAAC;EAC3E,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAuB,IAAI,CAAC;EACzD,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIF,cAAc,CAACG,OAAO,EAAE;MAC1BP,QAAQ,CAACQ,YAAY,CAACJ,cAAc,CAACG,OAAO,CAAC;IAC/C;IACA;EACF,CAAC,EAAE,CAACP,QAAQ,EAAEI,cAAc,CAACG,OAAO,CAAC,CAAC;EAEtC,IAAAE,0BAAmB,EAACV,GAAG,EAAE,OAAO;IAC9BW,QAAQA,CAAA,EAAG;MACTC,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC;MACnC,OAAOZ,QAAQ,CAAClB,IAAI,CAAS,UAAU,EAAE,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM+B,IAAIA,CAAA,EAAG;MACX,OAAOb,QAAQ,CAAClB,IAAI,CAAO,MAAM,EAAE,EAAE,CAAC;IACxC,CAAC;IACDgC,YAAYA,CAACC,KAAK,EAAEC,UAAU,EAAE;MAC9B,OAAOhB,QAAQ,CAAClB,IAAI,CAAU,cAAc,EAAE,CAACiC,KAAK,EAAEC,UAAU,CAAC,CAAC;IACpE;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,qBAAqB,GAAG,IAAAhB,cAAO,EAAC,MAAM;IAC1C,MAAMiB,oBAAoB,GAAGpB,KAAK,CAACqB,eAAe;IAClD,IAAID,oBAAoB,IAAI,IAAI,EAAE;MAChC,OAAQE,KAAyD,IAAK;QACpEF,oBAAoB,CAACE,KAAK,CAACC,WAAW,CAACC,OAAO,CAAC;MACjD,CAAC;IACH,CAAC,MAAM;MACL,OAAOC,SAAS;IAClB;EACF,CAAC,EAAE,CAACzB,KAAK,CAACqB,eAAe,CAAC,CAAC;EAE3B,oBACE/D,MAAA,CAAAS,OAAA,CAAA2D,aAAA,CAACC,aAAa,EAAAxC,QAAA,KACRa,KAAK;IACT4B,gBAAgB,EAAE5B,KAAK,CAACqB,eAAe,IAAI,IAAK;IAChDA,eAAe,EAAEF,qBAAsB;IACvClB,GAAG,EAAEK;EAAe,EACrB,CAAC;AAEN,CAAC,CACH,CAAC;AAeD,MAAMqB,aAAa,GAAGE,qCAAoC;AAqB1D,MAAMzB,cAAc,CAAsB;EAUxC0B,WAAWA,CAACC,MAAY,EAAE;IACxB,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,iBAAiB,GAAG,EAAE;EAC7B;EAEA,MAAMtB,YAAYA,CAACuB,SAAkB,EAAE;IACrC,IAAIA,SAAS,EAAE;MACb,IAAI,CAACA,SAAS,GAAGA,SAAS;MAC1B,OAAO,IAAI,CAACD,iBAAiB,CAACxC,MAAM,GAAG,CAAC,EAAE;QACxC,MAAM0C,IAAI,GAAG,IAAI,CAACF,iBAAiB,CAACG,GAAG,CAAC,CAAC;QAEzC,IAAID,IAAI,IAAIA,IAAI,CAACE,MAAM,IAAIF,IAAI,CAACG,QAAQ,EAAE;UACxC,MAAMC,GAAG,GAAG,MAAM,IAAI,CAACC,KAAK,CAC1BL,IAAI,CAACE,MAAM,CAACI,IAAI,EAChBP,SAAS,EACTC,IAAI,CAACE,MAAM,CAACK,IACd,CAAC;UACDP,IAAI,CAACG,QAAQ,CAACC,GAAG,CAAC;QACpB;MACF;IACF;EACF;EAEAtD,IAAIA,CAAIwD,IAAwB,EAAEC,IAAiB,EAAc;IAC/D,IAAI,IAAI,CAACR,SAAS,EAAE;MAClB,OAAO,IAAI,CAACM,KAAK,CAACC,IAAI,EAAE,IAAI,CAACP,SAAS,EAAEQ,IAAI,CAAC;IAC/C,CAAC,MAAM;MACL,OAAO,IAAIC,OAAO,CAAEC,OAAO,IAAK;QAC9B,IAAI,CAACX,iBAAiB,CAACY,IAAI,CAAC;UAC1BR,MAAM,EAAE;YAAEI,IAAI;YAAEC;UAAK,CAAC;UACtBJ,QAAQ,EAAEM;QACZ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EACF;EAEAJ,KAAKA,CACHC,IAAwB,EACxBP,SAAkB,EAClBQ,IAAiB,EACL;IACZ,MAAMI,MAAM,GAAG,IAAAC,2BAAc,EAACb,SAAS,CAAC;IACxC,IAAIY,MAAM,EAAE;MACV,OACE,IAAI,CAACd,MAAM,CAACS,IAAI,CAAC,CAIjBK,MAAM,EAAE,GAAGJ,IAAI,CAAC;IACpB,CAAC,MAAM;MACL,MAAM,IAAIM,KAAK,CACZ,wCAAuChB,MAAO,0BAAyBiB,MAAM,CAC5ER,IACF,CAAE,EACJ,CAAC;IACH;EACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/RNMBXNativeUserLocationNativeComponent.ts"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAQ7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAce,IAAAG,+BAAsB,EACnC,yBACF,CAAC"}
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","obj","__esModule","default","_default","exports","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/RNMBXNativeUserLocationNativeComponent.ts"],"mappings":";;;;;;AAKA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAQ7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAuBe,IAAAG,+BAAsB,EACnC,yBACF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React, { memo } from 'react';
2
+ import { processColor } from 'react-native';
2
3
  import RNMBXNativeUserLocation from '../specs/RNMBXNativeUserLocationNativeComponent';
3
4
  const defaultProps = {
4
5
  visible: true
@@ -6,10 +7,13 @@ const defaultProps = {
6
7
  const NativeUserLocation = /*#__PURE__*/memo(props => {
7
8
  const {
8
9
  iosShowsUserHeadingIndicator,
10
+ pulsing,
9
11
  ...rest
10
12
  } = props;
13
+ const nativePulsing = pulsing ? _pulsingToNative(pulsing) : undefined;
11
14
  let baseProps = {
12
- ...defaultProps
15
+ ...defaultProps,
16
+ pulsing: nativePulsing
13
17
  };
14
18
  if (iosShowsUserHeadingIndicator) {
15
19
  console.warn('NativeUserLocation: iosShowsUserHeadingIndicator is deprecated, use puckBearingEnabled={true} puckBearing="heading" instead');
@@ -25,5 +29,25 @@ const NativeUserLocation = /*#__PURE__*/memo(props => {
25
29
  };
26
30
  return /*#__PURE__*/React.createElement(RNMBXNativeUserLocation, actualProps);
27
31
  });
32
+ function _pulsingToNative(pulsing) {
33
+ if (pulsing === 'default') {
34
+ return {
35
+ kind: 'default'
36
+ };
37
+ }
38
+ if (pulsing == null) {
39
+ return undefined;
40
+ }
41
+ const {
42
+ color,
43
+ isEnabled,
44
+ radius
45
+ } = pulsing;
46
+ return {
47
+ color: processColor(color),
48
+ isEnabled,
49
+ radius
50
+ };
51
+ }
28
52
  export default NativeUserLocation;
29
53
  //# sourceMappingURL=NativeUserLocation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","RNMBXNativeUserLocation","defaultProps","visible","NativeUserLocation","props","iosShowsUserHeadingIndicator","rest","baseProps","console","warn","puckBearingEnabled","puckBearing","actualProps","createElement"],"sourceRoot":"../../../src","sources":["components/NativeUserLocation.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AAEnC,OAAOC,uBAAuB,MAEvB,iDAAiD;AAsExD,MAAMC,YAAY,GAAG;EACnBC,OAAO,EAAE;AACX,CAAU;AAEV,MAAMC,kBAAkB,gBAAGJ,IAAI,CAAEK,KAAY,IAAK;EAChD,MAAM;IAAEC,4BAA4B;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EACvD,IAAIG,SAAsB,GAAG;IAAE,GAAGN;EAAa,CAAC;EAChD,IAAII,4BAA4B,EAAE;IAChCG,OAAO,CAACC,IAAI,CACV,6HACF,CAAC;IACDF,SAAS,GAAG;MACV,GAAGA,SAAS;MACZG,kBAAkB,EAAE,IAAI;MACxBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,MAAMC,WAAW,GAAG;IAAE,GAAGL,SAAS;IAAE,GAAGD;EAAK,CAAC;EAC7C,oBAAOR,KAAA,CAAAe,aAAA,CAACb,uBAAuB,EAAKY,WAAc,CAAC;AACrD,CAAC,CAAC;AAEF,eAAeT,kBAAkB"}
1
+ {"version":3,"names":["React","memo","processColor","RNMBXNativeUserLocation","defaultProps","visible","NativeUserLocation","props","iosShowsUserHeadingIndicator","pulsing","rest","nativePulsing","_pulsingToNative","undefined","baseProps","console","warn","puckBearingEnabled","puckBearing","actualProps","createElement","kind","color","isEnabled","radius"],"sourceRoot":"../../../src","sources":["components/NativeUserLocation.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,YAAY,QAAyB,cAAc;AAE5D,OAAOC,uBAAuB,MAEvB,iDAAiD;AA8FxD,MAAMC,YAAY,GAAG;EACnBC,OAAO,EAAE;AACX,CAAU;AAEV,MAAMC,kBAAkB,gBAAGL,IAAI,CAAEM,KAAY,IAAK;EAChD,MAAM;IAAEC,4BAA4B;IAAEC,OAAO;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAChE,MAAMI,aAAa,GAAGF,OAAO,GAAGG,gBAAgB,CAACH,OAAO,CAAC,GAAGI,SAAS;EACrE,IAAIC,SAAsB,GAAG;IAAE,GAAGV,YAAY;IAAEK,OAAO,EAAEE;EAAc,CAAC;EACxE,IAAIH,4BAA4B,EAAE;IAChCO,OAAO,CAACC,IAAI,CACV,6HACF,CAAC;IAEDF,SAAS,GAAG;MACV,GAAGA,SAAS;MACZG,kBAAkB,EAAE,IAAI;MACxBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,MAAMC,WAAW,GAAG;IAAE,GAAGL,SAAS;IAAE,GAAGJ;EAAK,CAAC;EAC7C,oBAAOV,KAAA,CAAAoB,aAAA,CAACjB,uBAAuB,EAAKgB,WAAc,CAAC;AACrD,CAAC,CAAC;AAEF,SAASP,gBAAgBA,CACvBH,OAAyB,EACW;EACpC,IAAIA,OAAO,KAAK,SAAS,EAAE;IACzB,OAAO;MAAEY,IAAI,EAAE;IAAU,CAAC;EAC5B;EACA,IAAIZ,OAAO,IAAI,IAAI,EAAE;IACnB,OAAOI,SAAS;EAClB;EACA,MAAM;IAAES,KAAK;IAAEC,SAAS;IAAEC;EAAO,CAAC,GAAGf,OAAO;EAC5C,OAAO;IACLa,KAAK,EAAEpB,YAAY,CAACoB,KAAK,CAAC;IAC1BC,SAAS;IACTC;EACF,CAAC;AACH;AAEA,eAAelB,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","memo","useEffect","useImperativeHandle","useMemo","useRef","findNodeHandle","NativeViewport","RNMBXViewportModule","Viewport","props","ref","commands","NativeCommands","nativeViewport","current","setNativeRef","getState","console","log","call","idle","transitionTo","state","transition","onStatusChangedNative","propsOnStatusChanged","onStatusChanged","event","nativeEvent","payload","undefined","createElement","RNMBXViewport","_extends","hasStatusChanged","constructor","module","preRefMethodQueue","nativeRef","length","item","pop","method","resolver","res","_call","name","args","Promise","resolve","push","handle","Error","String"],"sourceRoot":"../../../src","sources":["components/Viewport.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","forwardRef","memo","useEffect","useImperativeHandle","useMemo","useRef","findNodeHandle","NativeViewport","RNMBXViewportModule","Viewport","props","ref","commands","NativeCommands","nativeViewport","current","setNativeRef","getState","console","log","call","idle","transitionTo","state","transition","onStatusChangedNative","propsOnStatusChanged","onStatusChanged","event","nativeEvent","payload","undefined","createElement","RNMBXViewport","_extends","hasStatusChanged","constructor","module","preRefMethodQueue","nativeRef","length","item","pop","method","resolver","res","_call","name","args","Promise","resolve","push","handle","Error","String"],"sourceRoot":"../../../src","sources":["components/Viewport.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/RNMBXNativeUserLocationNativeComponent.ts"],"mappings":"AACA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAQ5F;;AAcA,eAAeA,sBAAsB,CACnC,yBACF,CAAC"}
1
+ {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/RNMBXNativeUserLocationNativeComponent.ts"],"mappings":"AAKA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAQ5F;;AAuBA,eAAeA,sBAAsB,CACnC,yBACF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { type ColorValue } from 'react-native';
2
3
  import type { Expression } from '../utils/MapboxStyles';
3
4
  declare type Value<T> = T | Expression;
4
5
  export declare type Props = {
@@ -52,6 +53,25 @@ export declare type Props = {
52
53
  * 2.0
53
54
  */
54
55
  scale?: Value<number>;
56
+ /**
57
+ * The configration parameters for sonar-like pulsing circle animation shown around the 2D puck.
58
+ */
59
+ pulsing?: {
60
+ /**
61
+ * Flag determining whether the pulsing circle animation.
62
+ */
63
+ isEnabled?: boolean;
64
+ /**
65
+ * The color of the pulsing circle.
66
+ */
67
+ color?: number | ColorValue;
68
+ /**
69
+ * Circle radius configuration for the pulsing circle animation.
70
+ * - accuracy: Pulsing circle animates with the `horizontalAccuracy` form the latest puck location.
71
+ * - number: Pulsing circle should animate with the constant radius.
72
+ */
73
+ radius?: 'accuracy' | number;
74
+ } | 'default';
55
75
  /**
56
76
  * Whether location icon is visible, defaults to true
57
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"NativeUserLocation.d.ts","sourceRoot":"","sources":["../../../../src/components/NativeUserLocation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAKpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,aAAK,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAE/B,oBAAY,KAAK,GAAG;IAClB;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IAEjD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAEnC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAMF,QAAA,MAAM,kBAAkB,oCAAgB,KAAK,uBAe3C,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"NativeUserLocation.d.ts","sourceRoot":"","sources":["../../../../src/components/NativeUserLocation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAK7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,aAAK,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAE/B,oBAAY,KAAK,GAAG;IAClB;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IAEjD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAEnC;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EACJ;QACE;;WAEG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;QAE5B;;;;WAIG;QACH,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;KAC9B,GACD,SAAS,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAMF,QAAA,MAAM,kBAAkB,oCAAgB,KAAK,uBAiB3C,CAAC;AAmBH,eAAe,kBAAkB,CAAC"}
@@ -35,11 +35,42 @@ declare type FollowPuckOptions = {
35
35
  right?: number;
36
36
  } | 'keep';
37
37
  };
38
+ declare type OverviewOptions = {
39
+ /**
40
+ * The geometry that the ``OverviewViewportState`` should use when calculating its camera.
41
+ */
42
+ geometry: GeoJSON.Geometry;
43
+ /**
44
+ * The padding that ``OverviewViewportState`` should use when calculating its camera.
45
+ *
46
+ * @default 0 padding
47
+ */
48
+ padding?: {
49
+ top?: number;
50
+ left?: number;
51
+ bottom?: number;
52
+ right?: number;
53
+ };
54
+ /**
55
+ * The bearing that ``OverviewViewportState`` should use when calcualting its camera.
56
+ */
57
+ bearing?: number;
58
+ /**
59
+ * The pitch that ``OverviewViewportState`` should use when calculating its camera.
60
+ */
61
+ pitch?: number;
62
+ /**
63
+ * The length of the animation performed by in seconds ``OverviewViewportState`` when it starts updating
64
+ * the camera.
65
+ */
66
+ animationDuration?: number;
67
+ };
38
68
  declare type ViewportState = {
39
69
  kind: 'followPuck';
40
70
  options?: FollowPuckOptions;
41
71
  } | {
42
72
  kind: 'overview';
73
+ options?: OverviewOptions;
43
74
  };
44
75
  declare type ViewportStatus = {
45
76
  kind: 'idle';
@@ -100,6 +131,6 @@ export declare const Viewport: React.MemoExoticComponent<React.ForwardRefExoticC
100
131
  export declare type Viewport = Ref;
101
132
  export declare type NativeArg = string | number | boolean | null | {
102
133
  [k: string]: NativeArg;
103
- } | NativeArg[] | Function | undefined;
134
+ } | NativeArg[] | Function | GeoJSON.Geometry | undefined;
104
135
  export {};
105
136
  //# sourceMappingURL=Viewport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../src/components/Viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,aAAK,iBAAiB,GAAG;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD;;;;OAIG;IACH,OAAO,CAAC,EACJ;QACE,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACD,MAAM,CAAC;CACZ,CAAC;AAEF,aAAK,aAAa,GACd;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEN,aAAK,cAAc,GACf;IACE,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEN,aAAK,kBAAkB,GACnB;IACE,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEN,aAAK,0BAA0B,GAC3B,mBAAmB,GACnB,qBAAqB,GACrB,eAAe,GACf,iBAAiB,CAAC;AAEtB,aAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,0BAA0B,CAAC;CACpC,CAAC;AAEF,aAAK,KAAK,GAAG;IACX;;;;;;OAMG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAE/C;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;CAC/D,CAAC;AAEF,MAAM,WAAW,GAAG;IAClB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,YAAY,CACV,KAAK,EAAE,aAAa,EACpB,UAAU,CAAC,EAAE,kBAAkB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,8FA4CpB,CAAC;AACF,oBAAY,QAAQ,GAAG,GAAG,CAAC;AAgB3B,oBAAY,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1B,SAAS,EAAE,GAEX,QAAQ,GACR,SAAS,CAAC"}
1
+ {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../src/components/Viewport.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
- import type { HostComponent, ViewProps } from 'react-native';
1
+ import type { HostComponent, ProcessedColorValue, ViewProps } from 'react-native';
2
2
  import type { Expression } from '../utils/MapboxStyles';
3
3
  import { UnsafeMixed } from './codegenUtils';
4
4
  declare type Value<T> = T | Expression;
5
5
  declare type OptionalProp<T> = UnsafeMixed<T>;
6
+ declare type Pulsing = {
7
+ isEnabled?: boolean;
8
+ radius?: 'accuracy' | number;
9
+ color?: ProcessedColorValue | null | undefined;
10
+ } | {
11
+ kind: 'default';
12
+ };
6
13
  export interface NativeProps extends ViewProps {
7
14
  androidRenderMode?: OptionalProp<string>;
8
15
  puckBearing?: OptionalProp<'heading' | 'course'>;
@@ -12,6 +19,7 @@ export interface NativeProps extends ViewProps {
12
19
  topImage?: OptionalProp<string>;
13
20
  scale?: UnsafeMixed<Value<number>>;
14
21
  visible?: boolean;
22
+ pulsing?: UnsafeMixed<Pulsing>;
15
23
  }
16
24
  declare const _default: HostComponent<NativeProps>;
17
25
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"RNMBXNativeUserLocationNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/specs/RNMBXNativeUserLocationNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,aAAK,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAG/B,aAAK,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,iBAAiB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;;AAED,wBAEgC"}
1
+ {"version":3,"file":"RNMBXNativeUserLocationNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/specs/RNMBXNativeUserLocationNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,SAAS,EACV,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,aAAK,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;AAG/B,aAAK,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAEtC,aAAK,OAAO,GACR;IACE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;CAChD,GACD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,iBAAiB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAChC;;AAED,wBAEgC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rnmapbox/maps",
3
3
  "description": "A Mapbox react native module for creating custom maps",
4
- "version": "10.1.0-beta.23",
4
+ "version": "10.1.0-beta.24",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -1,4 +1,5 @@
1
1
  import React, { memo } from 'react';
2
+ import { processColor, type ColorValue } from 'react-native';
2
3
 
3
4
  import RNMBXNativeUserLocation, {
4
5
  type NativeProps,
@@ -66,6 +67,30 @@ export type Props = {
66
67
  */
67
68
  scale?: Value<number>;
68
69
 
70
+ /**
71
+ * The configration parameters for sonar-like pulsing circle animation shown around the 2D puck.
72
+ */
73
+ pulsing?:
74
+ | {
75
+ /**
76
+ * Flag determining whether the pulsing circle animation.
77
+ */
78
+ isEnabled?: boolean;
79
+
80
+ /**
81
+ * The color of the pulsing circle.
82
+ */
83
+ color?: number | ColorValue;
84
+
85
+ /**
86
+ * Circle radius configuration for the pulsing circle animation.
87
+ * - accuracy: Pulsing circle animates with the `horizontalAccuracy` form the latest puck location.
88
+ * - number: Pulsing circle should animate with the constant radius.
89
+ */
90
+ radius?: 'accuracy' | number;
91
+ }
92
+ | 'default';
93
+
69
94
  /**
70
95
  * Whether location icon is visible, defaults to true
71
96
  */
@@ -77,12 +102,14 @@ const defaultProps = {
77
102
  } as const;
78
103
 
79
104
  const NativeUserLocation = memo((props: Props) => {
80
- const { iosShowsUserHeadingIndicator, ...rest } = props;
81
- let baseProps: NativeProps = { ...defaultProps };
105
+ const { iosShowsUserHeadingIndicator, pulsing, ...rest } = props;
106
+ const nativePulsing = pulsing ? _pulsingToNative(pulsing) : undefined;
107
+ let baseProps: NativeProps = { ...defaultProps, pulsing: nativePulsing };
82
108
  if (iosShowsUserHeadingIndicator) {
83
109
  console.warn(
84
110
  'NativeUserLocation: iosShowsUserHeadingIndicator is deprecated, use puckBearingEnabled={true} puckBearing="heading" instead',
85
111
  );
112
+
86
113
  baseProps = {
87
114
  ...baseProps,
88
115
  puckBearingEnabled: true,
@@ -93,4 +120,21 @@ const NativeUserLocation = memo((props: Props) => {
93
120
  return <RNMBXNativeUserLocation {...actualProps} />;
94
121
  });
95
122
 
123
+ function _pulsingToNative(
124
+ pulsing: Props['pulsing'],
125
+ ): NativeProps['pulsing'] | undefined {
126
+ if (pulsing === 'default') {
127
+ return { kind: 'default' };
128
+ }
129
+ if (pulsing == null) {
130
+ return undefined;
131
+ }
132
+ const { color, isEnabled, radius } = pulsing;
133
+ return {
134
+ color: processColor(color),
135
+ isEnabled,
136
+ radius,
137
+ };
138
+ }
139
+
96
140
  export default NativeUserLocation;
@@ -62,6 +62,41 @@ type FollowPuckOptions = {
62
62
  | 'keep';
63
63
  };
64
64
 
65
+ type OverviewOptions = {
66
+ /**
67
+ * The geometry that the ``OverviewViewportState`` should use when calculating its camera.
68
+ */
69
+ geometry: GeoJSON.Geometry;
70
+
71
+ /**
72
+ * The padding that ``OverviewViewportState`` should use when calculating its camera.
73
+ *
74
+ * @default 0 padding
75
+ */
76
+ padding?: {
77
+ top?: number;
78
+ left?: number;
79
+ bottom?: number;
80
+ right?: number;
81
+ };
82
+
83
+ /**
84
+ * The bearing that ``OverviewViewportState`` should use when calcualting its camera.
85
+ */
86
+ bearing?: number;
87
+
88
+ /**
89
+ * The pitch that ``OverviewViewportState`` should use when calculating its camera.
90
+ */
91
+ pitch?: number;
92
+
93
+ /**
94
+ * The length of the animation performed by in seconds ``OverviewViewportState`` when it starts updating
95
+ * the camera.
96
+ */
97
+ animationDuration?: number;
98
+ };
99
+
65
100
  type ViewportState =
66
101
  | {
67
102
  kind: 'followPuck';
@@ -69,6 +104,7 @@ type ViewportState =
69
104
  }
70
105
  | {
71
106
  kind: 'overview';
107
+ options?: OverviewOptions;
72
108
  };
73
109
 
74
110
  type ViewportStatus =
@@ -214,6 +250,7 @@ export type NativeArg =
214
250
  | NativeArg[]
215
251
  // eslint-disable-next-line @typescript-eslint/ban-types
216
252
  | Function
253
+ | GeoJSON.Geometry
217
254
  | undefined;
218
255
 
219
256
  type FunctionKeys<T> = keyof {
@@ -1,4 +1,8 @@
1
- import type { HostComponent, ViewProps } from 'react-native';
1
+ import type {
2
+ HostComponent,
3
+ ProcessedColorValue,
4
+ ViewProps,
5
+ } from 'react-native';
2
6
  import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
3
7
 
4
8
  import type { Expression } from '../utils/MapboxStyles';
@@ -10,6 +14,14 @@ type Value<T> = T | Expression;
10
14
  // see https://github.com/rnmapbox/maps/wiki/FabricOptionalProp
11
15
  type OptionalProp<T> = UnsafeMixed<T>;
12
16
 
17
+ type Pulsing =
18
+ | {
19
+ isEnabled?: boolean;
20
+ radius?: 'accuracy' | number;
21
+ color?: ProcessedColorValue | null | undefined;
22
+ }
23
+ | { kind: 'default' };
24
+
13
25
  export interface NativeProps extends ViewProps {
14
26
  androidRenderMode?: OptionalProp<string>;
15
27
  puckBearing?: OptionalProp<'heading' | 'course'>;
@@ -19,6 +31,7 @@ export interface NativeProps extends ViewProps {
19
31
  topImage?: OptionalProp<string>;
20
32
  scale?: UnsafeMixed<Value<number>>;
21
33
  visible?: boolean;
34
+ pulsing?: UnsafeMixed<Pulsing>;
22
35
  }
23
36
 
24
37
  export default codegenNativeComponent<NativeProps>(