UNPKG

wix-style-react

Version:
90 lines (89 loc) 2.67 kB
"use strict"; exports.__esModule = true; exports.default = void 0; class GoogleMapsClient { constructor() { this._autocomplete = new window.google.maps.places.AutocompleteService(); this._geocoder = new window.google.maps.Geocoder(); var map = new window.google.maps.Map(document.createElement('div')); this._placesServices = new window.google.maps.places.PlacesService(map); this._sessionToken = new window.google.maps.places.AutocompleteSessionToken(); } autocomplete(_ref) { var { request } = _ref; return new Promise((resolve, reject) => { try { this._sessionToken = this._sessionToken || new window.google.maps.places.AutocompleteSessionToken(); request.sessionToken = this._sessionToken; this._autocomplete.getPlacePredictions(request, (results, status) => { if (status !== window.google.maps.GeocoderStatus.OK && status !== window.google.maps.GeocoderStatus.ZERO_RESULTS) { reject({ code: 'internal' }); } else { resolve(results || []); } }); } catch (e) { reject({ code: 'internal', message: e.message }); } }); } geocode(_ref2) { var { request } = _ref2; return new Promise((resolve, reject) => { try { this._geocoder.geocode(request, (results, status) => { if (status !== window.google.maps.GeocoderStatus.OK && status !== window.google.maps.GeocoderStatus.ZERO_RESULTS) { reject({ code: 'internal' }); } else { resolve(results || []); } }); } catch (e) { reject({ code: 'internal', message: e.message }); } }); } placeDetails(_ref3) { var { request } = _ref3; return new Promise((resolve, reject) => { try { if (this._sessionToken) { request.sessionToken = this._sessionToken; } this._placesServices.getDetails(request, (result, status) => { this._sessionToken = ''; if (status !== window.google.maps.places.PlacesServiceStatus.OK && status !== window.google.maps.places.PlacesServiceStatus.ZERO_RESULTS) { reject({ code: 'internal' }); } else { resolve(result || undefined); } }); } catch (e) { reject({ code: 'internal', message: e.message }); } }); } } var _default = exports.default = GoogleMapsClient; //# sourceMappingURL=GoogleMapsClient.js.map