@lugg/maps 0.2.0-alpha.3 → 0.2.0-alpha.30

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 (124) hide show
  1. package/README.md +21 -3
  2. package/android/src/main/java/com/luggmaps/LuggMapView.kt +265 -0
  3. package/android/src/main/java/com/luggmaps/{LuggGoogleMapViewManager.kt → LuggMapViewManager.kt} +75 -36
  4. package/android/src/main/java/com/luggmaps/LuggMapWrapperView.kt +6 -5
  5. package/android/src/main/java/com/luggmaps/LuggMarkerView.kt +136 -14
  6. package/android/src/main/java/com/luggmaps/LuggMarkerViewManager.kt +21 -0
  7. package/android/src/main/java/com/luggmaps/LuggPackage.kt +1 -4
  8. package/android/src/main/java/com/luggmaps/LuggPolylineView.kt +16 -0
  9. package/android/src/main/java/com/luggmaps/LuggPolylineViewManager.kt +22 -0
  10. package/android/src/main/java/com/luggmaps/{LuggGoogleMapView.kt → core/GoogleMapProvider.kt} +251 -241
  11. package/android/src/main/java/com/luggmaps/core/MapProviderDelegate.kt +55 -0
  12. package/android/src/main/java/com/luggmaps/core/PolylineAnimator.kt +163 -52
  13. package/ios/LuggMapView.h +9 -0
  14. package/ios/LuggMapView.mm +312 -0
  15. package/ios/LuggMarkerView.h +9 -0
  16. package/ios/LuggMarkerView.mm +79 -0
  17. package/ios/LuggPolylineView.h +4 -0
  18. package/ios/LuggPolylineView.mm +23 -0
  19. package/ios/core/AppleMapProvider.h +15 -0
  20. package/ios/core/AppleMapProvider.mm +664 -0
  21. package/ios/core/GMSPolylineAnimator.h +3 -0
  22. package/ios/core/GMSPolylineAnimator.m +175 -40
  23. package/ios/core/GoogleMapProvider.h +13 -0
  24. package/ios/core/GoogleMapProvider.mm +513 -0
  25. package/ios/core/MKPolylineAnimator.h +4 -0
  26. package/ios/core/MKPolylineAnimator.m +224 -68
  27. package/ios/core/MapProviderDelegate.h +72 -0
  28. package/ios/core/PolylineAnimatorBase.h +24 -1
  29. package/ios/core/PolylineAnimatorBase.m +82 -19
  30. package/ios/extensions/MKMapView+Zoom.h +2 -0
  31. package/ios/extensions/MKMapView+Zoom.m +14 -4
  32. package/lib/module/MapProvider.js +13 -0
  33. package/lib/module/MapProvider.js.map +1 -0
  34. package/lib/module/MapProvider.types.js +4 -0
  35. package/lib/module/MapProvider.types.js.map +1 -0
  36. package/lib/module/MapProvider.web.js +20 -0
  37. package/lib/module/MapProvider.web.js.map +1 -0
  38. package/lib/module/MapView.js +29 -16
  39. package/lib/module/MapView.js.map +1 -1
  40. package/lib/module/MapView.web.js +290 -0
  41. package/lib/module/MapView.web.js.map +1 -0
  42. package/lib/module/components/Marker.js +19 -2
  43. package/lib/module/components/Marker.js.map +1 -1
  44. package/lib/module/components/Marker.web.js +33 -0
  45. package/lib/module/components/Marker.web.js.map +1 -0
  46. package/lib/module/components/Polyline.js +17 -4
  47. package/lib/module/components/Polyline.js.map +1 -1
  48. package/lib/module/components/Polyline.web.js +229 -0
  49. package/lib/module/components/Polyline.web.js.map +1 -0
  50. package/lib/module/components/index.js +2 -2
  51. package/lib/module/components/index.js.map +1 -1
  52. package/lib/module/components/index.web.js +5 -0
  53. package/lib/module/components/index.web.js.map +1 -0
  54. package/lib/module/fabric/{LuggGoogleMapViewNativeComponent.ts → LuggMapViewNativeComponent.ts} +19 -7
  55. package/lib/module/fabric/LuggMarkerViewNativeComponent.ts +7 -1
  56. package/lib/module/fabric/LuggPolylineViewNativeComponent.ts +8 -0
  57. package/lib/module/index.js +4 -2
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/index.web.js +7 -0
  60. package/lib/module/index.web.js.map +1 -0
  61. package/lib/typescript/src/MapProvider.d.ts +8 -0
  62. package/lib/typescript/src/MapProvider.d.ts.map +1 -0
  63. package/lib/typescript/src/MapProvider.types.d.ts +16 -0
  64. package/lib/typescript/src/MapProvider.types.d.ts.map +1 -0
  65. package/lib/typescript/src/MapProvider.web.d.ts +11 -0
  66. package/lib/typescript/src/MapProvider.web.d.ts.map +1 -0
  67. package/lib/typescript/src/MapView.d.ts +4 -4
  68. package/lib/typescript/src/MapView.d.ts.map +1 -1
  69. package/lib/typescript/src/MapView.types.d.ts +23 -7
  70. package/lib/typescript/src/MapView.types.d.ts.map +1 -1
  71. package/lib/typescript/src/MapView.web.d.ts +3 -0
  72. package/lib/typescript/src/MapView.web.d.ts.map +1 -0
  73. package/lib/typescript/src/components/Marker.d.ts +25 -1
  74. package/lib/typescript/src/components/Marker.d.ts.map +1 -1
  75. package/lib/typescript/src/components/Marker.web.d.ts +3 -0
  76. package/lib/typescript/src/components/Marker.web.d.ts.map +1 -0
  77. package/lib/typescript/src/components/Polyline.d.ts +36 -1
  78. package/lib/typescript/src/components/Polyline.d.ts.map +1 -1
  79. package/lib/typescript/src/components/Polyline.web.d.ts +3 -0
  80. package/lib/typescript/src/components/Polyline.web.d.ts.map +1 -0
  81. package/lib/typescript/src/components/index.d.ts +4 -2
  82. package/lib/typescript/src/components/index.d.ts.map +1 -1
  83. package/lib/typescript/src/components/index.web.d.ts +5 -0
  84. package/lib/typescript/src/components/index.web.d.ts.map +1 -0
  85. package/lib/typescript/src/fabric/{LuggGoogleMapViewNativeComponent.d.ts → LuggMapViewNativeComponent.d.ts} +8 -4
  86. package/lib/typescript/src/fabric/LuggMapViewNativeComponent.d.ts.map +1 -0
  87. package/lib/typescript/src/fabric/LuggMarkerViewNativeComponent.d.ts +4 -1
  88. package/lib/typescript/src/fabric/LuggMarkerViewNativeComponent.d.ts.map +1 -1
  89. package/lib/typescript/src/fabric/LuggPolylineViewNativeComponent.d.ts +7 -0
  90. package/lib/typescript/src/fabric/LuggPolylineViewNativeComponent.d.ts.map +1 -1
  91. package/lib/typescript/src/index.d.ts +8 -3
  92. package/lib/typescript/src/index.d.ts.map +1 -1
  93. package/lib/typescript/src/index.web.d.ts +10 -0
  94. package/lib/typescript/src/index.web.d.ts.map +1 -0
  95. package/lib/typescript/src/types.d.ts +4 -0
  96. package/lib/typescript/src/types.d.ts.map +1 -1
  97. package/package.json +17 -3
  98. package/src/MapProvider.tsx +10 -0
  99. package/src/MapProvider.types.ts +16 -0
  100. package/src/MapProvider.web.tsx +14 -0
  101. package/src/MapView.tsx +28 -26
  102. package/src/MapView.types.ts +24 -7
  103. package/src/MapView.web.tsx +364 -0
  104. package/src/components/Marker.tsx +50 -4
  105. package/src/components/Marker.web.tsx +33 -0
  106. package/src/components/Polyline.tsx +51 -2
  107. package/src/components/Polyline.web.tsx +287 -0
  108. package/src/components/index.ts +8 -2
  109. package/src/components/index.web.ts +4 -0
  110. package/src/fabric/{LuggGoogleMapViewNativeComponent.ts → LuggMapViewNativeComponent.ts} +19 -7
  111. package/src/fabric/LuggMarkerViewNativeComponent.ts +7 -1
  112. package/src/fabric/LuggPolylineViewNativeComponent.ts +8 -0
  113. package/src/index.ts +18 -2
  114. package/src/index.web.ts +20 -0
  115. package/src/types.ts +5 -0
  116. package/ios/LuggAppleMapView.h +0 -16
  117. package/ios/LuggAppleMapView.mm +0 -580
  118. package/ios/LuggGoogleMapView.h +0 -13
  119. package/ios/LuggGoogleMapView.mm +0 -454
  120. package/lib/module/fabric/LuggAppleMapViewNativeComponent.ts +0 -83
  121. package/lib/typescript/src/fabric/LuggAppleMapViewNativeComponent.d.ts +0 -54
  122. package/lib/typescript/src/fabric/LuggAppleMapViewNativeComponent.d.ts.map +0 -1
  123. package/lib/typescript/src/fabric/LuggGoogleMapViewNativeComponent.d.ts.map +0 -1
  124. package/src/fabric/LuggAppleMapViewNativeComponent.ts +0 -83
