UNPKG

wix-style-react

Version:
103 lines (93 loc) 3.11 kB
import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; var GoogleMapsClient = /*#__PURE__*/function () { function GoogleMapsClient() { _classCallCheck(this, GoogleMapsClient); 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(); } _createClass(GoogleMapsClient, [{ key: "autocomplete", value: function autocomplete(_ref) { var _this = this; var request = _ref.request; return new Promise(function (resolve, reject) { try { if (_this._sessionToken) { request.sessionToken = _this._sessionToken; } _this._autocomplete.getPlacePredictions(request, function (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 }); } }); } }, { key: "geocode", value: function geocode(_ref2) { var _this2 = this; var request = _ref2.request; return new Promise(function (resolve, reject) { try { _this2._geocoder.geocode(request, function (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 }); } }); } }, { key: "placeDetails", value: function placeDetails(_ref3) { var _this3 = this; var request = _ref3.request; return new Promise(function (resolve, reject) { try { if (_this3._sessionToken) { request.sessionToken = _this3._sessionToken; } _this3._placesServices.getDetails(request, function (result, status) { 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 }); } }); } }]); return GoogleMapsClient; }(); export default GoogleMapsClient;