UNPKG

wix-style-react

Version:
112 lines (100 loc) 3.43 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var GoogleMapsClient = /*#__PURE__*/function () { function GoogleMapsClient() { (0, _classCallCheck2["default"])(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(); } (0, _createClass2["default"])(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; }(); var _default = GoogleMapsClient; exports["default"] = _default;