@@ -19,12 +19,21 @@
19
19
 
20
20
  #pragma mark - Public Methods
21
21
 
22
+ // Constant for altitude/zoom conversion (meters at zoom level 0)
23
+ static const double kAltitudeAtZoomZero = 220000000.0;
24
+
22
25
  - (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate
23
26
  zoomLevel:(double)zoomLevel
24
27
  animated:(BOOL)animated
25
28
  {
26
- MKCoordinateRegion region = [self regionForCenterCoordinate:centerCoordinate zoomLevel:zoomLevel];
27
- [self setRegion:region animated:animated];
29
+ // Use camera API directly to avoid region/margin interaction
30
+ CLLocationDistance altitude = kAltitudeAtZoomZero / pow(2, zoomLevel);
31
+ MKMapCamera *camera = [MKMapCamera cameraLookingAtCenterCoordinate:centerCoordinate
32
+ fromEyeCoordinate:centerCoordinate
33
+ eyeAltitude:altitude];
34
+ camera.pitch = self.camera.pitch;
35
+ camera.heading = self.camera.heading;
36
+ [self setCamera:camera animated:animated];
28
37
  }
29
38
 
30
39
  - (MKCoordinateRegion)regionForCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate
@@ -37,8 +46,9 @@
37
46
 
38
47
  - (double)zoomLevel
39
48
  {
40
- MKCoordinateRegion region = self.region;
41
- double zoomLevel = log2(360.0 / region.span.latitudeDelta) + 0.5;
49
+ // Use camera altitude which isn't affected by layoutMargins
50
+ CLLocationDistance altitude = self.camera.altitude;
51
+ double zoomLevel = log2(kAltitudeAtZoomZero / altitude);
42
52
  return zoomLevel;
43
53
  }
44
54
 
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Provider component for map configuration.
5
+ * On web, wraps children with Google Maps APIProvider.
6
+ * On native, passes children through.
7
+ */
8
+ export function MapProvider({
9
+ children
10
+ }) {
11
+ return children;
12
+ }
13
+ //# sourceMappingURL=MapProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MapProvider","children"],"sourceRoot":"../../src","sources":["MapProvider.tsx"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,WAAWA,CAAC;EAAEC;AAA2B,CAAC,EAAE;EAC1D,OAAOA,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=MapProvider.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["MapProvider.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ import { createContext, useContext } from 'react';
4
+ import { APIProvider } from '@vis.gl/react-google-maps';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const MapContext = /*#__PURE__*/createContext({
7
+ map: null,
8
+ isDragging: false
9
+ });
10
+ export const useMapContext = () => useContext(MapContext);
11
+ export function MapProvider({
12
+ apiKey = '',
13
+ children
14
+ }) {
15
+ return /*#__PURE__*/_jsx(APIProvider, {
16
+ apiKey: apiKey,
17
+ children: children
18
+ });
19
+ }
20
+ //# sourceMappingURL=MapProvider.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","APIProvider","jsx","_jsx","MapContext","map","isDragging","useMapContext","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,UAAU,gBAAGL,aAAa,CAGpC;EAAEM,GAAG,EAAE,IAAI;EAAEC,UAAU,EAAE;AAAM,CAAC,CAAC;AAEpC,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAMP,UAAU,CAACI,UAAU,CAAC;AAEzD,OAAO,SAASI,WAAWA,CAAC;EAAEC,MAAM,GAAG,EAAE;EAAEC;AAA2B,CAAC,EAAE;EACvE,oBAAOP,IAAA,CAACF,WAAW;IAACQ,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAAEA;EAAQ,CAAc,CAAC;AAC9D","ignoreList":[]}
@@ -2,8 +2,7 @@
2
2
 
3
3
  import React from 'react';
4
4
  import { Platform, StyleSheet } from 'react-native';
5
- import LuggGoogleMapViewNativeComponent, { Commands as GoogleMapCommands } from './fabric/LuggGoogleMapViewNativeComponent';
6
- import LuggAppleMapViewNativeComponent, { Commands as AppleMapCommands } from './fabric/LuggAppleMapViewNativeComponent';
5
+ import LuggMapViewNativeComponent, { Commands } from './fabric/LuggMapViewNativeComponent';
7
6
  import LuggMapWrapperViewNativeComponent from './fabric/LuggMapWrapperViewNativeComponent';
8
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
8
  export class MapView extends React.Component {
@@ -13,22 +12,18 @@ export class MapView extends React.Component {
13
12
  zoomEnabled: true,
14
13
  scrollEnabled: true,
15
14
  rotateEnabled: true,
16
- pitchEnabled: true
15
+ pitchEnabled: true,
16
+ theme: 'system'
17
17
  };
18
18
  nativeRef = /*#__PURE__*/React.createRef();
19
- get nativeCommands() {
20
- const provider = this.props.provider ?? MapView.defaultProps.provider;
21
- const isApple = Platform.OS === 'ios' && provider === 'apple';
22
- return isApple ? AppleMapCommands : GoogleMapCommands;
23
- }
24
19
  moveCamera(coordinate, options) {
25
20
  const ref = this.nativeRef.current;
26
21
  if (!ref) return;
27
22
  const {
28
- zoom,
23
+ zoom = 0,
29
24
  duration = -1
30
- } = options;
31
- this.nativeCommands.moveCamera(ref, coordinate.latitude, coordinate.longitude, zoom, duration);
25
+ } = options ?? {};
26
+ Commands.moveCamera(ref, coordinate.latitude, coordinate.longitude, zoom, duration);
32
27
  }
33
28
  fitCoordinates(coordinates, options) {
34
29
  const ref = this.nativeRef.current;
@@ -52,7 +47,21 @@ export class MapView extends React.Component {
52
47
  });
53
48
  return;
54
49
  }
