@lugg/maps 0.2.0-alpha.12 → 0.2.0-alpha.14

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.
@@ -54,8 +54,8 @@ class LuggGoogleMapView(private val reactContext: ThemedReactContext) :
54
54
  private var isMapReady = false
55
55
  private var isDragging = false
56
56
  private var mapId: String = DEMO_MAP_ID
57
- private val pendingMarkerViews = mutableListOf<LuggMarkerView>()
58
- private val pendingPolylineViews = mutableListOf<LuggPolylineView>()
57
+ private val pendingMarkerViews = mutableSetOf<LuggMarkerView>()
58
+ private val pendingPolylineViews = mutableSetOf<LuggPolylineView>()
59
59
  private val polylineAnimators = mutableMapOf<LuggPolylineView, PolylineAnimator>()
60
60
 
61
61
  // Initial camera settings
@@ -236,9 +236,7 @@ class LuggGoogleMapView(private val reactContext: ThemedReactContext) :
236
236
 
237
237
  override fun markerViewDidLayout(markerView: LuggMarkerView) {
238
238
  if (googleMap == null) {
239
- if (!pendingMarkerViews.contains(markerView)) {
240
- pendingMarkerViews.add(markerView)
241
- }
239
+ pendingMarkerViews.add(markerView)
242
240
  return
243
241
  }
244
242
 
@@ -261,9 +259,7 @@ class LuggGoogleMapView(private val reactContext: ThemedReactContext) :
261
259
 
262
260
  private fun syncMarkerView(markerView: LuggMarkerView) {
263
261
  if (googleMap == null) {
264
- if (!pendingMarkerViews.contains(markerView)) {
265
- pendingMarkerViews.add(markerView)
266
- }
262
+ pendingMarkerViews.add(markerView)
267
263
  return
268
264
  }
269
265
 
@@ -326,9 +322,7 @@ class LuggGoogleMapView(private val reactContext: ThemedReactContext) :
326
322
 
327
323
  private fun syncPolylineView(polylineView: LuggPolylineView) {
328
324
  if (googleMap == null) {
329
- if (!pendingPolylineViews.contains(polylineView)) {
330
- pendingPolylineViews.add(polylineView)
331
- }
325
+ pendingPolylineViews.add(polylineView)
332
326
  return
333
327
  }
334
328
 
@@ -26,14 +26,14 @@ class LuggMapWrapperView(context: ThemedReactContext) : ReactViewGroup(context)
26
26
  bottom: Int
27
27
  ) {
28
28
  super.onLayout(changed, left, top, right, bottom)
29
- val width = right - left
30
- val height = bottom - top
29
+ val w = right - left
30
+ val h = bottom - top
31
31
  getChildAt(0)?.let {
32
32
  it.measure(
33
- MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
34
- MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
33
+ MeasureSpec.makeMeasureSpec(w, MeasureSpec.EXACTLY),
34
+ MeasureSpec.makeMeasureSpec(h, MeasureSpec.EXACTLY)
35
35
  )
36
- it.layout(0, 0, width, height)
36
+ it.layout(0, 0, w, h)
37
37
  }
38
38
  }
39
39
  }
@@ -40,6 +40,10 @@ class PolylineAnimator {
40
40
  private var cumulativeDistances: FloatArray = floatArrayOf()
41
41
  private var totalLength: Float = 0f
42
42
 
43
+ // Reusable collections to avoid per-frame allocations
44
+ private val reusablePoints = ArrayList<LatLng>()
45
+ private val reusableSpans = ArrayList<StyleSpan>()
46
+
43
47
  fun update() {
44
48
  if (animated) return
45
49
 
@@ -97,12 +101,19 @@ class PolylineAnimator {
97
101
  }
98
102
 
99
103
  private fun indexForDistance(distance: Float): Int {
100
- for (i in 1 until cumulativeDistances.size) {
101
- if (cumulativeDistances[i] >= distance) {
102
- return i - 1
104
+ var left = 0
105
+ var right = cumulativeDistances.size - 1
106
+
107
+ while (left < right) {
108
+ val mid = (left + right + 1) / 2
109
+ if (cumulativeDistances[mid] <= distance) {
110
+ left = mid
111
+ } else {
112
+ right = mid - 1
103
113
  }
104
114
  }
105
- return (cumulativeDistances.size - 2).coerceAtLeast(0)
115
+
116
+ return left.coerceAtMost(cumulativeDistances.size - 2).coerceAtLeast(0)
106
117
  }
107
118
 
108
119
  private fun coordinateAtDistance(distance: Float): LatLng {
@@ -118,6 +129,9 @@ class PolylineAnimator {
118
129
  val c1 = coordinates[idx]
119
130
  val c2 = coordinates[idx + 1]
120
131
 
132
+ // Reuse existing coordinate if no interpolation needed
133
+ if (t == 0f) return c1
134
+
121
135
  return LatLng(
122
136
  c1.latitude + (c2.latitude - c1.latitude) * t,
123
137
  c1.longitude + (c2.longitude - c1.longitude) * t
@@ -160,31 +174,32 @@ class PolylineAnimator {
160
174
  val startIndex = indexForDistance(tailDist)
161
175
  val endIndex = indexForDistance(headDist)
162
176
 
163
- val points = mutableListOf<LatLng>()
164
- val spans = mutableListOf<StyleSpan>()
177
+ reusablePoints.clear()
178
+ reusableSpans.clear()
165
179
 
166
- points.add(coordinateAtDistance(tailDist))
180
+ reusablePoints.add(coordinateAtDistance(tailDist))
167
181
 
168
182
  for (i in (startIndex + 1)..endIndex) {
169
- points.add(coordinates[i])
183
+ reusablePoints.add(coordinates[i])
170
184
  }
171
185
 
172
186
  val endCoord = coordinateAtDistance(headDist)
173
- val lastAdded = points.lastOrNull()
187
+ val lastAdded = reusablePoints.lastOrNull()
174
188
  if (lastAdded == null || endCoord.latitude != lastAdded.latitude || endCoord.longitude != lastAdded.longitude) {
175
- points.add(endCoord)
189
+ reusablePoints.add(endCoord)
176
190
  }
177
191
 
178
- for (i in 0 until (points.size - 1)) {
179
- val segMidDist = tailDist + visibleLength * (i + 0.5f) / (points.size - 1)
192
+ val pointCount = reusablePoints.size
193
+ for (i in 0 until (pointCount - 1)) {
194
+ val segMidDist = tailDist + visibleLength * (i + 0.5f) / (pointCount - 1)
180
195
  val gradientPos = (segMidDist - tailDist) / visibleLength
181
196
  val color = colorAtGradientPosition(gradientPos)
182
- spans.add(StyleSpan(StrokeStyle.colorBuilder(color).build()))
197
+ reusableSpans.add(StyleSpan(StrokeStyle.colorBuilder(color).build()))
183
198
  }
184
199
 
185
- poly.points = points
186
- if (spans.isNotEmpty()) {
187
- poly.setSpans(spans)
200
+ poly.points = reusablePoints
201
+ if (reusableSpans.isNotEmpty()) {
202
+ poly.setSpans(reusableSpans)
188
203
  }
189
204
  }
190
205
 
@@ -44,6 +44,7 @@ using namespace luggmaps::events;
44
44
  BOOL _isDragging;
45
45
  double _minZoom;
46
46
  double _maxZoom;
47
+ NSMapTable<id<MKOverlay>, LuggPolylineView *> *_overlayToPolylineMap;
47
48
  }
48
49
 
49
50
  + (ComponentDescriptorProvider)componentDescriptorProvider {
@@ -56,6 +57,7 @@ using namespace luggmaps::events;
56
57
  static const auto defaultProps =
57
58
  std::make_shared<const LuggAppleMapViewProps>();
58
59
  _props = defaultProps;
60
+ _overlayToPolylineMap = [NSMapTable strongToWeakObjectsMapTable];
59
61
  }
60
62
 
61
63
  return self;
@@ -111,6 +113,7 @@ using namespace luggmaps::events;
111
113
  polylineView.delegate = nil;
112
114
  MKPolyline *polyline = (MKPolyline *)polylineView.polyline;
113
115
  if (polyline) {
116
+ [_overlayToPolylineMap removeObjectForKey:polyline];
114
117
  [_mapView removeOverlay:polyline];
115
118
  polylineView.polyline = nil;
116
119
  }
@@ -302,6 +305,7 @@ using namespace luggmaps::events;
302
305
  free(coords);
303
306
 
304
307
  polylineView.polyline = polyline;
308
+ [_overlayToPolylineMap setObject:polylineView forKey:polyline];
305
309
  [self insertOverlay:polyline withZIndex:polylineView.zIndex];
306
310
  }
307
311
 
@@ -320,6 +324,7 @@ using namespace luggmaps::events;
320
324
  renderer.animated = NO;
321
325
  }
322
326
  if (oldPolyline) {
327
+ [_overlayToPolylineMap removeObjectForKey:oldPolyline];
323
328
  [_mapView removeOverlay:oldPolyline];
324
329
  polylineView.polyline = nil;
325
330
  polylineView.renderer = nil;
@@ -337,9 +342,11 @@ using namespace luggmaps::events;
337
342
  free(coords);
338
343
 
339
344
  polylineView.polyline = newPolyline;
345
+ [_overlayToPolylineMap setObject:polylineView forKey:newPolyline];
340
346
 
341
347
  // If we have an existing renderer, update it in place
342
348
  if (renderer && oldPolyline) {
349
+ [_overlayToPolylineMap removeObjectForKey:oldPolyline];
343
350
  [_mapView removeOverlay:oldPolyline];
344
351
  [self insertOverlay:newPolyline withZIndex:polylineView.zIndex];
345
352
  [renderer updatePolyline:newPolyline];
@@ -353,6 +360,7 @@ using namespace luggmaps::events;
353
360
 
354
361
  // Otherwise do full add
355
362
  if (oldPolyline) {
363
+ [_overlayToPolylineMap removeObjectForKey:oldPolyline];
356
364
  [_mapView removeOverlay:oldPolyline];
357
365
  }
358
366
  [self insertOverlay:newPolyline withZIndex:polylineView.zIndex];
@@ -380,15 +388,7 @@ using namespace luggmaps::events;
380
388
  }
381
389
 
382
390
  - (LuggPolylineView *)findPolylineViewForOverlay:(id<MKOverlay>)overlay {
383
- for (UIView *subview in self.subviews) {
384
- if ([subview isKindOfClass:[LuggPolylineView class]]) {
385
- LuggPolylineView *polylineView = (LuggPolylineView *)subview;
386
- if (polylineView.polyline == overlay) {
387
- return polylineView;
388
- }
389
- }
390
- }
391
- return nil;
391
+ return [_overlayToPolylineMap objectForKey:overlay];
392
392
  }
393
393
 
394
394
  #pragma mark - MarkerViewDelegate
@@ -1,8 +1,34 @@
1
1
  #import "GMSPolylineAnimator.h"
2
2
  #import <QuartzCore/QuartzCore.h>
3
3
 
4
+ @interface GMSDisplayLinkProxy : NSObject
5
+ @property(nonatomic, weak) id target;
6
+ @property(nonatomic, assign) SEL selector;
7
+ @end
8
+
9
+ @implementation GMSDisplayLinkProxy
10
+ - (instancetype)initWithTarget:(id)target selector:(SEL)selector {
11
+ if (self = [super init]) {
12
+ _target = target;
13
+ _selector = selector;
14
+ }
15
+ return self;
16
+ }
17
+ - (void)tick:(CADisplayLink *)displayLink {
18
+ if (_target) {
19
+ #pragma clang diagnostic push
20
+ #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
21
+ [_target performSelector:_selector withObject:displayLink];
22
+ #pragma clang diagnostic pop
23
+ } else {
24
+ [displayLink invalidate];
25
+ }
26
+ }
27
+ @end
28
+
4
29
  @implementation GMSPolylineAnimator {
5
30
  CADisplayLink *_displayLink;
31
+ GMSDisplayLinkProxy *_displayLinkProxy;
6
32
  CGFloat _animationProgress;
7
33
  NSArray<NSNumber *> *_cumulativeDistances;
8
34
  CGFloat _totalLength;
@@ -39,7 +65,8 @@
39
65
  }
40
66
  [self computeCumulativeDistances];
41
67
  _animationProgress = 0;
42
- _displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animationTick:)];
68
+ _displayLinkProxy = [[GMSDisplayLinkProxy alloc] initWithTarget:self selector:@selector(animationTick:)];
69
+ _displayLink = [CADisplayLink displayLinkWithTarget:_displayLinkProxy selector:@selector(tick:)];
43
70
  [_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
44
71
  }
45
72
 
@@ -62,6 +89,7 @@
62
89
  - (void)stopAnimation {
63
90
  [_displayLink invalidate];
64
91
  _displayLink = nil;
92
+ _displayLinkProxy = nil;
65
93
  }
66
94
 
67
95
  - (void)animationTick:(CADisplayLink *)displayLink {
@@ -98,12 +126,19 @@
98
126
  }
99
127
 
100
128
  - (NSUInteger)indexForDistance:(CGFloat)distance {
101
- for (NSUInteger i = 1; i < _cumulativeDistances.count; i++) {
102
- if (_cumulativeDistances[i].doubleValue >= distance) {
103
- return i - 1;
129
+ NSUInteger left = 0;
130
+ NSUInteger right = _cumulativeDistances.count - 1;
131
+
132
+ while (left < right) {
133
+ NSUInteger mid = (left + right + 1) / 2;
134
+ if (_cumulativeDistances[mid].doubleValue <= distance) {
135
+ left = mid;
136
+ } else {
137
+ right = mid - 1;
104
138
  }
105
139
  }
106
- return _cumulativeDistances.count - 2;
140
+
141
+ return MIN(left, _cumulativeDistances.count - 2);
107
142
  }
108
143
 
109
144
  - (CLLocationCoordinate2D)coordinateAtDistance:(CGFloat)distance {
@@ -1,12 +1,39 @@
1
1
  #import "MKPolylineAnimator.h"
2
2
  #import <QuartzCore/QuartzCore.h>
3
3
 
4
+ @interface MKDisplayLinkProxy : NSObject
5
+ @property(nonatomic, weak) id target;
6
+ @property(nonatomic, assign) SEL selector;
7
+ @end
8
+
9
+ @implementation MKDisplayLinkProxy
10
+ - (instancetype)initWithTarget:(id)target selector:(SEL)selector {
11
+ if (self = [super init]) {
12
+ _target = target;
13
+ _selector = selector;
14
+ }
15
+ return self;
16
+ }
17
+ - (void)tick:(CADisplayLink *)displayLink {
18
+ if (_target) {
19
+ #pragma clang diagnostic push
20
+ #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
21
+ [_target performSelector:_selector withObject:displayLink];
22
+ #pragma clang diagnostic pop
23
+ } else {
24
+ [displayLink invalidate];
25
+ }
26
+ }
27
+ @end
28
+
4
29
  @implementation MKPolylineAnimator {
5
30
  MKPolyline *_polyline;
6
31
  CADisplayLink *_displayLink;
32
+ MKDisplayLinkProxy *_displayLinkProxy;
7
33
  CGFloat _animationProgress;
8
34
  NSArray<NSNumber *> *_cumulativeDistances;
9
35
  CGFloat _totalLength;
36
+ CGColorSpaceRef _colorSpace;
10
37
  }
11
38
 
12
39
  - (id)initWithPolyline:(MKPolyline *)polyline {
@@ -14,6 +41,7 @@
14
41
  if (self) {
15
42
  _polyline = polyline;
16
43
  _animationProgress = 0;
44
+ _colorSpace = CGColorSpaceCreateDeviceRGB();
17
45
  [self createPath];
18
46
  }
19
47
  return self;
@@ -21,6 +49,10 @@
21
49
 
22
50
  - (void)dealloc {
23
51
  [self stopAnimation];
52
+ if (_colorSpace) {
53
+ CGColorSpaceRelease(_colorSpace);
54
+ _colorSpace = NULL;
55
+ }
24
56
  }
25
57
 
26
58
  - (void)setAnimated:(BOOL)animated {
@@ -42,7 +74,8 @@
42
74
  }
43
75
  [self computeCumulativeDistances];
44
76
  _animationProgress = 0;
45
- _displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animationTick:)];
77
+ _displayLinkProxy = [[MKDisplayLinkProxy alloc] initWithTarget:self selector:@selector(animationTick:)];
78
+ _displayLink = [CADisplayLink displayLinkWithTarget:_displayLinkProxy selector:@selector(tick:)];
46
79
  [_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
47
80
  }
48
81
 
@@ -65,15 +98,23 @@
65
98
  - (void)stopAnimation {
66
99
  [_displayLink invalidate];
67
100
  _displayLink = nil;
101
+ _displayLinkProxy = nil;
68
102
  }
69
103
 
70
104
  - (NSUInteger)indexForDistance:(CGFloat)distance {
71
- for (NSUInteger i = 1; i < _cumulativeDistances.count; i++) {
72
- if (_cumulativeDistances[i].doubleValue >= distance) {
73
- return i - 1;
105
+ NSUInteger left = 0;
106
+ NSUInteger right = _cumulativeDistances.count - 1;
107
+
108
+ while (left < right) {
109
+ NSUInteger mid = (left + right + 1) / 2;
110
+ if (_cumulativeDistances[mid].doubleValue <= distance) {
111
+ left = mid;
112
+ } else {
113
+ right = mid - 1;
74
114
  }
75
115
  }
76
- return _cumulativeDistances.count - 2;
116
+
117
+ return MIN(left, _cumulativeDistances.count - 2);
77
118
  }
78
119
 
79
120
  - (void)animationTick:(CADisplayLink *)displayLink {
@@ -222,9 +263,8 @@
222
263
  UIColor *startColor = [self colorAtGradientPosition:gradientStart];
223
264
  UIColor *endColor = [self colorAtGradientPosition:gradientEnd];
224
265
 
225
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
226
266
  NSArray *colors = @[(__bridge id)startColor.CGColor, (__bridge id)endColor.CGColor];
227
- CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)colors, NULL);
267
+ CGGradientRef gradient = CGGradientCreateWithColors(_colorSpace, (__bridge CFArrayRef)colors, NULL);
228
268
 
229
269
  CGContextSaveGState(context);
230
270
  CGContextBeginPath(context);
@@ -237,7 +277,6 @@
237
277
 
238
278
  CGContextRestoreGState(context);
239
279
  CGGradientRelease(gradient);
240
- CGColorSpaceRelease(colorSpace);
241
280
  }
242
281
  return;
243
282
  }
@@ -254,9 +293,8 @@
254
293
  UIColor *startColor = [self colorAtGradientPosition:gradientStart];
255
294
  UIColor *endColor = [self colorAtGradientPosition:gradientEnd];
256
295
 
257
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
258
296
  NSArray *colors = @[(__bridge id)startColor.CGColor, (__bridge id)endColor.CGColor];
259
- CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)colors, NULL);
297
+ CGGradientRef gradient = CGGradientCreateWithColors(_colorSpace, (__bridge CFArrayRef)colors, NULL);
260
298
 
261
299
  CGContextSaveGState(context);
262
300
  CGContextBeginPath(context);
@@ -269,7 +307,6 @@
269
307
 
270
308
  CGContextRestoreGState(context);
271
309
  CGGradientRelease(gradient);
272
- CGColorSpaceRelease(colorSpace);
273
310
  }
274
311
  return;
275
312
  }
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ import { createContext, useContext } from 'react';
3
4
  import { APIProvider } from '@vis.gl/react-google-maps';
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const MapIdContext = /*#__PURE__*/createContext(null);
7
+ export const useMapId = () => useContext(MapIdContext);
5
8
  export function MapProvider({
6
9
  apiKey = '',
7
10
  children
@@ -1 +1 @@
1
- {"version":3,"names":["APIProvider","jsx","_jsx","MapProvider","apiKey","children"],"sourceRoot":"../../src","sources":["MapProvider.web.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGxD,OAAO,SAASC,WAAWA,CAAC;EAAEC,MAAM,GAAG,EAAE;EAAEC;AAA2B,CAAC,EAAE;EACvE,oBAAOH,IAAA,CAACF,WAAW;IAACI,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAAEA;EAAQ,CAAc,CAAC;AAC9D","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","APIProvider","jsx","_jsx","MapIdContext","useMapId","MapProvider","apiKey","children"],"sourceRoot":"../../src","sources":["MapProvider.web.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AACjD,SAASC,WAAW,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGxD,OAAO,MAAMC,YAAY,gBAAGL,aAAa,CAAgB,IAAI,CAAC;AAE9D,OAAO,MAAMM,QAAQ,GAAGA,CAAA,KAAML,UAAU,CAACI,YAAY,CAAC;AAEtD,OAAO,SAASE,WAAWA,CAAC;EAAEC,MAAM,GAAG,EAAE;EAAEC;AAA2B,CAAC,EAAE;EACvE,oBAAOL,IAAA,CAACF,WAAW;IAACM,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAAEA;EAAQ,CAAc,CAAC;AAC9D","ignoreList":[]}
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { Children, forwardRef, isValidElement, useEffect, useId, useImperativeHandle, useRef, useState } from 'react';
3
+ import { forwardRef, useEffect, useId, useImperativeHandle, useRef, useState } from 'react';
4
4
  import { View } from 'react-native';
5
5
  import { Map, useMap } from '@vis.gl/react-google-maps';
6
6
  import { Marker } from "./components/Marker.web.js";
7
- import { Polyline } from "./components/Polyline.web.js";
8
- import { MapIdContext } from "./MapIdContext.web.js";
7
+ import { MapIdContext } from "./MapProvider.web.js";
9
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- const MAP_COMPONENT_TYPES = new Set([Marker, Polyline]);
11
- const isMapComponent = child => MAP_COMPONENT_TYPES.has(child.type);
12
9
  const createSyntheticEvent = nativeEvent => ({
13
10
  nativeEvent,
14
11
  currentTarget: null,
@@ -72,7 +69,7 @@ function UserLocationMarker({
72
69
  }
73
70
  export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
74
71
  const {
75
- mapId = 'DEMO_MAP_ID',
72
+ mapId = google.maps.Map.DEMO_MAP_ID,
76
73
  initialCoordinate,
77
74
  initialZoom = 10,
78
75
  minZoom,
@@ -187,37 +184,22 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
187
184
  google.maps.event.removeListener(idleListener);
188
185
  };
189
186
  }, [map, onCameraMove, onCameraIdle]);
190
- const gestureHandling = scrollEnabled === false && zoomEnabled === false ? 'none' : scrollEnabled === false ? 'none' : 'auto';
187
+ const gestureHandling = scrollEnabled === false && zoomEnabled === false ? 'none' : scrollEnabled === false ? 'cooperative' : 'auto';
191
188
  const defaultCenter = initialCoordinate ? {
192
189
  lat: initialCoordinate.latitude,
193
190
  lng: initialCoordinate.longitude
194
191
  } : undefined;
195
- const mapChildren = [];
196
- const overlayChildren = [];
197
- Children.forEach(children, child => {
198
- if (! /*#__PURE__*/isValidElement(child)) return;
199
- if (isMapComponent(child)) {
200
- mapChildren.push(child);
201
- } else {
202
- overlayChildren.push(child);
203
- }
204
- });
205
- const mapContainerStyle = {
206
- position: 'absolute',
207
- top: padding?.top ?? 0,
208
- left: padding?.left ?? 0,
209
- right: padding?.right ?? 0,
210
- bottom: padding?.bottom ?? 0
211
- };
212
192
  const mapStyle = {
213
- width: '100%',
214
- height: '100%'
193
+ paddingTop: padding?.top ?? 0,
194
+ paddingLeft: padding?.left ?? 0,
195
+ paddingRight: padding?.right ?? 0,
196
+ paddingBottom: padding?.bottom ?? 0
215
197
  };
216
- return /*#__PURE__*/_jsxs(View, {
217
- style: style,
218
- children: [/*#__PURE__*/_jsx(View, {
219
- style: mapContainerStyle,
220
- children: /*#__PURE__*/_jsx(Map, {
198
+ return /*#__PURE__*/_jsx(MapIdContext.Provider, {
199
+ value: id,
200
+ children: /*#__PURE__*/_jsx(View, {
201
+ style: style,
202
+ children: /*#__PURE__*/_jsxs(Map, {
221
203
  id: id,
222
204
  mapId: mapId,
223
205
  defaultCenter: defaultCenter,
@@ -228,14 +210,11 @@ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
228
210
  disableDefaultUI: true,
229
211
  tilt: pitchEnabled === false ? 0 : undefined,
230
212
  style: mapStyle,
231
- children: /*#__PURE__*/_jsxs(MapIdContext.Provider, {
232
- value: id,
233
- children: [/*#__PURE__*/_jsx(UserLocationMarker, {
234
- enabled: userLocationEnabled
235
- }), mapChildren]
236
- })
213
+ children: [/*#__PURE__*/_jsx(UserLocationMarker, {
214
+ enabled: userLocationEnabled
215
+ }), children]
237
216
  })
238
- }), overlayChildren]
217
+ })
239
218
  });
240
219
  });
241
220
  //# sourceMappingURL=MapView.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Children","forwardRef","isValidElement","useEffect","useId","useImperativeHandle","useRef","useState","View","Map","useMap","Marker","Polyline","MapIdContext","jsx","_jsx","jsxs","_jsxs","MAP_COMPONENT_TYPES","Set","isMapComponent","child","has","type","createSyntheticEvent","nativeEvent","currentTarget","target","bubbles","cancelable","defaultPrevented","eventPhase","isTrusted","preventDefault","stopPropagation","isDefaultPrevented","isPropagationStopped","persist","timeStamp","Date","now","userLocationDotStyle","width","height","backgroundColor","border","borderRadius","boxShadow","UserLocationMarker","enabled","coordinate","setCoordinate","watchId","updateLocation","position","latitude","coords","longitude","navigator","geolocation","getCurrentPosition","watchPosition","clearWatch","anchor","x","y","children","style","MapView","props","ref","mapId","initialCoordinate","initialZoom","minZoom","maxZoom","zoomEnabled","scrollEnabled","pitchEnabled","padding","userLocationEnabled","onCameraMove","onCameraIdle","onReady","id","map","readyFired","moveCamera","options","zoom","duration","center","lat","lng","currentZoom","getZoom","zoomChanged","undefined","setZoom","panTo","fitCoordinates","coordinates","first","fitPadding","length","bounds","google","maps","LatLngBounds","forEach","coord","extend","fitBounds","top","left","bottom","right","current","createPayload","gesture","getCenter","isDragging","wasGesture","dragStartListener","addListener","dragEndListener","centerListener","idleListener","event","removeListener","gestureHandling","defaultCenter","mapChildren","overlayChildren","push","mapContainerStyle","mapStyle","defaultZoom","disableDefaultUI","tilt","Provider","value"],"sourceRoot":"../../src","sources":["MapView.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useEffect","useId","useImperativeHandle","useRef","useState","View","Map","useMap","Marker","MapIdContext","jsx","_jsx","jsxs","_jsxs","createSyntheticEvent","nativeEvent","currentTarget","target","bubbles","cancelable","defaultPrevented","eventPhase","isTrusted","preventDefault","stopPropagation","isDefaultPrevented","isPropagationStopped","persist","timeStamp","Date","now","type","userLocationDotStyle","width","height","backgroundColor","border","borderRadius","boxShadow","UserLocationMarker","enabled","coordinate","setCoordinate","watchId","updateLocation","position","latitude","coords","longitude","navigator","geolocation","getCurrentPosition","watchPosition","clearWatch","anchor","x","y","children","style","MapView","props","ref","mapId","google","maps","DEMO_MAP_ID","initialCoordinate","initialZoom","minZoom","maxZoom","zoomEnabled","scrollEnabled","pitchEnabled","padding","userLocationEnabled","onCameraMove","onCameraIdle","onReady","id","map","readyFired","moveCamera","options","zoom","duration","center","lat","lng","currentZoom","getZoom","zoomChanged","undefined","setZoom","panTo","fitCoordinates","coordinates","first","fitPadding","length","bounds","LatLngBounds","forEach","coord","extend","fitBounds","top","left","bottom","right","current","createPayload","gesture","getCenter","isDragging","wasGesture","dragStartListener","addListener","dragEndListener","centerListener","idleListener","event","removeListener","gestureHandling","defaultCenter","mapStyle","paddingTop","paddingLeft","paddingRight","paddingBottom","Provider","value","defaultZoom","disableDefaultUI","tilt"],"sourceRoot":"../../src","sources":["MapView.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { useMap } from '@vis.gl/react-google-maps';
5
- import { useMapId } from "../MapIdContext.web.js";
5
+ import { useMapId } from "../MapProvider.web.js";
6
6
  const ANIMATION_DURATION = 1500;
7
7
  function interpolateColor(color1, color2, t) {
8
8
  const hex = c => parseInt(c, 16);
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useMap","useMapId","ANIMATION_DURATION","interpolateColor","color1","color2","t","hex","c","parseInt","r1","slice","g1","b1","r2","g2","b2","r","Math","round","g","b","toString","padStart","getGradientColor","colors","position","length","scaledPos","index","floor","Polyline","coordinates","strokeColors","strokeWidth","animated","zIndex","resolvedZIndex","mapId","map","polylinesRef","animationRef","hasGradient","propsRef","mapReady","setMapReady","current","updatePath","path","currentMap","currentColors","currentStrokeWidth","currentHasGradient","currentZIndex","neededSegments","existing","i","segmentPath","color","segment","setPath","setOptions","strokeColor","push","google","maps","strokeWeight","strokeOpacity","setMap","polylines","cancelAnimationFrame","forEach","p","fullPath","lat","latitude","lng","longitude","totalPoints","cycleDuration","animate","time","progress","startIdx","endIdx","partialPath","startFloor","endFloor","frac","from","to","min","requestAnimationFrame"],"sourceRoot":"../../../src","sources":["components/Polyline.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","useMap","useMapId","ANIMATION_DURATION","interpolateColor","color1","color2","t","hex","c","parseInt","r1","slice","g1","b1","r2","g2","b2","r","Math","round","g","b","toString","padStart","getGradientColor","colors","position","length","scaledPos","index","floor","Polyline","coordinates","strokeColors","strokeWidth","animated","zIndex","resolvedZIndex","mapId","map","polylinesRef","animationRef","hasGradient","propsRef","mapReady","setMapReady","current","updatePath","path","currentMap","currentColors","currentStrokeWidth","currentHasGradient","currentZIndex","neededSegments","existing","i","segmentPath","color","segment","setPath","setOptions","strokeColor","push","google","maps","strokeWeight","strokeOpacity","setMap","polylines","cancelAnimationFrame","forEach","p","fullPath","lat","latitude","lng","longitude","totalPoints","cycleDuration","animate","time","progress","startIdx","endIdx","partialPath","startFloor","endFloor","frac","from","to","min","requestAnimationFrame"],"sourceRoot":"../../../src","sources":["components/Polyline.web.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SAASC,MAAM,QAAQ,2BAA2B;AAClD,SAASC,QAAQ,QAAQ,uBAAoB;AAG7C,MAAMC,kBAAkB,GAAG,IAAI;AAE/B,SAASC,gBAAgBA,CAACC,MAAc,EAAEC,MAAc,EAAEC,CAAS,EAAU;EAC3E,MAAMC,GAAG,GAAIC,CAAS,IAAKC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC;EAC1C,MAAME,EAAE,GAAGH,GAAG,CAACH,MAAM,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClC,MAAMC,EAAE,GAAGL,GAAG,CAACH,MAAM,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClC,MAAME,EAAE,GAAGN,GAAG,CAACH,MAAM,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClC,MAAMG,EAAE,GAAGP,GAAG,CAACF,MAAM,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClC,MAAMI,EAAE,GAAGR,GAAG,CAACF,MAAM,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClC,MAAMK,EAAE,GAAGT,GAAG,CAACF,MAAM,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAElC,MAAMM,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACT,EAAE,GAAG,CAACI,EAAE,GAAGJ,EAAE,IAAIJ,CAAC,CAAC;EACxC,MAAMc,CAAC,GAAGF,IAAI,CAACC,KAAK,CAACP,EAAE,GAAG,CAACG,EAAE,GAAGH,EAAE,IAAIN,CAAC,CAAC;EACxC,MAAMe,CAAC,GAAGH,IAAI,CAACC,KAAK,CAACN,EAAE,GAAG,CAACG,EAAE,GAAGH,EAAE,IAAIP,CAAC,CAAC;EAExC,OAAO,IAAIW,CAAC,CAACK,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAGH,CAAC,CAC3CE,QAAQ,CAAC,EAAE,CAAC,CACZC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAGF,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACzD;AAEA,SAASC,gBAAgBA,CAACC,MAAgB,EAAEC,QAAgB,EAAU;EACpE,IAAID,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS;EACzC,IAAIF,MAAM,CAACE,MAAM,KAAK,CAAC,IAAID,QAAQ,IAAI,CAAC,EAAE,OAAOD,MAAM,CAAC,CAAC,CAAC;EAC1D,IAAIC,QAAQ,IAAI,CAAC,EAAE,OAAOD,MAAM,CAACA,MAAM,CAACE,MAAM,GAAG,CAAC,CAAC;EAEnD,MAAMC,SAAS,GAAGF,QAAQ,IAAID,MAAM,CAACE,MAAM,GAAG,CAAC,CAAC;EAChD,MAAME,KAAK,GAAGX,IAAI,CAACY,KAAK,CAACF,SAAS,CAAC;EACnC,MAAMtB,CAAC,GAAGsB,SAAS,GAAGC,KAAK;EAE3B,OAAO1B,gBAAgB,CAACsB,MAAM,CAACI,KAAK,CAAC,EAAGJ,MAAM,CAACI,KAAK,GAAG,CAAC,CAAC,EAAGvB,CAAC,CAAC;AAChE;AAEA,OAAO,SAASyB,QAAQA,CAAC;EACvBC,WAAW;EACXC,YAAY;EACZC,WAAW,GAAG,CAAC;EACfC,QAAQ;EACRC;AACa,CAAC,EAAE;EAChB,MAAMC,cAAc,GAAGD,MAAM,KAAKD,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;EACnD,MAAMG,KAAK,GAAGrC,QAAQ,CAAC,CAAC;EACxB,MAAMsC,GAAG,GAAGvC,MAAM,CAACsC,KAAK,CAAC;EACzB,MAAME,YAAY,GAAG1C,MAAM,CAAyB,EAAE,CAAC;EACvD,MAAM2C,YAAY,GAAG3C,MAAM,CAAS,CAAC,CAAC;EAEtC,MAAM2B,MAAM,GAAG5B,OAAO,CACpB,MACEoC,YAAY,IAAIA,YAAY,CAACN,MAAM,GAAG,CAAC,GAClCM,YAAY,GACb,CAAC,SAAS,CAAC,EACjB,CAACA,YAAY,CACf,CAAC;EAED,MAAMS,WAAW,GAAGjB,MAAM,CAACE,MAAM,GAAG,CAAC;;EAErC;EACA,MAAMgB,QAAQ,GAAG7C,MAAM,CAAC;IACtByC,GAAG;IACHd,MAAM;IACNS,WAAW;IACXQ,WAAW;IACXN,MAAM,EAAEC;EACV,CAAC,CAAC;EACF,MAAM,CAACO,QAAQ,EAAEC,WAAW,CAAC,GAAG9C,QAAQ,CAAC,CAAC,CAACwC,GAAG,CAAC;EAE/C3C,SAAS,CAAC,MAAM;IACd+C,QAAQ,CAACG,OAAO,GAAG;MACjBP,GAAG;MACHd,MAAM;MACNS,WAAW;MACXQ,WAAW;MACXN,MAAM,EAAEC;IACV,CAAC;IACD,IAAIE,GAAG,IAAI,CAACK,QAAQ,EAAEC,WAAW,CAAC,IAAI,CAAC;EACzC,CAAC,EAAE,CAACN,GAAG,EAAEd,MAAM,EAAES,WAAW,EAAEQ,WAAW,EAAEL,cAAc,EAAEO,QAAQ,CAAC,CAAC;EAErE,MAAMG,UAAU,GAAGpD,WAAW,CAAEqD,IAAiC,IAAK;IACpE,MAAM;MACJT,GAAG,EAAEU,UAAU;MACfxB,MAAM,EAAEyB,aAAa;MACrBhB,WAAW,EAAEiB,kBAAkB;MAC/BT,WAAW,EAAEU,kBAAkB;MAC/BhB,MAAM,EAAEiB;IACV,CAAC,GAAGV,QAAQ,CAACG,OAAO;IACpB,IAAI,CAACG,UAAU,IAAID,IAAI,CAACrB,MAAM,GAAG,CAAC,EAAE;IAEpC,MAAM2B,cAAc,GAAGF,kBAAkB,GAAGJ,IAAI,CAACrB,MAAM,GAAG,CAAC,GAAG,CAAC;IAC/D,MAAM4B,QAAQ,GAAGf,YAAY,CAACM,OAAO;;IAErC;IACA,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,cAAc,EAAEE,CAAC,EAAE,EAAE;MACvC,MAAMC,WAAW,GAAGL,kBAAkB,GAAG,CAACJ,IAAI,CAACQ,CAAC,CAAC,EAAGR,IAAI,CAACQ,CAAC,GAAG,CAAC,CAAC,CAAE,GAAGR,IAAI;MACxE,MAAMU,KAAK,GAAGN,kBAAkB,GAC5B5B,gBAAgB,CAAC0B,aAAa,EAAEM,CAAC,IAAIR,IAAI,CAACrB,MAAM,GAAG,CAAC,CAAC,CAAC,GACtDuB,aAAa,CAAC,CAAC,CAAE;MAErB,MAAMS,OAAO,GAAGJ,QAAQ,CAACC,CAAC,CAAC;MAC3B,IAAIG,OAAO,EAAE;QACXA,OAAO,CAACC,OAAO,CAACH,WAAW,CAAC;QAC5BE,OAAO,CAACE,UAAU,CAAC;UAAEC,WAAW,EAAEJ;QAAM,CAAC,CAAC;MAC5C,CAAC,MAAM;QACLH,QAAQ,CAACQ,IAAI,CACX,IAAIC,MAAM,CAACC,IAAI,CAAClC,QAAQ,CAAC;UACvBiB,IAAI,EAAES,WAAW;UACjBK,WAAW,EAAEJ,KAAK;UAClBQ,YAAY,EAAEf,kBAAkB;UAChCgB,aAAa,EAAE,CAAC;UAChB/B,MAAM,EAAEiB,aAAa;UACrBd,GAAG,EAAEU;QACP,CAAC,CACH,CAAC;MACH;IACF;;IAEA;IACA,KAAK,IAAIO,CAAC,GAAGF,cAAc,EAAEE,CAAC,GAAGD,QAAQ,CAAC5B,MAAM,EAAE6B,CAAC,EAAE,EAAE;MACrDD,QAAQ,CAACC,CAAC,CAAC,EAAEY,MAAM,CAAC,IAAI,CAAC;IAC3B;IACAb,QAAQ,CAAC5B,MAAM,GAAG2B,cAAc;EAClC,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA1D,SAAS,CAAC,MAAM;IACd,MAAMyE,SAAS,GAAG7B,YAAY,CAACM,OAAO;IACtC,OAAO,MAAM;MACXwB,oBAAoB,CAAC7B,YAAY,CAACK,OAAO,CAAC;MAC1CuB,SAAS,CAACE,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACJ,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;;EAEN;EACAxE,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+C,QAAQ,CAACG,OAAO,CAACP,GAAG,IAAIP,WAAW,CAACL,MAAM,KAAK,CAAC,EAAE;IAEvD,MAAM8C,QAAQ,GAAGzC,WAAW,CAACO,GAAG,CAAE/B,CAAC,KAAM;MACvCkE,GAAG,EAAElE,CAAC,CAACmE,QAAQ;MACfC,GAAG,EAAEpE,CAAC,CAACqE;IACT,CAAC,CAAC,CAAC;IAEHP,oBAAoB,CAAC7B,YAAY,CAACK,OAAO,CAAC;IAE1C,IAAI,CAACX,QAAQ,EAAE;MACbY,UAAU,CAAC0B,QAAQ,CAAC;MACpB;IACF;IAEA,MAAMK,WAAW,GAAGL,QAAQ,CAAC9C,MAAM;IACnC,MAAMoD,aAAa,GAAG7E,kBAAkB,GAAG,CAAC;IAE5C,MAAM8E,OAAO,GAAIC,IAAY,IAAK;MAChC,MAAMC,QAAQ,GAAID,IAAI,GAAGF,aAAa,GAAI7E,kBAAkB;MAC5D,MAAMiF,QAAQ,GAAGD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAACA,QAAQ,GAAG,CAAC,IAAIJ,WAAW;MACjE,MAAMM,MAAM,GAAGF,QAAQ,IAAI,CAAC,GAAGA,QAAQ,GAAGJ,WAAW,GAAGA,WAAW;MAEnE,MAAMO,WAAwC,GAAG,EAAE;MACnD,MAAMC,UAAU,GAAGpE,IAAI,CAACY,KAAK,CAACqD,QAAQ,CAAC;MACvC,MAAMI,QAAQ,GAAGrE,IAAI,CAACY,KAAK,CAACsD,MAAM,CAAC;;MAEnC;MACA,IAAIE,UAAU,GAAGR,WAAW,EAAE;QAC5B,MAAMU,IAAI,GAAGL,QAAQ,GAAGG,UAAU;QAClC,MAAMG,IAAI,GAAGhB,QAAQ,CAACa,UAAU,CAAE;QAClC,MAAMI,EAAE,GAAGjB,QAAQ,CAACvD,IAAI,CAACyE,GAAG,CAACL,UAAU,GAAG,CAAC,EAAER,WAAW,GAAG,CAAC,CAAC,CAAE;QAC/DO,WAAW,CAACtB,IAAI,CACdyB,IAAI,GAAG,CAAC,GACJ;UACEd,GAAG,EAAEe,IAAI,CAACf,GAAG,GAAG,CAACgB,EAAE,CAAChB,GAAG,GAAGe,IAAI,CAACf,GAAG,IAAIc,IAAI;UAC1CZ,GAAG,EAAEa,IAAI,CAACb,GAAG,GAAG,CAACc,EAAE,CAACd,GAAG,GAAGa,IAAI,CAACb,GAAG,IAAIY;QACxC,CAAC,GACDC,IACN,CAAC;MACH;;MAEA;MACA,KACE,IAAIjC,CAAC,GAAG8B,UAAU,GAAG,CAAC,EACtB9B,CAAC,IAAItC,IAAI,CAACyE,GAAG,CAACJ,QAAQ,EAAET,WAAW,GAAG,CAAC,CAAC,EACxCtB,CAAC,EAAE,EACH;QACA6B,WAAW,CAACtB,IAAI,CAACU,QAAQ,CAACjB,CAAC,CAAE,CAAC;MAChC;;MAEA;MACA,IAAI+B,QAAQ,GAAGT,WAAW,GAAG,CAAC,EAAE;QAC9B,MAAMU,IAAI,GAAGJ,MAAM,GAAGG,QAAQ;QAC9B,MAAME,IAAI,GAAGhB,QAAQ,CAACc,QAAQ,CAAE;QAChC,MAAMG,EAAE,GAAGjB,QAAQ,CAACc,QAAQ,GAAG,CAAC,CAAE;QAClC,IAAIC,IAAI,GAAG,CAAC,EAAE;UACZH,WAAW,CAACtB,IAAI,CAAC;YACfW,GAAG,EAAEe,IAAI,CAACf,GAAG,GAAG,CAACgB,EAAE,CAAChB,GAAG,GAAGe,IAAI,CAACf,GAAG,IAAIc,IAAI;YAC1CZ,GAAG,EAAEa,IAAI,CAACb,GAAG,GAAG,CAACc,EAAE,CAACd,GAAG,GAAGa,IAAI,CAACb,GAAG,IAAIY;UACxC,CAAC,CAAC;QACJ;MACF;MAEAzC,UAAU,CAACsC,WAAW,CAAC;MACvB5C,YAAY,CAACK,OAAO,GAAG8C,qBAAqB,CAACZ,OAAO,CAAC;IACvD,CAAC;IAEDvC,YAAY,CAACK,OAAO,GAAG8C,qBAAqB,CAACZ,OAAO,CAAC;IAErD,OAAO,MAAMV,oBAAoB,CAAC7B,YAAY,CAACK,OAAO,CAAC;EACzD,CAAC,EAAE,CAACd,WAAW,EAAEG,QAAQ,EAAEO,WAAW,EAAEK,UAAU,EAAEH,QAAQ,CAAC,CAAC;EAE9D,OAAO,IAAI;AACb","ignoreList":[]}
@@ -1,3 +1,5 @@
1
1
  import type { MapProviderProps } from './MapProvider.types';
2
+ export declare const MapIdContext: import("react").Context<string | null>;
3
+ export declare const useMapId: () => string | null;
2
4
  export declare function MapProvider({ apiKey, children }: MapProviderProps): import("react/jsx-runtime").JSX.Element;
3
5
  //# sourceMappingURL=MapProvider.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapProvider.web.d.ts","sourceRoot":"","sources":["../../../src/MapProvider.web.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,WAAW,CAAC,EAAE,MAAW,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAEtE"}
1
+ {"version":3,"file":"MapProvider.web.d.ts","sourceRoot":"","sources":["../../../src/MapProvider.web.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,eAAO,MAAM,YAAY,wCAAqC,CAAC;AAE/D,eAAO,MAAM,QAAQ,qBAAiC,CAAC;AAEvD,wBAAgB,WAAW,CAAC,EAAE,MAAW,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAEtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"MapView.web.d.ts","sourceRoot":"","sources":["../../../src/MapView.web.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAyEzB,eAAO,MAAM,OAAO,qGA6LlB,CAAC"}
1
+ {"version":3,"file":"MapView.web.d.ts","sourceRoot":"","sources":["../../../src/MapView.web.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAIX,MAAM,iBAAiB,CAAC;AAoEzB,eAAO,MAAM,OAAO,qGAwKlB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lugg/maps",
3
- "version": "0.2.0-alpha.12",
3
+ "version": "0.2.0-alpha.14",
4
4
  "description": "Universal maps for React Native.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -1,6 +1,11 @@
1
+ import { createContext, useContext } from 'react';
1
2
  import { APIProvider } from '@vis.gl/react-google-maps';
2
3
  import type { MapProviderProps } from './MapProvider.types';
3
4
 
5
+ export const MapIdContext = createContext<string | null>(null);
6
+
7
+ export const useMapId = () => useContext(MapIdContext);
8
+
4
9
  export function MapProvider({ apiKey = '', children }: MapProviderProps) {
5
10
  return <APIProvider apiKey={apiKey}>{children}</APIProvider>;
6
11
  }
@@ -1,22 +1,17 @@
1
1
  import {
2
- Children,
3
2
  forwardRef,
4
- isValidElement,
5
3
  useEffect,
6
4
  useId,
7
5
  useImperativeHandle,
8
6
  useRef,
9
7
  useState,
10
8
  type CSSProperties,
11
- type ReactElement,
12
- type ReactNode,
13
9
  } from 'react';
14
- import type { NativeSyntheticEvent, ViewStyle } from 'react-native';
10
+ import type { NativeSyntheticEvent } from 'react-native';
15
11
  import { View } from 'react-native';
16
12
  import { Map, useMap } from '@vis.gl/react-google-maps';
17
13
  import { Marker } from './components/Marker.web';
18
- import { Polyline } from './components/Polyline.web';
19
- import { MapIdContext } from './MapIdContext.web';
14
+ import { MapIdContext } from './MapProvider.web';
20
15
 
21
16
  import type {
22
17
  MapViewProps,
@@ -27,11 +22,6 @@ import type {
27
22
  } from './MapView.types';
28
23
  import type { Coordinate } from './types';
29
24
 
30
- const MAP_COMPONENT_TYPES = new Set([Marker, Polyline]);
31
-
32
- const isMapComponent = (child: ReactElement): boolean =>
33
- MAP_COMPONENT_TYPES.has(child.type as typeof Marker | typeof Polyline);
34
-
35
25
  const createSyntheticEvent = <T,>(nativeEvent: T): NativeSyntheticEvent<T> =>
36
26
  ({
37
27
  nativeEvent,
@@ -102,7 +92,7 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
102
92
  ref
103
93
  ) {
104
94
  const {
105
- mapId = 'DEMO_MAP_ID',
95
+ mapId = google.maps.Map.DEMO_MAP_ID,
106
96
  initialCoordinate,
107
97
  initialZoom = 10,
108
98
  minZoom,
@@ -230,41 +220,23 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
230
220
  scrollEnabled === false && zoomEnabled === false
231
221
  ? 'none'
232
222
  : scrollEnabled === false
233
- ? 'none'
223
+ ? 'cooperative'
234
224
  : 'auto';
235
225
 
236
226
  const defaultCenter = initialCoordinate
237
227
  ? { lat: initialCoordinate.latitude, lng: initialCoordinate.longitude }
238
228
  : undefined;
239
229
 
240
- const mapChildren: ReactNode[] = [];
241
- const overlayChildren: ReactNode[] = [];
242
-
243
- Children.forEach(children, (child) => {
244
- if (!isValidElement(child)) return;
245
- if (isMapComponent(child)) {
246
- mapChildren.push(child);
247
- } else {
248
- overlayChildren.push(child);
249
- }
250
- });
251
-
252
- const mapContainerStyle: ViewStyle = {
253
- position: 'absolute',
254
- top: padding?.top ?? 0,
255
- left: padding?.left ?? 0,
256
- right: padding?.right ?? 0,
257
- bottom: padding?.bottom ?? 0,
258
- };
259
-
260
230
  const mapStyle: CSSProperties = {
261
- width: '100%',
262
- height: '100%',
231
+ paddingTop: padding?.top ?? 0,
232
+ paddingLeft: padding?.left ?? 0,
233
+ paddingRight: padding?.right ?? 0,
234
+ paddingBottom: padding?.bottom ?? 0,
263
235
  };
264
236
 
265
237
  return (
266
- <View style={style}>
267
- <View style={mapContainerStyle}>
238
+ <MapIdContext.Provider value={id}>
239
+ <View style={style}>
268
240
  <Map
269
241
  id={id}
270
242
  mapId={mapId}
@@ -277,13 +249,10 @@ export const MapView = forwardRef<MapViewRef, MapViewProps>(function MapView(
277
249
  tilt={pitchEnabled === false ? 0 : undefined}
278
250
  style={mapStyle}
279
251
  >
280
- <MapIdContext.Provider value={id}>
281
- <UserLocationMarker enabled={userLocationEnabled} />
282
- {mapChildren}
283
- </MapIdContext.Provider>
252
+ <UserLocationMarker enabled={userLocationEnabled} />
253
+ {children}
284
254
  </Map>
285
255
  </View>
286
- {overlayChildren}
287
- </View>
256
+ </MapIdContext.Provider>
288
257
  );
289
258
  });
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { useMap } from '@vis.gl/react-google-maps';
3
- import { useMapId } from '../MapIdContext.web';
3
+ import { useMapId } from '../MapProvider.web';
4
4
  import type { PolylineProps } from './Polyline';
5
5
 
6
6
  const ANIMATION_DURATION = 1500;
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- import { createContext, useContext } from 'react';
4
- export const MapIdContext = /*#__PURE__*/createContext(null);
5
- export const useMapId = () => useContext(MapIdContext);
6
- //# sourceMappingURL=MapIdContext.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createContext","useContext","MapIdContext","useMapId"],"sourceRoot":"../../src","sources":["MapIdContext.web.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAEjD,OAAO,MAAMC,YAAY,gBAAGF,aAAa,CAAgB,IAAI,CAAC;AAE9D,OAAO,MAAMG,QAAQ,GAAGA,CAAA,KAAMF,UAAU,CAACC,YAAY,CAAC","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- export declare const MapIdContext: import("react").Context<string | null>;
2
- export declare const useMapId: () => string | null;
3
- //# sourceMappingURL=MapIdContext.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapIdContext.web.d.ts","sourceRoot":"","sources":["../../../src/MapIdContext.web.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,wCAAqC,CAAC;AAE/D,eAAO,MAAM,QAAQ,qBAAiC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
-
3
- export const MapIdContext = createContext<string | null>(null);
4
-
5
- export const useMapId = () => useContext(MapIdContext);