wix-style-react
Version:
wix-style-react
90 lines (89 loc) • 2.67 kB
JavaScript
;
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