55
- this.nativeCommands.fitCoordinates(ref, coordinates, top, left, bottom, right, duration);
50
+ Commands.fitCoordinates(ref, coordinates, top, left, bottom, right, duration);
51
+ }
52
+ setEdgeInsets(edgeInsets, options) {
53
+ const ref = this.nativeRef.current;
54
+ if (!ref) return;
55
+ const {
56
+ top = 0,
57
+ left = 0,
58
+ bottom = 0,
59
+ right = 0
60
+ } = edgeInsets;
61
+ const {
62
+ duration = -1
63
+ } = options ?? {};
64
+ Commands.setEdgeInsets(ref, top, left, bottom, right, duration);
56
65
  }
57
66
  render() {
58
67
  const {
@@ -66,18 +75,20 @@ export class MapView extends React.Component {
66
75
  scrollEnabled,
67
76
  rotateEnabled,
68
77
  pitchEnabled,
69
- padding,
78
+ edgeInsets,
70
79
  userLocationEnabled,
80
+ userLocationButtonEnabled,
81
+ theme,
71
82
  onCameraMove,
72
83
  onCameraIdle,
73
84
  onReady,
74
85
  children,
75
86
  ...rest
76
87
  } = this.props;
77
- const NativeMapView = Platform.OS === 'ios' && provider === 'apple' ? LuggAppleMapViewNativeComponent : LuggGoogleMapViewNativeComponent;
78
- return /*#__PURE__*/_jsxs(NativeMapView, {
88
+ return /*#__PURE__*/_jsxs(LuggMapViewNativeComponent, {
79
89
  ref: this.nativeRef,
80
90
  ...rest,
91
+ provider: provider,
81
92
  mapId: mapId,
82
93
  initialCoordinate: initialCoordinate,
83
94
  initialZoom: initialZoom,
@@ -87,8 +98,10 @@ export class MapView extends React.Component {
87
98
  scrollEnabled: scrollEnabled,
88
99
  rotateEnabled: rotateEnabled,
89
100
  pitchEnabled: pitchEnabled,
90
- padding: padding,
101
+ edgeInsets: edgeInsets,
91
102
  userLocationEnabled: userLocationEnabled,
103
+ userLocationButtonEnabled: userLocationButtonEnabled,
104
+ theme: theme,
92
105
  onCameraMove: onCameraMove,
93
106
  onCameraIdle: onCameraIdle,
94
107
  onReady: onReady,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","StyleSheet","LuggGoogleMapViewNativeComponent","Commands","GoogleMapCommands","LuggAppleMapViewNativeComponent","AppleMapCommands","LuggMapWrapperViewNativeComponent","jsx","_jsx","jsxs","_jsxs","MapView","Component","defaultProps","provider","OS","initialZoom","zoomEnabled","scrollEnabled","rotateEnabled","pitchEnabled","nativeRef","createRef","nativeCommands","props","isApple","moveCamera","coordinate","options","ref","current","zoom","duration","latitude","longitude","fitCoordinates","coordinates","first","padding","top","left","bottom","right","length","render","mapId","initialCoordinate","minZoom","maxZoom","userLocationEnabled","onCameraMove","onCameraIdle","onReady","children","rest","NativeMapView","style","absoluteFill"],"sourceRoot":"../../src","sources":["MapView.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AACnD,OAAOC,gCAAgC,IACrCC,QAAQ,IAAIC,iBAAiB,QACxB,2CAA2C;AAClD,OAAOC,+BAA+B,IACpCF,QAAQ,IAAIG,gBAAgB,QACvB,0CAA0C;AACjD,OAAOC,iCAAiC,MAAM,4CAA4C;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAS3F,OAAO,MAAMC,OAAO,SACVb,KAAK,CAACc,SAAS,CAEzB;EACE,OAAOC,YAAY,GAA0B;IAC3CC,QAAQ,EAAEf,QAAQ,CAACgB,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,QAAQ;IACpDC,WAAW,EAAE,EAAE;IACfC,WAAW,EAAE,IAAI;IACjBC,aAAa,EAAE,IAAI;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE;EAChB,CAAC;EAEOC,SAAS,gBAAGvB,KAAK,CAACwB,SAAS,CAAM,CAAC;EAE1C,IAAYC,cAAcA,CAAA,EAAG;IAC3B,MAAMT,QAAQ,GAAG,IAAI,CAACU,KAAK,CAACV,QAAQ,IAAIH,OAAO,CAACE,YAAY,CAACC,QAAQ;IACrE,MAAMW,OAAO,GAAG1B,QAAQ,CAACgB,EAAE,KAAK,KAAK,IAAID,QAAQ,KAAK,OAAO;IAC7D,OAAOW,OAAO,GAAGpB,gBAAgB,GAAGF,iBAAiB;EACvD;EAEAuB,UAAUA,CAACC,UAAsB,EAAEC,OAA0B,EAAE;IAC7D,MAAMC,GAAG,GAAG,IAAI,CAACR,SAAS,CAACS,OAAO;IAClC,IAAI,CAACD,GAAG,EAAE;IAEV,MAAM;MAAEE,IAAI;MAAEC,QAAQ,GAAG,CAAC;IAAE,CAAC,GAAGJ,OAAO;IACvC,IAAI,CAACL,cAAc,CAACG,UAAU,CAC5BG,GAAG,EACHF,UAAU,CAACM,QAAQ,EACnBN,UAAU,CAACO,SAAS,EACpBH,IAAI,EACJC,QACF,CAAC;EACH;EAEAG,cAAcA,CAACC,WAAyB,EAAER,OAA+B,EAAE;IACzE,MAAMC,GAAG,GAAG,IAAI,CAACR,SAAS,CAACS,OAAO;IAClC,MAAMO,KAAK,GAAGD,WAAW,CAAC,CAAC,CAAC;IAC5B,IAAI,CAACP,GAAG,IAAI,CAACQ,KAAK,EAAE;IAEpB,MAAM;MAAEC,OAAO;MAAEN,QAAQ,GAAG,CAAC;IAAE,CAAC,GAAGJ,OAAO,IAAI,CAAC,CAAC;IAChD,MAAM;MAAEW,GAAG,GAAG,CAAC;MAAEC,IAAI,GAAG,CAAC;MAAEC,MAAM,GAAG,CAAC;MAAEC,KAAK,GAAG;IAAE,CAAC,GAAGJ,OAAO,IAAI,CAAC,CAAC;IAElE,IAAIF,WAAW,CAACO,MAAM,KAAK,CAAC,EAAE;MAC5B,MAAMZ,IAAI,GAAG,IAAI,CAACP,KAAK,CAACR,WAAW,IAAI,EAAE;MACzC,IAAI,CAACU,UAAU,CAACW,KAAK,EAAE;QAAEN,IAAI;QAAEC;MAAS,CAAC,CAAC;MAC1C;IACF;IAEA,IAAI,CAACT,cAAc,CAACY,cAAc,CAChCN,GAAG,EACHO,WAAW,EACXG,GAAG,EACHC,IAAI,EACJC,MAAM,EACNC,KAAK,EACLV,QACF,CAAC;EACH;EAEAY,MAAMA,CAAA,EAAG;IACP,MAAM;MACJ9B,QAAQ;MACR+B,KAAK;MACLC,iBAAiB;MACjB9B,WAAW;MACX+B,OAAO;MACPC,OAAO;MACP/B,WAAW;MACXC,aAAa;MACbC,aAAa;MACbC,YAAY;MACZkB,OAAO;MACPW,mBAAmB;MACnBC,YAAY;MACZC,YAAY;MACZC,OAAO;MACPC,QAAQ;MACR,GAAGC;IACL,CAAC,GAAG,IAAI,CAAC9B,KAAK;IAEd,MAAM+B,aAAa,GACjBxD,QAAQ,CAACgB,EAAE,KAAK,KAAK,IAAID,QAAQ,KAAK,OAAO,GACzCV,+BAA+B,GAC/BH,gCAAgC;IAEtC,oBACES,KAAA,CAAC6C,aAAa;MACZ1B,GAAG,EAAE,IAAI,CAACR,SAAU;MAAA,GAChBiC,IAAI;MACRT,KAAK,EAAEA,KAAM;MACbC,iBAAiB,EAAEA,iBAAkB;MACrC9B,WAAW,EAAEA,WAAY;MACzB+B,OAAO,EAAEA,OAAQ;MACjBC,OAAO,EAAEA,OAAQ;MACjB/B,WAAW,EAAEA,WAAY;MACzBC,aAAa,EAAEA,aAAc;MAC7BC,aAAa,EAAEA,aAAc;MAC7BC,YAAY,EAAEA,YAAa;MAC3BkB,OAAO,EAAEA,OAAQ;MACjBW,mBAAmB,EAAEA,mBAAoB;MACzCC,YAAY,EAAEA,YAAa;MAC3BC,YAAY,EAAEA,YAAa;MAC3BC,OAAO,EAAEA,OAAQ;MAAAC,QAAA,gBAEjB7C,IAAA,CAACF,iCAAiC;QAACkD,KAAK,EAAExD,UAAU,CAACyD;MAAa,CAAE,CAAC,EACpEJ,QAAQ;IAAA,CACI,CAAC;EAEpB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","StyleSheet","LuggMapViewNativeComponent","Commands","LuggMapWrapperViewNativeComponent","jsx","_jsx","jsxs","_jsxs","MapView","Component","defaultProps","provider","OS","initialZoom","zoomEnabled","scrollEnabled","rotateEnabled","pitchEnabled","theme","nativeRef","createRef","moveCamera","coordinate","options","ref","current","zoom","duration","latitude","longitude","fitCoordinates","coordinates","first","padding","top","left","bottom","right","length","props","setEdgeInsets","edgeInsets","render","mapId","initialCoordinate","minZoom","maxZoom","userLocationEnabled","userLocationButtonEnabled","onCameraMove","onCameraIdle","onReady","children","rest","style","absoluteFill"],"sourceRoot":"../../src","sources":["MapView.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useCallback, useEffect, useId, useImperativeHandle, useRef, useState } from 'react';
4
+ import { View } from 'react-native';
5
+ import { ColorScheme, Map, useMap } from '@vis.gl/react-google-maps';
6
+ import { Marker } from "./components/Marker.web.js";
7
+ import { MapContext } from "./MapProvider.web.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const createSyntheticEvent = nativeEvent => ({
10
+ nativeEvent,
11
+ currentTarget: null,
12
+ target: null,
13
+ bubbles: false,
14
+ cancelable: false,
15
+ defaultPrevented: false,
16
+ eventPhase: 0,
17
+ isTrusted: true,
18
+ preventDefault: () => {},
19
+ stopPropagation: () => {},
20
+ isDefaultPrevented: () => false,
21
+ isPropagationStopped: () => false,
22
+ persist: () => {},
23
+ timeStamp: Date.now(),
24
+ type: ''
25
+ });
26
+ const userLocationDotStyle = {
27
+ width: 16,
28
+ height: 16,
29
+ backgroundColor: '#4285F4',
30
+ border: '2px solid white',
31
+ borderRadius: '50%',
32
+ boxShadow: '0 1px 4px rgba(0,0,0,0.3)'
33
+ };
34
+ function UserLocationMarker({
35
+ enabled
36
+ }) {
37
+ const [coordinate, setCoordinate] = useState(null);
38
+ useEffect(() => {
39
+ if (!enabled) {
40
+ setCoordinate(null);
41
+ return;
42
+ }
43
+ let watchId = null;
44
+ const updateLocation = position => {
45
+ setCoordinate({
46
+ latitude: position.coords.latitude,
47
+ longitude: position.coords.longitude
48
+ });
49
+ };
50
+ navigator.geolocation.getCurrentPosition(updateLocation, () => {});
51
+ watchId = navigator.geolocation.watchPosition(updateLocation, () => {});
52
+ return () => {
53
+ if (watchId !== null) {
54
+ navigator.geolocation.clearWatch(watchId);
55
+ }
56
+ };
57
+ }, [enabled]);
58
+ if (!coordinate) return null;
59
+ return /*#__PURE__*/_jsx(Marker, {
60
+ coordinate: coordinate,
61
+ anchor: {
62
+ x: 0.5,
63
+ y: 0.5
64
+ },
65
+ children: /*#__PURE__*/_jsx("div", {
66
+ style: userLocationDotStyle
67
+ })
68
+ });
69
+ }
70
+ export const MapView = /*#__PURE__*/forwardRef(function MapView(props, ref) {
71
+ const {
72
+ mapId = 'DEMO_MAP_ID',
73
+ initialCoordinate,
74
+ initialZoom = 10,
75
+ minZoom,
76
+ maxZoom,
77
+ zoomEnabled = true,
78
+ scrollEnabled = true,
79
+ pitchEnabled = true,
80
+ edgeInsets,
81
+ userLocationEnabled,
82
+ theme = 'system',
83
+ onCameraMove,
84
+ onCameraIdle,
85
+ onReady,
86
+ children,
87
+ style
88
+ } = props;
89
+ const id = useId();
90
+ const map = useMap(id);
91
+ const containerRef = useRef(null);
92
+ const readyFired = useRef(false);
93
+ const [isDragging, setIsDragging] = useState(false);
94
+ const wasGesture = useRef(false);
95
+ const prevEdgeInsets = useRef(edgeInsets);
96
+ const offsetCenter = useCallback((coord, zoom, insets, reverse = false) => {
97
+ const p = insets ?? prevEdgeInsets.current;
98
+ if (!p) {
99
+ return {
100
+ lat: coord.latitude,
101
+ lng: coord.longitude
102
+ };
103
+ }
104
+ const dir = reverse ? -1 : 1;
105
+ const scale = 256 * Math.pow(2, zoom);
106
+ const offsetX = dir * ((p.right ?? 0) - (p.left ?? 0)) / 2;
107
+ const offsetY = dir * ((p.bottom ?? 0) - (p.top ?? 0)) / 2;
108
+ const latRad = coord.latitude * Math.PI / 180;
109
+ const x = (coord.longitude + 180) / 360 * scale + offsetX;
110
+ const y = (1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) / 2 * scale + offsetY;
111
+ const lng = x / scale * 360 - 180;
112
+ const lat = Math.atan(Math.sinh(Math.PI * (1 - 2 * y / scale))) * 180 / Math.PI;
113
+ return {
114
+ lat,
115
+ lng
116
+ };
117
+ }, []);
118
+ const applyEdgeInsets = useCallback((newEdgeInsets, duration) => {
119
+ if (!map) return;
120
+ const prev = prevEdgeInsets.current;
121
+ const center = map.getCenter();
122
+ const zoom = map.getZoom() ?? initialZoom;
123
+ if (center) {
124
+ const logicalCenter = offsetCenter({
125
+ latitude: center.lat(),
126
+ longitude: center.lng()
127
+ }, zoom, prev, true);
128
+ const newCenter = offsetCenter({
129
+ latitude: logicalCenter.lat,
130
+ longitude: logicalCenter.lng
131
+ }, zoom, newEdgeInsets, false);
132
+ if (duration === 0) {
133
+ map.moveCamera({
134
+ center: newCenter,
135
+ zoom
136
+ });
137
+ } else {
138
+ map.panTo(newCenter);
139
+ }
140
+ }
141
+ prevEdgeInsets.current = newEdgeInsets;
142
+ }, [map, initialZoom, offsetCenter]);
143
+ useImperativeHandle(ref, () => ({
144
+ moveCamera(coordinate, options) {
145
+ if (!map) return;
146
+ const {
147
+ zoom = 0,
148
+ duration = -1
149
+ } = options ?? {};
150
+ const targetZoom = zoom || map.getZoom() || initialZoom;
151
+ const center = offsetCenter(coordinate, targetZoom, undefined, false);
152
+ if (duration === 0) {
153
+ map.moveCamera({
154
+ center,
155
+ zoom: targetZoom
156
+ });
157
+ } else {
158
+ const currentZoom = map.getZoom();
159
+ const zoomChanged = zoom !== 0 && zoom !== currentZoom;
160
+ if (zoomChanged) {
161
+ map.setZoom(zoom);
162
+ }
163
+ map.panTo(center);
164
+ }
165
+ },
166
+ fitCoordinates(coordinates, options) {
167
+ const first = coordinates[0];
168
+ if (!map || !first) return;
169
+ const {
170
+ padding: fitPadding,
171
+ duration = -1
172
+ } = options ?? {};
173
+ if (coordinates.length === 1) {
174
+ this.moveCamera(first, {
175
+ zoom: initialZoom,
176
+ duration
177
+ });
178
+ return;
179
+ }
180
+ const bounds = new google.maps.LatLngBounds();
181
+ coordinates.forEach(coord => {
182
+ bounds.extend({
183
+ lat: coord.latitude,
184
+ lng: coord.longitude
185
+ });
186
+ });
187
+ const ei = prevEdgeInsets.current;
188
+ map.fitBounds(bounds, {
189
+ top: (ei?.top ?? 0) + (fitPadding?.top ?? 0),
190
+ left: (ei?.left ?? 0) + (fitPadding?.left ?? 0),
191
+ bottom: (ei?.bottom ?? 0) + (fitPadding?.bottom ?? 0),
192
+ right: (ei?.right ?? 0) + (fitPadding?.right ?? 0)
193
+ });
194
+ },
195
+ setEdgeInsets(newEdgeInsets, options) {
196
+ applyEdgeInsets(newEdgeInsets, options?.duration);
197
+ }
198
+ }), [map, initialZoom, offsetCenter, applyEdgeInsets]);
199
+ useEffect(() => {
200
+ if (map && !readyFired.current) {
201
+ readyFired.current = true;
202
+ onReady?.();
203
+ }
204
+ }, [map, onReady]);
205
+ useEffect(() => {
206
+ if (!map || !edgeInsets) return;
207
+ const prev = prevEdgeInsets.current;
208
+ const changed = prev?.top !== edgeInsets.top || prev?.left !== edgeInsets.left || prev?.bottom !== edgeInsets.bottom || prev?.right !== edgeInsets.right;
209
+ if (changed) {
210
+ applyEdgeInsets(edgeInsets);
211
+ }
212
+ }, [map, edgeInsets, applyEdgeInsets]);
213
+ const handleDragStart = () => {
214
+ setIsDragging(true);
215
+ wasGesture.current = true;
216
+ };
217
+ const handleDragEnd = () => {
218
+ setIsDragging(false);
219
+ };
220
+ const handleCameraChanged = event => {
221
+ const logicalCenter = offsetCenter({
222
+ latitude: event.detail.center.lat,
223
+ longitude: event.detail.center.lng
224
+ }, event.detail.zoom, undefined, true);
225
+ const payload = {
226
+ coordinate: {
227
+ latitude: logicalCenter.lat,
228
+ longitude: logicalCenter.lng
229
+ },
230
+ zoom: event.detail.zoom,
231
+ gesture: isDragging
232
+ };
233
+ onCameraMove?.(createSyntheticEvent(payload));
234
+ };
235
+ const handleIdle = event => {
236
+ const center = event.map.getCenter();
237
+ const zoom = event.map.getZoom() ?? 0;
238
+ const logicalCenter = offsetCenter({
239
+ latitude: center?.lat() ?? 0,
240
+ longitude: center?.lng() ?? 0
241
+ }, zoom, undefined, true);
242
+ const payload = {
243
+ coordinate: {
244
+ latitude: logicalCenter.lat,
245
+ longitude: logicalCenter.lng
246
+ },
247
+ zoom,
248
+ gesture: wasGesture.current
249
+ };
250
+ onCameraIdle?.(createSyntheticEvent(payload));
251
+ wasGesture.current = false;
252
+ };
253
+ const gestureHandling = scrollEnabled === false && zoomEnabled === false ? 'none' : scrollEnabled === false ? 'cooperative' : 'auto';
254
+ const colorScheme = theme === 'dark' ? ColorScheme.DARK : theme === 'light' ? ColorScheme.LIGHT : ColorScheme.FOLLOW_SYSTEM;
255
+ const defaultCenter = initialCoordinate ? {
256
+ lat: initialCoordinate.latitude,
257
+ lng: initialCoordinate.longitude
258
+ } : undefined;
259
+ return /*#__PURE__*/_jsx(MapContext.Provider, {
260
+ value: {
261
+ map,
262
+ isDragging
263
+ },
264
+ children: /*#__PURE__*/_jsx(View, {
265
+ ref: containerRef,
266
+ style: style,
267
+ children: /*#__PURE__*/_jsxs(Map, {
268
+ id: id,
269
+ mapId: mapId,
270
+ defaultCenter: defaultCenter,
271
+ defaultZoom: initialZoom,
272
+ minZoom: minZoom,
273
+ maxZoom: maxZoom,
274
+ gestureHandling: gestureHandling,
275
+ colorScheme: colorScheme,
276
+ disableDefaultUI: true,
277
+ isFractionalZoomEnabled: true,
278
+ tilt: pitchEnabled === false ? 0 : undefined,
279
+ onDragstart: handleDragStart,
280
+ onDragend: handleDragEnd,
281
+ onCameraChanged: handleCameraChanged,
282
+ onIdle: handleIdle,
283
+ children: [/*#__PURE__*/_jsx(UserLocationMarker, {
284
+ enabled: userLocationEnabled
285
+ }), children]
286
+ })
287
+ })
288
+ });
289
+ });
290
+ //# sourceMappingURL=MapView.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useCallback","useEffect","useId","useImperativeHandle","useRef","useState","View","ColorScheme","Map","useMap","Marker","MapContext","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","initialCoordinate","initialZoom","minZoom","maxZoom","zoomEnabled","scrollEnabled","pitchEnabled","edgeInsets","userLocationEnabled","theme","onCameraMove","onCameraIdle","onReady","id","map","containerRef","readyFired","isDragging","setIsDragging","wasGesture","prevEdgeInsets","offsetCenter","coord","zoom","insets","reverse","p","current","lat","lng","dir","scale","Math","pow","offsetX","right","left","offsetY","bottom","top","latRad","PI","log","tan","cos","atan","sinh","applyEdgeInsets","newEdgeInsets","duration","prev","center","getCenter","getZoom","logicalCenter","newCenter","moveCamera","panTo","options","targetZoom","undefined","currentZoom","zoomChanged","setZoom","fitCoordinates","coordinates","first","padding","fitPadding","length","bounds","google","maps","LatLngBounds","forEach","extend","ei","fitBounds","setEdgeInsets","changed","handleDragStart","handleDragEnd","handleCameraChanged","event","detail","payload","gesture","handleIdle","gestureHandling","colorScheme","DARK","LIGHT","FOLLOW_SYSTEM","defaultCenter","Provider","value","defaultZoom","disableDefaultUI","isFractionalZoomEnabled","tilt","onDragstart","onDragend","onCameraChanged","onIdle"],"sourceRoot":"../../src","sources":["MapView.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,17 @@ import React from 'react';
4
4
  import { StyleSheet } from 'react-native';
5
5
  import LuggMarkerViewNativeComponent from '../fabric/LuggMarkerViewNativeComponent';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
- export class Marker extends React.Component {
7
+ export class Marker extends React.PureComponent {
8
+ getStyle(zIndex) {
9
+ if (zIndex == null) return styles.marker;
10
+ if (zIndex !== this._cachedZIndex) {
11
+ this._cachedZIndex = zIndex;
12
+ this._cachedStyle = [{
13
+ zIndex
14
+ }, styles.marker];
15
+ }
16
+ return this._cachedStyle;
17
+ }
8
18
  render() {
9
19
  const {
10
20
  name,
@@ -12,15 +22,22 @@ export class Marker extends React.Component {
12
22
  title,
13
23
  description,
14
24
  anchor,
25
+ zIndex,
26
+ rotate = 0,
27
+ scale = 1,
28
+ rasterize = true,
15
29
  children
16
30
  } = this.props;
17
31
  return /*#__PURE__*/_jsx(LuggMarkerViewNativeComponent, {
18
- style: styles.marker,
32
+ style: this.getStyle(zIndex),
19
33
  name: name,
20
34
  coordinate: coordinate,
21
35
  title: title,
22
36
  description: description,
23
37
  anchor: anchor,
38
+ rotate: rotate,
39
+ scale: scale,
40
+ rasterize: rasterize,
24
41
  children: children
25
42
  });
26
43
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","StyleSheet","LuggMarkerViewNativeComponent","jsx","_jsx","Marker","Component","render","name","coordinate","title","description","anchor","children","props","style","styles","marker","create","position","pointerEvents"],"sourceRoot":"../../../src","sources":["components/Marker.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,6BAA6B,MAAM,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA8BpF,OAAO,MAAMC,MAAM,SAASL,KAAK,CAACM,SAAS,CAAc;EACvDC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC,IAAI;MAAEC,UAAU;MAAEC,KAAK;MAAEC,WAAW;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAC9D,IAAI,CAACC,KAAK;IAEZ,oBACEV,IAAA,CAACF,6BAA6B;MAC5Ba,KAAK,EAAEC,MAAM,CAACC,MAAO;MACrBT,IAAI,EAAEA,IAAK;MACXC,UAAU,EAAEA,UAAW;MACvBC,KAAK,EAAEA,KAAM;MACbC,WAAW,EAAEA,WAAY;MACzBC,MAAM,EAAEA,MAAO;MAAAC,QAAA,EAEdA;IAAQ,CACoB,CAAC;EAEpC;AACF;AAEA,MAAMG,MAAM,GAAGf,UAAU,CAACiB,MAAM,CAAC;EAC/BD,MAAM,EAAE;IACNE,QAAQ,EAAE,UAAU;IACpBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","StyleSheet","LuggMarkerViewNativeComponent","jsx","_jsx","Marker","PureComponent","getStyle","zIndex","styles","marker","_cachedZIndex","_cachedStyle","render","name","coordinate","title","description","anchor","rotate","scale","rasterize","children","props","style","create","position","pointerEvents"],"sourceRoot":"../../../src","sources":["components/Marker.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,6BAA6B,MAAM,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmDpF,OAAO,MAAMC,MAAM,SAASL,KAAK,CAACM,aAAa,CAAc;EACnDC,QAAQA,CAACC,MAA0B,EAAE;IAC3C,IAAIA,MAAM,IAAI,IAAI,EAAE,OAAOC,MAAM,CAACC,MAAM;IACxC,IAAIF,MAAM,KAAK,IAAI,CAACG,aAAa,EAAE;MACjC,IAAI,CAACA,aAAa,GAAGH,MAAM;MAC3B,IAAI,CAACI,YAAY,GAAG,CAAC;QAAEJ;MAAO,CAAC,EAAEC,MAAM,CAACC,MAAM,CAAC;IACjD;IACA,OAAO,IAAI,CAACE,YAAY;EAC1B;EAKAC,MAAMA,CAAA,EAAG;IACP,MAAM;MACJC,IAAI;MACJC,UAAU;MACVC,KAAK;MACLC,WAAW;MACXC,MAAM;MACNV,MAAM;MACNW,MAAM,GAAG,CAAC;MACVC,KAAK,GAAG,CAAC;MACTC,SAAS,GAAG,IAAI;MAChBC;IACF,CAAC,GAAG,IAAI,CAACC,KAAK;IAEd,oBACEnB,IAAA,CAACF,6BAA6B;MAC5BsB,KAAK,EAAE,IAAI,CAACjB,QAAQ,CAACC,MAAM,CAAE;MAC7BM,IAAI,EAAEA,IAAK;MACXC,UAAU,EAAEA,UAAW;MACvBC,KAAK,EAAEA,KAAM;MACbC,WAAW,EAAEA,WAAY;MACzBC,MAAM,EAAEA,MAAO;MACfC,MAAM,EAAEA,MAAO;MACfC,KAAK,EAAEA,KAAM;MACbC,SAAS,EAAEA,SAAU;MAAAC,QAAA,EAEpBA;IAAQ,CACoB,CAAC;EAEpC;AACF;AAEA,MAAMb,MAAM,GAAGR,UAAU,CAACwB,MAAM,CAAC;EAC/Bf,MAAM,EAAE;IACNgB,QAAQ,EAAE,UAAU;IACpBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { AdvancedMarker } from '@vis.gl/react-google-maps';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const toWebAnchor = value => `-${value * 100}%`;
6
+ export function Marker({
7
+ coordinate,
8
+ title,
9
+ anchor,
10
+ zIndex,
11
+ rotate,
12
+ scale,
13
+ children
14
+ }) {
15
+ const transforms = [];
16
+ if (rotate) transforms.push(`rotate(${rotate}deg)`);
17
+ if (scale && scale !== 1) transforms.push(`scale(${scale})`);
18
+ return /*#__PURE__*/_jsx(AdvancedMarker, {
19
+ position: {
20
+ lat: coordinate.latitude,
21
+ lng: coordinate.longitude
22
+ },
23
+ title: title,
24
+ zIndex: zIndex,
25
+ anchorLeft: anchor ? toWebAnchor(anchor.x) : undefined,
26
+ anchorTop: anchor ? toWebAnchor(anchor.y) : undefined,
27
+ style: transforms.length > 0 ? {
28
+ transform: transforms.join(' ')
29
+ } : undefined,
30
+ children: children
31
+ });
32
+ }
33
+ //# sourceMappingURL=Marker.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AdvancedMarker","jsx","_jsx","toWebAnchor","value","Marker","coordinate","title","anchor","zIndex","rotate","scale","children","transforms","push","position","lat","latitude","lng","longitude","anchorLeft","x","undefined","anchorTop","y","style","length","transform","join"],"sourceRoot":"../../../src","sources":["components/Marker.web.tsx"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG3D,MAAMC,WAAW,GAAIC,KAAa,IAAK,IAAIA,KAAK,GAAG,GAAG,GAAG;AAEzD,OAAO,SAASC,MAAMA,CAAC;EACrBC,UAAU;EACVC,KAAK;EACLC,MAAM;EACNC,MAAM;EACNC,MAAM;EACNC,KAAK;EACLC;AACW,CAAC,EAAE;EACd,MAAMC,UAAoB,GAAG,EAAE;EAC/B,IAAIH,MAAM,EAAEG,UAAU,CAACC,IAAI,CAAC,UAAUJ,MAAM,MAAM,CAAC;EACnD,IAAIC,KAAK,IAAIA,KAAK,KAAK,CAAC,EAAEE,UAAU,CAACC,IAAI,CAAC,SAASH,KAAK,GAAG,CAAC;EAE5D,oBACET,IAAA,CAACF,cAAc;IACbe,QAAQ,EAAE;MAAEC,GAAG,EAAEV,UAAU,CAACW,QAAQ;MAAEC,GAAG,EAAEZ,UAAU,CAACa;IAAU,CAAE;IAClEZ,KAAK,EAAEA,KAAM;IACbE,MAAM,EAAEA,MAAO;IACfW,UAAU,EAAEZ,MAAM,GAAGL,WAAW,CAACK,MAAM,CAACa,CAAC,CAAC,GAAGC,SAAU;IACvDC,SAAS,EAAEf,MAAM,GAAGL,WAAW,CAACK,MAAM,CAACgB,CAAC,CAAC,GAAGF,SAAU;IACtDG,KAAK,EACHZ,UAAU,CAACa,MAAM,GAAG,CAAC,GAAG;MAAEC,SAAS,EAAEd,UAAU,CAACe,IAAI,CAAC,GAAG;IAAE,CAAC,GAAGN,SAC/D;IAAAV,QAAA,EAEAA;EAAQ,CACK,CAAC;AAErB","ignoreList":[]}
@@ -4,20 +4,33 @@ import React from 'react';
4
4
  import { StyleSheet } from 'react-native';
5
5
  import LuggPolylineViewNativeComponent from '../fabric/LuggPolylineViewNativeComponent';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
- export class Polyline extends React.Component {
7
+ export class Polyline extends React.PureComponent {
8
+ getStyle(zIndex) {
9
+ if (zIndex == null) return styles.polyline;
10
+ if (zIndex !== this._cachedZIndex) {
11
+ this._cachedZIndex = zIndex;
12
+ this._cachedStyle = [{
13
+ zIndex
14
+ }, styles.polyline];
15
+ }
16
+ return this._cachedStyle;
17
+ }
8
18
  render() {
9
19
  const {
10
20
  coordinates,
11
21
  strokeColors,
12
22
  strokeWidth,
13
- animated = false
23
+ animated = false,
24
+ animatedOptions,
25
+ zIndex
14
26
  } = this.props;
15
27
  return /*#__PURE__*/_jsx(LuggPolylineViewNativeComponent, {
16
- style: styles.polyline,
28
+ style: this.getStyle(zIndex),
17
29
  coordinates: coordinates,
18
30
  strokeColors: strokeColors,
19
31
  strokeWidth: strokeWidth,
20
- animated: animated
32
+ animated: animated,
33
+ animatedOptions: animatedOptions
21
34
  });
22
35
  }
23
36
  }