1{"version":3,"file":"Map.js","sourceRoot":"","sources":["../src/Map.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ProxyNativeModule, requireNativeModule } from 'expo-modules-core';\nimport React from 'react';\nimport { Platform, findNodeHandle } from 'react-native';\n\nimport { CameraMove } from './Common.types';\nimport { DefaultNativeExpoMapViewProps, ExpoMapState, ExpoMapViewProps } from './Map.types';\nimport {\n NativeExpoAppleMapsView,\n NativeExpoAppleMapsModule,\n NativeExpoGoogleMapsView,\n NativeExpoGoogleMapsModule,\n} from './NativeExpoMapView';\nimport * as Utils from './Utils';\n\nexport { Marker } from './Marker';\nexport { Polygon } from './Polygon';\nexport { Polyline } from './Polyline';\nexport { Circle } from './Circle';\nexport { Cluster } from './Cluster';\nexport { KML } from './KML';\nexport { GeoJson } from './GeoJson';\nexport { Overlay } from './Overlay';\nexport { ExpoMapRef } from './Map.types';\nexport { POICategoryType } from './Map.types';\nexport { Heatmap } from './Heatmap';\nexport * from './Events';\n\nconst defaultNativeExpoMapViewProps: DefaultNativeExpoMapViewProps = {\n mapType: 'normal',\n showZoomControls: true,\n showCompass: true,\n showMapToolbar: true,\n showMyLocationButton: true,\n showLevelPicker: true,\n enableRotateGestures: false,\n enableScrollGestures: true,\n enableTiltGestures: false,\n enableZoomGestures: true,\n initialCameraPosition: {\n target: {\n latitude: 51.51,\n longitude: 0.13,\n },\n zoom: 4,\n animate: true,\n duration: 1000,\n },\n enableTraffic: false,\n enablePOISearching: false,\n enablePOIs: false,\n enablePOIFilter: [],\n createPOISearchRequest: '',\n clickablePOIs: true,\n};\n\n/**\n * Main map component of Expo Maps library.\n *\n * See {@link ExpoMapViewProps} to learn more about props.\n */\nexport class ExpoMap extends React.Component<ExpoMapViewProps> {\n state: ExpoMapState = {\n markers: [],\n polygons: [],\n polylines: [],\n circles: [],\n clusters: [],\n kmls: [],\n geojsons: [],\n overlays: [],\n heatmaps: [],\n };\n _ismounted = false;\n mapView = React.createRef<ExpoMap>();\n\n getSearchCompletions(queryFragment: string) {\n const nodeHandle = findNodeHandle(this.mapView.current);\n let module: ProxyNativeModule;\n if (Platform.OS === 'ios' && this.props.provider === 'apple') {\n module = NativeExpoAppleMapsModule;\n } else {\n module = NativeExpoGoogleMapsModule;\n }\n\n module\n .getSearchCompletions(nodeHandle, queryFragment)\n .then((response: [string]) => {\n console.log(response);\n })\n .catch((error: Error) => {\n console.log('Error with message: ' + error.message);\n });\n }\n\n async moveCamera(cameraMove: CameraMove) {\n const nodeHandle = findNodeHandle(this.mapView.current);\n let module: ProxyNativeModule;\n if (Platform.OS === 'ios' && this.props.provider === 'apple') {\n module = requireNativeModule('ExpoAppleMaps');\n } else {\n module = requireNativeModule('ExpoGoogleMaps');\n }\n return module.moveCamera(nodeHandle, cameraMove);\n }\n\n componentDidMount() {\n this.mapChildren();\n this._ismounted = true;\n }\n\n componentWillUnmount() {\n this._ismounted = false;\n }\n\n componentDidUpdate(_, prevState: ExpoMapState) {\n if (Object.is(this.state, prevState)) {\n this.mapChildren();\n }\n }\n\n private async mapChildren() {\n const childrenArray = React.Children.map(this.props.children, async (child) => {\n if (!Utils.isSimpleType(child)) {\n if (Utils.isMarker(child)) {\n return Utils.buildMarkerObject(child);\n } else if (Utils.isPolygon(child)) {\n return Utils.buildPolygonObject(child);\n } else if (Utils.isPolyline(child)) {\n return Utils.buildPolylineObject(child);\n } else if (Utils.isCircle(child)) {\n return Utils.buildCircleObject(child);\n } else if (Utils.isKML(child)) {\n return Utils.buildKMLObject(child);\n } else if (Utils.isGeoJson(child)) {\n return Utils.buildGeoJsonObject(child);\n } else if (Utils.isCluster(child)) {\n return Utils.buildClusterObject(child);\n } else if (Utils.isOverlay(child)) {\n return Utils.buildOverlayObject(child);\n } else if (Utils.isHeatmap(child)) {\n return Utils.buildHeatmapObject(child);\n }\n Utils.warnIfChildIsIncompatible(child);\n return null;\n }\n Utils.warnIfChildIsIncompatible(child);\n return null;\n });\n\n if (childrenArray !== undefined) {\n // TODO(@lukmccall): remove any cast\n const propObjects = await Promise.all(childrenArray as any);\n if (this._ismounted) {\n this.setState({\n markers: propObjects.filter((elem) => elem?.type === 'marker'),\n polygons: propObjects.filter((elem) => elem?.type === 'polygon'),\n polylines: propObjects.filter((elem) => elem?.type === 'polyline'),\n circles: propObjects.filter((elem) => elem?.type === 'circle'),\n clusters: propObjects.filter((elem) => elem?.type === 'cluster'),\n kmls: propObjects.filter((elem) => elem?.type === 'kml'),\n geojsons: propObjects.filter((elem) => elem?.type === 'geojson'),\n overlays: propObjects.filter((elem) => elem?.type === 'overlay'),\n heatmaps: propObjects.filter((elem) => elem?.type === 'heatmap'),\n });\n }\n }\n }\n\n render() {\n if (Platform.OS === 'ios' && this.props.provider === 'apple') {\n if (parseInt(Platform.Version, 10) < 13 && this.state.geojsons.length > 0) {\n console.warn(\n \"Versions of iOS < 13 doesn't support GeoJSON features for Apple Maps. Adding of GeoJSON for these versions will be omitted.\"\n );\n }\n if (parseInt(Platform.Version, 10) < 13) {\n console.warn(\n \"Versions of iOS < 13 doesn't support Points Of Interest Filters and their display modifications for Apple Maps. Adding POI filters for these versions will be omitted.\"\n );\n }\n return (\n <NativeExpoAppleMapsView\n {...defaultNativeExpoMapViewProps}\n {...this.props}\n markers={this.state.markers}\n polygons={this.state.polygons}\n polylines={this.state.polylines}\n circles={this.state.circles}\n clusters={this.state.clusters}\n kmls={this.state.kmls}\n geojsons={this.state.geojsons}\n ref={this.mapView}\n />\n );\n }\n\n let googleMapsJsonStyleString = this.props.googleMapsJsonStyleString\n ? this.props.googleMapsJsonStyleString\n : '';\n if (this.props.enablePOIs === false) {\n if (this.props.googleMapsJsonStyleString) {\n console.warn(\n \"Expo Maps enablePOIs prop isn't effective when custom Google Maps map style is active. Please adjust your style manually to disable the POIs. https://developers.google.com/maps/documentation/ios-sdk/poi\"\n );\n } else {\n googleMapsJsonStyleString = JSON.stringify([\n {\n featureType: 'poi',\n stylers: [{ visibility: 'off' }],\n },\n ]);\n }\n }\n\n return (\n <NativeExpoGoogleMapsView\n {...defaultNativeExpoMapViewProps}\n {...this.props}\n googleMapsJsonStyleString={googleMapsJsonStyleString}\n markers={this.state.markers}\n polygons={this.state.polygons}\n polylines={this.state.polylines}\n circles={this.state.circles}\n clusters={this.state.clusters}\n kmls={this.state.kmls}\n geojsons={this.state.geojsons}\n ref={this.mapView}\n overlays={this.state.overlays}\n heatmaps={this.state.heatmaps}\n />\n );\n }\n}\n"]}