react-native-maps 1.21.0-alpha.98 → 1.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/README.md +9 -4
  2. package/android/build.gradle +65 -72
  3. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  4. package/android/src/main/RCTAppDependencyProvider.h +25 -0
  5. package/android/src/main/RCTAppDependencyProvider.mm +55 -0
  6. package/android/src/main/RCTModulesConformingToProtocolsProvider.h +18 -0
  7. package/android/src/main/RCTModulesConformingToProtocolsProvider.mm +33 -0
  8. package/android/src/main/RCTThirdPartyComponentsProvider.h +16 -0
  9. package/android/src/main/RCTThirdPartyComponentsProvider.mm +28 -0
  10. package/android/src/main/ReactAppDependencyProvider.podspec +34 -0
  11. package/android/src/main/java/com/facebook/fbreact/specs/NativeAirMapsModuleSpec.java +63 -0
  12. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerDelegate.java +35 -0
  13. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCalloutManagerInterface.java +17 -0
  14. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerDelegate.java +49 -0
  15. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsCircleManagerInterface.java +23 -0
  16. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerDelegate.java +49 -0
  17. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsGooglePolygonManagerInterface.java +23 -0
  18. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerDelegate.java +209 -0
  19. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMapViewManagerInterface.java +74 -0
  20. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerDelegate.java +104 -0
  21. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsMarkerManagerInterface.java +39 -0
  22. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerDelegate.java +45 -0
  23. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsOverlayManagerInterface.java +22 -0
  24. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerDelegate.java +58 -0
  25. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsPolylineManagerInterface.java +26 -0
  26. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerDelegate.java +62 -0
  27. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsUrlTileManagerInterface.java +27 -0
  28. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerDelegate.java +56 -0
  29. package/android/src/main/java/com/facebook/react/viewmanagers/RNMapsWMSTileManagerInterface.java +25 -0
  30. package/android/src/main/java/com/rnmaps/fabric/MapViewManager.java +5 -1
  31. package/android/src/main/java/com/rnmaps/fabric/NativeAirMapsModule.java +1 -1
  32. package/android/src/main/java/com/rnmaps/fabric/OverlayManager.java +9 -3
  33. package/android/src/main/java/com/rnmaps/fabric/UrlTileManager.java +124 -0
  34. package/android/src/main/java/com/rnmaps/fabric/WMSTileManager.java +114 -0
  35. package/android/src/main/java/com/rnmaps/maps/MapAirModulePackage.java +19 -3
  36. package/android/src/main/java/com/rnmaps/maps/MapMarker.java +608 -603
  37. package/android/src/main/java/com/rnmaps/maps/MapMarkerManager.java +3 -3
  38. package/android/src/main/java/com/rnmaps/maps/MapOverlay.java +2 -22
  39. package/android/src/main/java/com/rnmaps/maps/MapOverlayManager.java +23 -1
  40. package/android/src/main/java/com/rnmaps/maps/MapUrlTile.java +18 -18
  41. package/android/src/main/java/com/rnmaps/maps/MapUrlTileManager.java +10 -14
  42. package/android/src/main/java/com/rnmaps/maps/MapView.java +58 -49
  43. package/android/src/main/java/com/rnmaps/maps/MapWMSTile.java +3 -3
  44. package/android/src/main/java/com/rnmaps/maps/MapWMSTileManager.java +10 -10
  45. package/android/src/main/jni/CMakeLists.txt +36 -0
  46. package/android/src/main/jni/RNMapsSpecs-generated.cpp +68 -0
  47. package/android/src/main/jni/RNMapsSpecs.h +31 -0
  48. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.cpp +31 -0
  49. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ComponentDescriptors.h +33 -0
  50. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.cpp +979 -0
  51. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/EventEmitters.h +860 -0
  52. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.cpp +227 -0
  53. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/Props.h +1297 -0
  54. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI-generated.cpp +74 -0
  55. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/RNMapsSpecsJSI.h +268 -0
  56. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.cpp +26 -0
  57. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/ShadowNodes.h +131 -0
  58. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.cpp +16 -0
  59. package/android/src/main/jni/react/renderer/components/RNMapsSpecs/States.h +137 -0
  60. package/ios/AirGoogleMaps/AIRGoogleMap.h +13 -13
  61. package/ios/AirGoogleMaps/{AIRGoogleMap.m → AIRGoogleMap.mm} +32 -34
  62. package/ios/AirGoogleMaps/AIRGoogleMapManager.h +1 -0
  63. package/ios/AirGoogleMaps/AIRGoogleMapManager.mm +543 -0
  64. package/ios/AirGoogleMaps/AIRGoogleMapMarker.m +3 -3
  65. package/ios/AirGoogleMaps/AIRGoogleMapMarkerManager.m +1 -1
  66. package/ios/AirGoogleMaps/AIRGoogleMapUrlTile.m +2 -2
  67. package/ios/AirGoogleMaps/AIRGoogleMapWMSTile.m +2 -2
  68. package/ios/AirGoogleMaps/RNMapsGoogleMapView.h +5 -2
  69. package/ios/AirGoogleMaps/RNMapsGoogleMapView.mm +41 -33
  70. package/ios/AirGoogleMaps/RNMapsGoogleMapViewManager.mm +16 -1
  71. package/ios/AirGoogleMaps/RNMapsGooglePolygonView.mm +23 -14
  72. package/ios/AirGoogleMaps/RNMapsGooglePolygonViewManager.mm +1 -0
  73. package/ios/AirMaps/AIRMap.h +8 -9
  74. package/ios/AirMaps/{AIRMap.m → AIRMap.mm} +18 -14
  75. package/ios/AirMaps/AIRMapManager.m +8 -19
  76. package/ios/AirMaps/AIRMapMarker.m +57 -44
  77. package/ios/AirMaps/AIRMapOverlay.m +2 -2
  78. package/ios/AirMaps/AIRMapWMSTile.m +8 -8
  79. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.h +25 -0
  80. package/ios/AirMaps/FabricPlaceholders/PlaceHolderGoogleMapView.mm +77 -0
  81. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.h +25 -0
  82. package/ios/AirMaps/FabricPlaceholders/PlaceHolderPolygonView.mm +51 -0
  83. package/ios/AirMaps/RNMapsAirModule.h +2 -3
  84. package/ios/AirMaps/RNMapsAirModule.mm +14 -0
  85. package/ios/AirMaps/RNMapsDefines.h +1 -0
  86. package/ios/AirMaps/RNMapsMapView.h +5 -2
  87. package/ios/AirMaps/RNMapsMapView.mm +16 -6
  88. package/ios/AirMaps/RNMapsMapViewManager.mm +19 -1
  89. package/ios/AirMaps/RNMapsMarkerView.mm +12 -4
  90. package/ios/AirMaps/RNMapsMarkerViewManager.mm +7 -0
  91. package/ios/AirMaps/module.modulemap +6 -0
  92. package/ios/AirMaps.xcodeproj/project.pbxproj +15 -55
  93. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  94. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  95. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  96. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  97. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  98. package/ios/generated/RCTThirdPartyComponentsProvider.mm +26 -0
  99. package/ios/{AirMaps → generated}/RNMapsAirModuleDelegate.h +1 -1
  100. package/ios/generated/RNMapsSpecs/ComponentDescriptors.cpp +29 -0
  101. package/ios/generated/RNMapsSpecs/ComponentDescriptors.h +31 -0
  102. package/ios/generated/RNMapsSpecs/EventEmitters.cpp +977 -0
  103. package/ios/generated/RNMapsSpecs/EventEmitters.h +846 -0
  104. package/ios/generated/RNMapsSpecs/Props.cpp +194 -0
  105. package/ios/generated/RNMapsSpecs/Props.h +1224 -0
  106. package/ios/generated/RNMapsSpecs/RCTComponentViewHelpers.h +591 -0
  107. package/ios/generated/RNMapsSpecs/RNMapsSpecs-generated.mm +92 -0
  108. package/ios/generated/RNMapsSpecs/RNMapsSpecs.h +137 -0
  109. package/ios/generated/RNMapsSpecs/ShadowNodes.cpp +24 -0
  110. package/ios/generated/RNMapsSpecs/ShadowNodes.h +109 -0
  111. package/ios/generated/RNMapsSpecs/States.cpp +16 -0
  112. package/ios/generated/RNMapsSpecs/States.h +113 -0
  113. package/ios/generated/RNMapsSpecsJSI-generated.cpp +74 -0
  114. package/ios/generated/RNMapsSpecsJSI.h +268 -0
  115. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  116. package/ios/generated/module.modulemap +15 -0
  117. package/package.json +30 -25
  118. package/react-native-google-maps.podspec +27 -0
  119. package/react-native-maps-generated.podspec +31 -0
  120. package/react-native-maps.podspec +52 -46
  121. package/react-native.config.js +16 -0
  122. package/src/AnimatedRegion.ts +169 -0
  123. package/src/Geojson.tsx +541 -0
  124. package/src/MapCallout.tsx +77 -0
  125. package/src/MapCalloutSubview.tsx +64 -0
  126. package/src/MapCircle.tsx +162 -0
  127. package/src/MapHeatmap.tsx +125 -0
  128. package/src/MapLocalTile.tsx +60 -0
  129. package/src/MapMarker.tsx +531 -0
  130. package/src/MapMarkerNativeComponent.ts +51 -0
  131. package/src/MapOverlay.tsx +178 -0
  132. package/src/MapPolygon.tsx +188 -0
  133. package/src/MapPolygon.types.ts +25 -0
  134. package/src/MapPolyline.tsx +215 -0
  135. package/src/MapUrlTile.tsx +169 -0
  136. package/src/MapView.tsx +1230 -0
  137. package/src/MapView.types.ts +212 -0
  138. package/src/MapView.web.ts +2 -0
  139. package/src/MapViewNativeComponent.ts +86 -0
  140. package/src/MapWMSTile.tsx +148 -0
  141. package/src/ProviderConstants.ts +2 -0
  142. package/src/createFabricMap.tsx +253 -0
  143. package/src/decorateMapComponent.ts +227 -0
  144. package/src/fixImageProp.ts +17 -0
  145. package/src/index.ts +52 -0
  146. package/src/sharedTypes.ts +101 -0
  147. package/{specs → src/specs}/NativeComponentCircle.ts +3 -4
  148. package/{specs → src/specs}/NativeComponentGoogleMapView.ts +15 -9
  149. package/{specs → src/specs}/NativeComponentMapView.ts +61 -32
  150. package/{specs → src/specs}/NativeComponentOverlay.ts +11 -2
  151. package/{specs → src/specs}/NativeComponentPolyline.ts +1 -1
  152. package/src/specs/NativeComponentUrlTile.ts +128 -0
  153. package/src/specs/NativeComponentWMSTile.ts +107 -0
  154. package/ios/AirGoogleMaps/AIRGoogleMapManager.m +0 -533
  155. package/lib/AnimatedRegion.d.ts +0 -19
  156. package/lib/AnimatedRegion.js +0 -134
  157. package/lib/Geojson.d.ts +0 -204
  158. package/lib/Geojson.js +0 -166
  159. package/lib/MapCallout.d.ts +0 -40
  160. package/lib/MapCallout.js +0 -51
  161. package/lib/MapCalloutSubview.d.ts +0 -34
  162. package/lib/MapCalloutSubview.js +0 -48
  163. package/lib/MapCircle.d.ts +0 -117
  164. package/lib/MapCircle.js +0 -53
  165. package/lib/MapHeatmap.d.ts +0 -78
  166. package/lib/MapHeatmap.js +0 -59
  167. package/lib/MapLocalTile.d.ts +0 -35
  168. package/lib/MapLocalTile.js +0 -44
  169. package/lib/MapMarker.d.ts +0 -322
  170. package/lib/MapMarker.js +0 -158
  171. package/lib/MapMarkerNativeComponent.d.ts +0 -15
  172. package/lib/MapMarkerNativeComponent.js +0 -15
  173. package/lib/MapOverlay.d.ts +0 -88
  174. package/lib/MapOverlay.js +0 -65
  175. package/lib/MapPolygon.d.ts +0 -140
  176. package/lib/MapPolygon.js +0 -53
  177. package/lib/MapPolygon.types.d.ts +0 -18
  178. package/lib/MapPolygon.types.js +0 -2
  179. package/lib/MapPolyline.d.ts +0 -156
  180. package/lib/MapPolyline.js +0 -53
  181. package/lib/MapUrlTile.d.ts +0 -134
  182. package/lib/MapUrlTile.js +0 -44
  183. package/lib/MapView.d.ts +0 -703
  184. package/lib/MapView.js +0 -427
  185. package/lib/MapView.types.d.ts +0 -161
  186. package/lib/MapView.types.js +0 -2
  187. package/lib/MapView.web.d.ts +0 -1
  188. package/lib/MapView.web.js +0 -9
  189. package/lib/MapViewNativeComponent.d.ts +0 -18
  190. package/lib/MapViewNativeComponent.js +0 -19
  191. package/lib/MapWMSTile.d.ts +0 -116
  192. package/lib/MapWMSTile.js +0 -44
  193. package/lib/ProviderConstants.d.ts +0 -2
  194. package/lib/ProviderConstants.js +0 -5
  195. package/lib/createFabricMap.d.ts +0 -24
  196. package/lib/createFabricMap.js +0 -188
  197. package/lib/decorateMapComponent.d.ts +0 -36
  198. package/lib/decorateMapComponent.js +0 -120
  199. package/lib/fixImageProp.d.ts +0 -4
  200. package/lib/fixImageProp.js +0 -16
  201. package/lib/index.d.ts +0 -38
  202. package/lib/index.js +0 -81
  203. package/lib/sharedTypes.d.ts +0 -81
  204. package/lib/sharedTypes.js +0 -2
  205. package/lib/sharedTypesInternal.js +0 -2
  206. package/lib/specs/NativeAirMapsModule.d.ts +0 -31
  207. package/lib/specs/NativeAirMapsModule.js +0 -4
  208. package/lib/specs/NativeComponentCallout.d.ts +0 -46
  209. package/lib/specs/NativeComponentCallout.js +0 -9
  210. package/lib/specs/NativeComponentCircle.d.ts +0 -74
  211. package/lib/specs/NativeComponentCircle.js +0 -7
  212. package/lib/specs/NativeComponentGoogleMapView.d.ts +0 -713
  213. package/lib/specs/NativeComponentGoogleMapView.js +0 -22
  214. package/lib/specs/NativeComponentGooglePolygon.d.ts +0 -75
  215. package/lib/specs/NativeComponentGooglePolygon.js +0 -7
  216. package/lib/specs/NativeComponentMapView.d.ts +0 -847
  217. package/lib/specs/NativeComponentMapView.js +0 -20
  218. package/lib/specs/NativeComponentMarker.d.ts +0 -258
  219. package/lib/specs/NativeComponentMarker.js +0 -19
  220. package/lib/specs/NativeComponentOverlay.d.ts +0 -67
  221. package/lib/specs/NativeComponentOverlay.js +0 -7
  222. package/lib/specs/NativeComponentPolyline.d.ts +0 -101
  223. package/lib/specs/NativeComponentPolyline.js +0 -7
  224. /package/ios/AirMaps/{UIView +AirMap.m → UIView+AirMap.m} +0 -0
  225. /package/ios/{AirMaps → generated}/RNMapsHostVewDelegate.h +0 -0
  226. /package/{lib/sharedTypesInternal.d.ts → src/sharedTypesInternal.ts} +0 -0
  227. /package/{specs → src/specs}/NativeAirMapsModule.ts +0 -0
  228. /package/{specs → src/specs}/NativeComponentCallout.ts +0 -0
  229. /package/{specs → src/specs}/NativeComponentGooglePolygon.ts +0 -0
  230. /package/{specs → src/specs}/NativeComponentMarker.ts +0 -0
@@ -1,533 +0,0 @@
1
- //
2
- // AIRGoogleMapManager.m
3
- // AirMaps
4
- //
5
- // Created by Gil Birman on 9/1/16.
6
- //
7
-
8
- #ifdef HAVE_GOOGLE_MAPS
9
-
10
-
11
- #import "AIRGoogleMapManager.h"
12
- #import <React/RCTViewManager.h>
13
- #import <React/RCTBridge.h>
14
- #import <React/RCTUIManager.h>
15
- #import <React/RCTConvert+CoreLocation.h>
16
- #import <React/RCTEventDispatcher.h>
17
- #import <React/RCTViewManager.h>
18
- #import <React/RCTConvert.h>
19
- #import <React/UIView+React.h>
20
- #import "RCTConvert+GMSMapViewType.h"
21
- #import "AIRGoogleMap.h"
22
- #import "AIRGoogleMapMarker.h"
23
- #import "AIRGoogleMapCoordinate.h"
24
- #import "RCTConvert+GMSMapViewType.h"
25
- #import <MapKit/MapKit.h>
26
- #import <QuartzCore/QuartzCore.h>
27
-
28
- static NSString *const RCTMapViewKey = @"MapView";
29
-
30
-
31
- @interface AIRGoogleMapManager() <GMSMapViewDelegate>
32
- {
33
- BOOL didCallOnMapReady;
34
- }
35
- @end
36
-
37
- @implementation AIRGoogleMapManager
38
-
39
- RCT_EXPORT_MODULE()
40
-
41
- - (UIView *)view
42
- {
43
-
44
- if (self.initialProps){
45
- if (self.initialProps[@"googleMapId"]){
46
- _googleMapId = self.initialProps[@"googleMapId"];
47
- }
48
- if (self.initialProps[@"zoomTapEnabled"]){
49
- _zoomTapEnabled = self.initialProps[@"zoomTapEnabled"];
50
- }
51
- if (self.initialProps[@"loadingBackgroundColor"]){
52
- _backgroundColor = [RCTConvert UIColor:self.initialProps[@"loadingBackgroundColor"]];
53
- }
54
- if (self.initialProps[@"initialCamera"]){
55
- _camera = [RCTConvert GMSCameraPositionWithDefaults:self.initialProps[@"initialCamera"] existingCamera:nil];
56
- }
57
- }
58
- AIRGoogleMap *map = [[AIRGoogleMap alloc] initWithMapId:self.googleMapId initialCamera:self.camera backgroundColor:self.backgroundColor andZoomTapEnabled:self.zoomTapEnabled];
59
- map.bridge = self.bridge;
60
- map.delegate = self;
61
- map.isAccessibilityElement = NO;
62
- map.accessibilityElementsHidden = NO;
63
- map.settings.consumesGesturesInView = NO;
64
-
65
- UIPanGestureRecognizer *drag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
66
- [drag setMinimumNumberOfTouches:1];
67
- [drag setMaximumNumberOfTouches:1];
68
- [map addGestureRecognizer:drag];
69
-
70
- UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handleMapDrag:)];
71
- [map addGestureRecognizer:pinch];
72
-
73
- return map;
74
- }
75
-
76
- RCT_EXPORT_VIEW_PROPERTY(isAccessibilityElement, BOOL)
77
- RCT_REMAP_VIEW_PROPERTY(testID, accessibilityIdentifier, NSString)
78
- RCT_EXPORT_VIEW_PROPERTY(googleMapId, NSString)
79
- RCT_EXPORT_VIEW_PROPERTY(initialCamera, GMSCameraPosition)
80
- RCT_REMAP_VIEW_PROPERTY(camera, cameraProp, GMSCameraPosition)
81
- RCT_EXPORT_VIEW_PROPERTY(initialRegion, MKCoordinateRegion)
82
- RCT_EXPORT_VIEW_PROPERTY(region, MKCoordinateRegion)
83
- RCT_EXPORT_VIEW_PROPERTY(showsBuildings, BOOL)
84
- RCT_EXPORT_VIEW_PROPERTY(showsCompass, BOOL)
85
- //RCT_EXPORT_VIEW_PROPERTY(showsScale, BOOL) // Not supported by GoogleMaps
86
- RCT_EXPORT_VIEW_PROPERTY(showsTraffic, BOOL)
87
- RCT_EXPORT_VIEW_PROPERTY(zoomEnabled, BOOL)
88
- RCT_EXPORT_VIEW_PROPERTY(rotateEnabled, BOOL)
89
- RCT_EXPORT_VIEW_PROPERTY(scrollEnabled, BOOL)
90
- RCT_EXPORT_VIEW_PROPERTY(scrollDuringRotateOrZoomEnabled, BOOL)
91
- RCT_EXPORT_VIEW_PROPERTY(pitchEnabled, BOOL)
92
- RCT_EXPORT_VIEW_PROPERTY(zoomTapEnabled, BOOL)
93
- RCT_EXPORT_VIEW_PROPERTY(showsUserLocation, BOOL)
94
- RCT_EXPORT_VIEW_PROPERTY(showsMyLocationButton, BOOL)
95
- RCT_EXPORT_VIEW_PROPERTY(showsIndoors, BOOL)
96
- RCT_EXPORT_VIEW_PROPERTY(showsIndoorLevelPicker, BOOL)
97
- RCT_EXPORT_VIEW_PROPERTY(customMapStyleString, NSString)
98
- RCT_EXPORT_VIEW_PROPERTY(mapPadding, UIEdgeInsets)
99
- RCT_REMAP_VIEW_PROPERTY(paddingAdjustmentBehavior, paddingAdjustmentBehaviorString, NSString)
100
- RCT_EXPORT_VIEW_PROPERTY(onMapReady, RCTBubblingEventBlock)
101
- RCT_EXPORT_VIEW_PROPERTY(onMapLoaded, RCTBubblingEventBlock)
102
- RCT_EXPORT_VIEW_PROPERTY(onKmlReady, RCTBubblingEventBlock)
103
- RCT_EXPORT_VIEW_PROPERTY(onPress, RCTBubblingEventBlock)
104
- RCT_EXPORT_VIEW_PROPERTY(onLongPress, RCTBubblingEventBlock)
105
- RCT_EXPORT_VIEW_PROPERTY(onPanDrag, RCTBubblingEventBlock)
106
- RCT_EXPORT_VIEW_PROPERTY(onUserLocationChange, RCTBubblingEventBlock)
107
- RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
108
- RCT_EXPORT_VIEW_PROPERTY(onMarkerPress, RCTDirectEventBlock)
109
- RCT_EXPORT_VIEW_PROPERTY(onMarkerSelect, RCTDirectEventBlock)
110
- RCT_EXPORT_VIEW_PROPERTY(onMarkerDeselect, RCTDirectEventBlock)
111
- RCT_EXPORT_VIEW_PROPERTY(onRegionChangeStart, RCTDirectEventBlock)
112
- RCT_EXPORT_VIEW_PROPERTY(onRegionChange, RCTDirectEventBlock)
113
- RCT_EXPORT_VIEW_PROPERTY(onRegionChangeComplete, RCTDirectEventBlock)
114
- RCT_EXPORT_VIEW_PROPERTY(onPoiClick, RCTDirectEventBlock)
115
- RCT_EXPORT_VIEW_PROPERTY(onIndoorLevelActivated, RCTDirectEventBlock)
116
- RCT_EXPORT_VIEW_PROPERTY(onIndoorBuildingFocused, RCTDirectEventBlock)
117
- RCT_EXPORT_VIEW_PROPERTY(mapType, GMSMapViewType)
118
- RCT_EXPORT_VIEW_PROPERTY(minZoomLevel, CGFloat)
119
- RCT_EXPORT_VIEW_PROPERTY(maxZoomLevel, CGFloat)
120
- RCT_EXPORT_VIEW_PROPERTY(kmlSrc, NSString)
121
- RCT_EXPORT_VIEW_PROPERTY(loadingBackgroundColor, UIColor)
122
-
123
- RCT_EXPORT_METHOD(getCamera:(nonnull NSNumber *)reactTag
124
- resolver: (RCTPromiseResolveBlock)resolve
125
- rejecter:(RCTPromiseRejectBlock)reject)
126
- {
127
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
128
- id view = viewRegistry[reactTag];
129
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
130
- reject(@"Invalid argument", [NSString stringWithFormat:@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view], NULL);
131
- } else {
132
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
133
- resolve(@{
134
- @"center": @{
135
- @"latitude": @(mapView.camera.target.latitude),
136
- @"longitude": @(mapView.camera.target.longitude),
137
- },
138
- @"pitch": @(mapView.camera.viewingAngle),
139
- @"heading": @(mapView.camera.bearing),
140
- @"zoom": @(mapView.camera.zoom),
141
- });
142
- }
143
- }];
144
- }
145
-
146
- RCT_EXPORT_METHOD(setCamera:(nonnull NSNumber *)reactTag
147
- camera:(id)json)
148
- {
149
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
150
- id view = viewRegistry[reactTag];
151
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
152
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
153
- } else {
154
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
155
- GMSCameraPosition *camera = [RCTConvert GMSCameraPositionWithDefaults:json existingCamera:[mapView cameraProp]];
156
- [mapView setCameraProp:camera];
157
- }
158
- }];
159
- }
160
-
161
-
162
- RCT_EXPORT_METHOD(animateCamera:(nonnull NSNumber *)reactTag
163
- withCamera:(id)json
164
- withDuration:(CGFloat)duration)
165
- {
166
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
167
- id view = viewRegistry[reactTag];
168
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
169
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
170
- } else {
171
- [CATransaction begin];
172
- [CATransaction setAnimationDuration:duration/1000];
173
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
174
- GMSCameraPosition *camera = [RCTConvert GMSCameraPositionWithDefaults:json existingCamera:[mapView cameraProp]];
175
- [mapView animateToCameraPosition:camera];
176
- [CATransaction commit];
177
- }
178
- }];
179
- }
180
-
181
- RCT_EXPORT_METHOD(animateToRegion:(nonnull NSNumber *)reactTag
182
- withRegion:(MKCoordinateRegion)region
183
- withDuration:(CGFloat)duration)
184
- {
185
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
186
- id view = viewRegistry[reactTag];
187
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
188
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
189
- } else {
190
- // Core Animation must be used to control the animation's duration
191
- // See http://stackoverflow.com/a/15663039/171744
192
- [CATransaction begin];
193
- [CATransaction setAnimationDuration:duration/1000];
194
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
195
- GMSCameraPosition *camera = [AIRGoogleMap makeGMSCameraPositionFromMap:mapView andMKCoordinateRegion:region];
196
- [mapView animateToCameraPosition:camera];
197
- [CATransaction commit];
198
- }
199
- }];
200
- }
201
-
202
- RCT_EXPORT_METHOD(fitToElements:(nonnull NSNumber *)reactTag
203
- edgePadding:(nonnull NSDictionary *)edgePadding
204
- animated:(BOOL)animated)
205
- {
206
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
207
- id view = viewRegistry[reactTag];
208
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
209
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
210
- } else {
211
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
212
- [mapView fitToElementsWithEdgePadding:edgePadding animated:animated];
213
- }
214
- }];
215
- }
216
-
217
- RCT_EXPORT_METHOD(fitToSuppliedMarkers:(nonnull NSNumber *)reactTag
218
- markers:(nonnull NSArray *)markers
219
- edgePadding:(nonnull NSDictionary *)edgePadding
220
- animated:(BOOL)animated)
221
- {
222
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
223
- id view = viewRegistry[reactTag];
224
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
225
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
226
- } else {
227
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
228
- [mapView fitToSuppliedMarkers:markers withEdgePadding:edgePadding animated:animated];
229
- }
230
- }];
231
- }
232
-
233
- RCT_EXPORT_METHOD(fitToCoordinates:(nonnull NSNumber *)reactTag
234
- coordinates:(nonnull NSArray<AIRGoogleMapCoordinate *> *)coordinates
235
- edgePadding:(nonnull NSDictionary *)edgePadding
236
- animated:(BOOL)animated)
237
- {
238
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
239
- id view = viewRegistry[reactTag];
240
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
241
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
242
- } else {
243
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
244
- [mapView fitToCoordinates:coordinates withEdgePadding:edgePadding animated:animated];
245
- }
246
- }];
247
- }
248
-
249
- RCT_EXPORT_METHOD(takeSnapshot:(nonnull NSNumber *)reactTag
250
- withWidth:(nonnull NSNumber *)width
251
- withHeight:(nonnull NSNumber *)height
252
- withRegion:(MKCoordinateRegion)region
253
- format:(nonnull NSString *)format
254
- quality:(nonnull NSNumber *)quality
255
- result:(nonnull NSString *)result
256
- withCallback:(RCTPromiseResolveBlock)callback)
257
- {
258
- NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
259
- NSString *pathComponent = [NSString stringWithFormat:@"Documents/snapshot-%.20lf.%@", timeStamp, format];
260
- NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent: pathComponent];
261
-
262
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
263
- id view = viewRegistry[reactTag];
264
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
265
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
266
- } else {
267
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
268
- NSMutableDictionary* config = [NSMutableDictionary new];
269
-
270
- [mapView takeSnapshotWithConfig:config success:callback error:^(NSString *code, NSString *message, NSError *error) {
271
- callback(@[error]);
272
- }];
273
-
274
- [config setObject:width forKey:@"width"];
275
- [config setObject:height forKey:@"height"];
276
- [config setObject:format forKey:@"format"];
277
- [config setObject:quality forKey:@"quality"];
278
- [config setObject:result forKey:@"result"];
279
- [config setObject:filePath forKey:@"filePath"];
280
-
281
- // TODO: currently we are ignoring width, height, region
282
-
283
- UIGraphicsBeginImageContextWithOptions(mapView.frame.size, YES, 0.0f);
284
- [mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
285
- UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
286
-
287
- NSData *data;
288
- if ([format isEqualToString:@"png"]) {
289
- data = UIImagePNGRepresentation(image);
290
-
291
- }
292
- else if([format isEqualToString:@"jpg"]) {
293
- data = UIImageJPEGRepresentation(image, quality.floatValue);
294
- }
295
-
296
- if ([result isEqualToString:@"file"]) {
297
- [data writeToFile:filePath atomically:YES];
298
- callback(@[[NSNull null], filePath]);
299
- }
300
- else if ([result isEqualToString:@"base64"]) {
301
- callback(@[[NSNull null], [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithCarriageReturn]]);
302
- }
303
- }
304
- UIGraphicsEndImageContext();
305
- }];
306
- }
307
-
308
- RCT_EXPORT_METHOD(pointForCoordinate:(nonnull NSNumber *)reactTag
309
- coordinate:(NSDictionary *)coordinate
310
- resolver: (RCTPromiseResolveBlock)resolve
311
- rejecter:(RCTPromiseRejectBlock)reject)
312
- {
313
- CLLocationCoordinate2D coord =
314
- CLLocationCoordinate2DMake(
315
- [coordinate[@"latitude"] doubleValue],
316
- [coordinate[@"longitude"] doubleValue]
317
- );
318
-
319
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
320
- id view = viewRegistry[reactTag];
321
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
322
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
323
- } else {
324
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
325
- resolve([mapView getPointForCoordinates:coord]);
326
- }
327
- }];
328
- }
329
-
330
- RCT_EXPORT_METHOD(coordinateForPoint:(nonnull NSNumber *)reactTag
331
- point:(NSDictionary *)point
332
- resolver: (RCTPromiseResolveBlock)resolve
333
- rejecter:(RCTPromiseRejectBlock)reject)
334
- {
335
- CGPoint pt = CGPointMake(
336
- [point[@"x"] doubleValue],
337
- [point[@"y"] doubleValue]
338
- );
339
-
340
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
341
- id view = viewRegistry[reactTag];
342
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
343
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
344
- } else {
345
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
346
- resolve([view getCoordinatesForPoint:pt]);
347
- }
348
- }];
349
- }
350
-
351
- RCT_EXPORT_METHOD(getMarkersFrames:(nonnull NSNumber *)reactTag
352
- onlyVisible:(BOOL)onlyVisible
353
- resolver: (RCTPromiseResolveBlock)resolve
354
- rejecter:(RCTPromiseRejectBlock)reject)
355
- {
356
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
357
- id view = viewRegistry[reactTag];
358
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
359
- RCTLogError(@"Invalid view returned from registry, expecting AIRMap, got: %@", view);
360
- } else {
361
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
362
- resolve([mapView getMarkersFramesWithOnlyVisible:onlyVisible]);
363
- }
364
- }];
365
- }
366
-
367
- RCT_EXPORT_METHOD(getMapBoundaries:(nonnull NSNumber *)reactTag
368
- resolver:(RCTPromiseResolveBlock)resolve
369
- rejecter:(RCTPromiseRejectBlock)reject)
370
- {
371
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
372
- id view = viewRegistry[reactTag];
373
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
374
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
375
- } else {
376
- resolve([view getMapBoundaries]);
377
- }
378
- }];
379
- }
380
-
381
- RCT_EXPORT_METHOD(setMapBoundaries:(nonnull NSNumber *)reactTag
382
- northEast:(CLLocationCoordinate2D)northEast
383
- southWest:(CLLocationCoordinate2D)southWest)
384
- {
385
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
386
- id view = viewRegistry[reactTag];
387
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
388
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
389
- } else {
390
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
391
-
392
- GMSCoordinateBounds *bounds = [[GMSCoordinateBounds alloc] initWithCoordinate:northEast coordinate:southWest];
393
-
394
- mapView.cameraTargetBounds = bounds;
395
- }
396
- }];
397
- }
398
-
399
- RCT_EXPORT_METHOD(setIndoorActiveLevelIndex:(nonnull NSNumber *)reactTag
400
- levelIndex:(NSInteger) levelIndex)
401
- {
402
- [self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
403
- id view = viewRegistry[reactTag];
404
- if (![view isKindOfClass:[AIRGoogleMap class]]) {
405
- RCTLogError(@"Invalid view returned from registry, expecting AIRGoogleMap, got: %@", view);
406
- } else {
407
- AIRGoogleMap *mapView = (AIRGoogleMap *)view;
408
- if (!mapView.indoorDisplay) {
409
- return;
410
- }
411
- if ( levelIndex < [mapView.indoorDisplay.activeBuilding.levels count]) {
412
- mapView.indoorDisplay.activeLevel = mapView.indoorDisplay.activeBuilding.levels[levelIndex];
413
- }
414
- }
415
- }];
416
- }
417
-
418
- + (BOOL)requiresMainQueueSetup {
419
- return YES;
420
- }
421
-
422
- - (NSDictionary *)constantsToExport {
423
- return @{ @"legalNotice": [GMSServices openSourceLicenseInfo] };
424
- }
425
-
426
- - (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture {
427
- self.isGesture = gesture;
428
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
429
- [googleMapView willMove:gesture];
430
- }
431
-
432
- - (void)mapViewDidStartTileRendering:(GMSMapView *)mapView {
433
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
434
- [googleMapView didPrepareMap];
435
- }
436
-
437
- - (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView {
438
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
439
- [googleMapView mapViewDidFinishTileRendering];
440
- }
441
-
442
- - (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {
443
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
444
- return [googleMapView didTapMarker:marker];
445
- }
446
-
447
- - (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSPolygon *)polygon {
448
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
449
- [googleMapView didTapPolygon:polygon];
450
- }
451
-
452
- - (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate {
453
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
454
- [googleMapView didTapAtCoordinate:coordinate];
455
- }
456
-
457
- - (void)mapView:(GMSMapView *)mapView didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate {
458
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
459
- [googleMapView didLongPressAtCoordinate:coordinate];
460
- }
461
-
462
- - (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position {
463
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
464
- [googleMapView didChangeCameraPosition:position isGesture:self.isGesture];
465
- }
466
-
467
- - (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position {
468
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
469
- [googleMapView idleAtCameraPosition:position isGesture:self.isGesture];
470
- }
471
-
472
- - (UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {
473
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
474
- return [aMarker.fakeMarker markerInfoWindow];}
475
-
476
- - (UIView *)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker {
477
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
478
- return [aMarker.fakeMarker markerInfoContents];
479
- }
480
-
481
- - (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker {
482
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
483
- [aMarker.fakeMarker didTapInfoWindowOfMarker:aMarker];
484
- }
485
-
486
- - (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker {
487
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
488
- [aMarker.fakeMarker didBeginDraggingMarker:aMarker];
489
- }
490
-
491
- - (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker {
492
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
493
- [aMarker.fakeMarker didEndDraggingMarker:aMarker];
494
- }
495
-
496
- - (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker {
497
- AIRGMSMarker *aMarker = (AIRGMSMarker *)marker;
498
- [aMarker.fakeMarker didDragMarker:aMarker];
499
- }
500
-
501
- - (void)mapView:(GMSMapView *)mapView
502
- didTapPOIWithPlaceID:(NSString *)placeID
503
- name:(NSString *)name
504
- location:(CLLocationCoordinate2D)location {
505
- AIRGoogleMap *googleMapView = (AIRGoogleMap *)mapView;
506
- [googleMapView didTapPOIWithPlaceID:placeID name:name location:location];
507
- }
508
-
509
- #pragma mark Gesture Recognizer Handlers
510
-
511
- - (void)handleMapDrag:(UIPanGestureRecognizer*)recognizer {
512
- AIRGoogleMap *map = (AIRGoogleMap *)recognizer.view;
513
- if (!map.onPanDrag) return;
514
-
515
- CGPoint touchPoint = [recognizer locationInView:map];
516
- CLLocationCoordinate2D coord = [map.projection coordinateForPoint:touchPoint];
517
- map.onPanDrag(@{
518
- @"coordinate": @{
519
- @"latitude": @(coord.latitude),
520
- @"longitude": @(coord.longitude),
521
- },
522
- @"position": @{
523
- @"x": @(touchPoint.x),
524
- @"y": @(touchPoint.y),
525
- },
526
- @"numberOfTouches": @(recognizer.numberOfTouches),
527
- });
528
-
529
- }
530
-
531
- @end
532
-
533
- #endif
@@ -1,19 +0,0 @@
1
- import { Animated } from 'react-native';
2
- import { Region } from './sharedTypes';
3
- declare const AnimatedWithChildren: any;
4
- type Props = Partial<Region> | undefined;
5
- export default class AnimatedMapRegion extends AnimatedWithChildren {
6
- constructor(valueIn?: Props);
7
- setValue(value: Region): void;
8
- setOffset(offset: Region): void;
9
- flattenOffset(): void;
10
- private __getValue;
11
- private __attach;
12
- private __detach;
13
- stopAnimation(callback: (region: Region) => void): void;
14
- addListener(callback: (region: Region) => void): string;
15
- removeListener(id: string): void;
16
- spring(config: Animated.SpringAnimationConfig & Region): Animated.CompositeAnimation;
17
- timing(config: Animated.TimingAnimationConfig & Region): Animated.CompositeAnimation;
18
- }
19
- export {};
@@ -1,134 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_native_1 = require("react-native");
4
- const AnimatedWithChildren = Object.getPrototypeOf(react_native_1.Animated.ValueXY);
5
- if (__DEV__) {
6
- if (AnimatedWithChildren.name !== 'AnimatedWithChildren') {
7
- console.error('AnimatedRegion could not obtain AnimatedWithChildren base class');
8
- }
9
- }
10
- const configTypes = [
11
- 'latitude',
12
- 'longitude',
13
- 'latitudeDelta',
14
- 'longitudeDelta',
15
- ];
16
- const defaultValues = {
17
- // probably want to come up with better defaults
18
- latitude: 0,
19
- longitude: 0,
20
- latitudeDelta: 0,
21
- longitudeDelta: 0,
22
- };
23
- let _uniqueId = 1;
24
- const getAnimatedValue = (valueIn, fallback) => {
25
- if (valueIn instanceof react_native_1.Animated.Value) {
26
- return valueIn;
27
- }
28
- else if (typeof valueIn === 'number') {
29
- return new react_native_1.Animated.Value(valueIn);
30
- }
31
- return new react_native_1.Animated.Value(fallback);
32
- };
33
- class AnimatedMapRegion extends AnimatedWithChildren {
34
- constructor(valueIn = {}) {
35
- super();
36
- this.latitude = getAnimatedValue(valueIn.latitude, defaultValues.latitude);
37
- this.longitude = getAnimatedValue(valueIn.longitude, defaultValues.longitude);
38
- this.latitudeDelta = getAnimatedValue(valueIn.latitudeDelta, defaultValues.latitudeDelta);
39
- this.longitudeDelta = getAnimatedValue(valueIn.longitudeDelta, defaultValues.longitudeDelta);
40
- this._regionListeners = {};
41
- }
42
- setValue(value) {
43
- this.latitude._value = value.latitude;
44
- this.longitude._value = value.longitude;
45
- this.latitudeDelta._value = value.latitudeDelta;
46
- this.longitudeDelta._value = value.longitudeDelta;
47
- }
48
- setOffset(offset) {
49
- this.latitude.setOffset(offset.latitude);
50
- this.longitude.setOffset(offset.longitude);
51
- this.latitudeDelta.setOffset(offset.latitudeDelta);
52
- this.longitudeDelta.setOffset(offset.longitudeDelta);
53
- }
54
- flattenOffset() {
55
- this.latitude.flattenOffset();
56
- this.longitude.flattenOffset();
57
- this.latitudeDelta.flattenOffset();
58
- this.longitudeDelta.flattenOffset();
59
- }
60
- __getValue() {
61
- return {
62
- latitude: this.latitude.__getValue(),
63
- longitude: this.longitude.__getValue(),
64
- latitudeDelta: this.latitudeDelta.__getValue(),
65
- longitudeDelta: this.longitudeDelta.__getValue(),
66
- };
67
- }
68
- __attach() {
69
- this.latitude.__addChild(this);
70
- this.longitude.__addChild(this);
71
- this.latitudeDelta.__addChild(this);
72
- this.longitudeDelta.__addChild(this);
73
- }
74
- __detach() {
75
- this.latitude.__removeChild(this);
76
- this.longitude.__removeChild(this);
77
- this.latitudeDelta.__removeChild(this);
78
- this.longitudeDelta.__removeChild(this);
79
- }
80
- stopAnimation(callback) {
81
- this.latitude.stopAnimation();
82
- this.longitude.stopAnimation();
83
- this.latitudeDelta.stopAnimation();
84
- this.longitudeDelta.stopAnimation();
85
- callback && callback(this.__getValue());
86
- }
87
- addListener(callback) {
88
- const id = String(_uniqueId++);
89
- const jointCallback = () => /*{value}*/ callback(this.__getValue());
90
- this._regionListeners[id] = {
91
- latitude: this.latitude.addListener(jointCallback),
92
- longitude: this.longitude.addListener(jointCallback),
93
- latitudeDelta: this.latitudeDelta.addListener(jointCallback),
94
- longitudeDelta: this.longitudeDelta.addListener(jointCallback),
95
- };
96
- return id;
97
- }
98
- removeListener(id) {
99
- this.latitude.removeListener(this._regionListeners[id].latitude);
100
- this.longitude.removeListener(this._regionListeners[id].longitude);
101
- this.latitudeDelta.removeListener(this._regionListeners[id].latitudeDelta);
102
- this.longitudeDelta.removeListener(this._regionListeners[id].longitudeDelta);
103
- delete this._regionListeners[id];
104
- }
105
- spring(config) {
106
- const animations = [];
107
- for (const type of configTypes) {
108
- if (config.hasOwnProperty(type)) {
109
- animations.push(react_native_1.Animated.spring(this[type], {
110
- ...config,
111
- toValue: config[type],
112
- // may help to eliminate some dev warnings and perf issues
113
- useNativeDriver: !!config?.useNativeDriver,
114
- }));
115
- }
116
- }
117
- return react_native_1.Animated.parallel(animations);
118
- }
119
- timing(config) {
120
- const animations = [];
121
- for (const type of configTypes) {
122
- if (config.hasOwnProperty(type)) {
123
- animations.push(react_native_1.Animated.timing(this[type], {
124
- ...config,
125
- toValue: config[type],
126
- // may help to eliminate some dev warnings and perf issues
127
- useNativeDriver: !!config?.useNativeDriver,
128
- }));
129
- }
130
- }
131
- return react_native_1.Animated.parallel(animations);
132
- }
133
- }
134
- exports.default = AnimatedMapRegion;