@dfds-ui/google-places 2.2.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AddressSelect.d.ts +3 -3
- package/AddressSelect.js +37 -35
- package/GooglePlaces.d.ts +1 -1
- package/GooglePlaces.js +15 -15
- package/cjs/AddressSelect.d.ts +3 -3
- package/cjs/AddressSelect.js +44 -65
- package/cjs/GooglePlaces.d.ts +1 -1
- package/cjs/GooglePlaces.js +19 -34
- package/cjs/index.js +4 -5
- package/package.json +9 -9
package/AddressSelect.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ILocation, IPrediction } from './GooglePlaces';
|
|
3
|
-
export
|
|
3
|
+
export type AddressSelectProps = {
|
|
4
4
|
components?: any;
|
|
5
5
|
name: string;
|
|
6
6
|
disabled?: boolean;
|
|
@@ -25,5 +25,5 @@ export declare type AddressSelectProps = {
|
|
|
25
25
|
*/
|
|
26
26
|
className?: string;
|
|
27
27
|
};
|
|
28
|
-
declare const AddressSelect: ({ name, disabled, error, size, types, onFocus, onBlur, onChange, location, radius, countries, ...rest }: AddressSelectProps) => JSX.Element;
|
|
28
|
+
declare const AddressSelect: ({ name, disabled, error, size, types, onFocus, onBlur, onChange, location, radius, countries, ...rest }: AddressSelectProps) => React.JSX.Element;
|
|
29
29
|
export default AddressSelect;
|
package/AddressSelect.js
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
2
|
var _excluded = ["name", "disabled", "error", "size", "types", "onFocus", "onBlur", "onChange", "location", "radius", "countries"];
|
|
3
|
-
function
|
|
4
|
-
function
|
|
5
|
-
function
|
|
6
|
-
function
|
|
7
|
-
function
|
|
3
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
9
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
10
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
11
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
12
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
8
13
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
-
function _unsupportedIterableToArray(
|
|
10
|
-
function _arrayLikeToArray(
|
|
11
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0)
|
|
12
|
-
function _arrayWithHoles(
|
|
13
|
-
function _objectWithoutProperties(
|
|
14
|
-
function _objectWithoutPropertiesLoose(
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
16
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
18
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
19
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
15
20
|
import React, { useState } from 'react';
|
|
16
21
|
import { AsyncSearchableSelect } from '@dfds-ui/react-components';
|
|
17
22
|
import debounce from 'lodash.debounce';
|
|
18
23
|
import { useAddressPredictions } from './GooglePlaces';
|
|
19
|
-
import { jsx as
|
|
24
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
20
25
|
var AddressSelect = function AddressSelect(_ref) {
|
|
21
26
|
var name = _ref.name,
|
|
22
27
|
disabled = _ref.disabled,
|
|
@@ -47,29 +52,26 @@ var AddressSelect = function AddressSelect(_ref) {
|
|
|
47
52
|
available = _useAddressPrediction.available,
|
|
48
53
|
getPlacePredictions = _useAddressPrediction.getPlacePredictions;
|
|
49
54
|
var loadOptions = /*#__PURE__*/function () {
|
|
50
|
-
var _ref2 = _asyncToGenerator(
|
|
55
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(input, callback) {
|
|
51
56
|
var placePredictions, options;
|
|
52
|
-
return
|
|
53
|
-
while (1) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
case "end":
|
|
71
|
-
return _context.stop();
|
|
72
|
-
}
|
|
57
|
+
return _regenerator().w(function (_context) {
|
|
58
|
+
while (1) switch (_context.n) {
|
|
59
|
+
case 0:
|
|
60
|
+
_context.n = 1;
|
|
61
|
+
return getPlacePredictions(input);
|
|
62
|
+
case 1:
|
|
63
|
+
placePredictions = _context.v;
|
|
64
|
+
setPredictions(placePredictions);
|
|
65
|
+
options = placePredictions.map(function (prediction) {
|
|
66
|
+
return {
|
|
67
|
+
value: prediction.description,
|
|
68
|
+
label: prediction.description,
|
|
69
|
+
prediction: prediction
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
callback(options);
|
|
73
|
+
case 2:
|
|
74
|
+
return _context.a(2);
|
|
73
75
|
}
|
|
74
76
|
}, _callee);
|
|
75
77
|
}));
|
|
@@ -82,7 +84,7 @@ var AddressSelect = function AddressSelect(_ref) {
|
|
|
82
84
|
onChange(value, predictions);
|
|
83
85
|
}
|
|
84
86
|
};
|
|
85
|
-
return
|
|
87
|
+
return _jsx(AsyncSearchableSelect, _objectSpread({
|
|
86
88
|
disabled: disabled || !available,
|
|
87
89
|
name: name,
|
|
88
90
|
error: error,
|
package/GooglePlaces.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export interface IGooglePlacesAPIProviderProps {
|
|
|
42
42
|
language?: string;
|
|
43
43
|
libraries?: string;
|
|
44
44
|
}
|
|
45
|
-
export declare const GooglePlacesAPIProvider: ({ children, apiKey, language, libraries, }: IGooglePlacesAPIProviderProps) => JSX.Element;
|
|
45
|
+
export declare const GooglePlacesAPIProvider: ({ children, apiKey, language, libraries, }: IGooglePlacesAPIProviderProps) => React.JSX.Element;
|
|
46
46
|
export declare const useGooglePlacesAPI: () => {
|
|
47
47
|
available: boolean;
|
|
48
48
|
};
|
package/GooglePlaces.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
function _slicedToArray(
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
2
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _unsupportedIterableToArray(
|
|
4
|
-
function _arrayLikeToArray(
|
|
5
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0)
|
|
6
|
-
function _arrayWithHoles(
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
7
7
|
/// <reference types="@types/googlemaps" />
|
|
8
8
|
import React, { createContext, useState, useContext, useRef, useEffect } from 'react';
|
|
9
9
|
import { useScript } from '@dfds-ui/hooks';
|
|
10
|
-
import { jsx as
|
|
10
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
11
11
|
export var GooglePlacesAPIContext = /*#__PURE__*/createContext({
|
|
12
12
|
available: false
|
|
13
13
|
});
|
|
14
14
|
export var GooglePlacesAPIProvider = function GooglePlacesAPIProvider(_ref) {
|
|
15
|
-
var _window
|
|
15
|
+
var _window;
|
|
16
16
|
var children = _ref.children,
|
|
17
17
|
apiKey = _ref.apiKey,
|
|
18
18
|
language = _ref.language,
|
|
@@ -22,7 +22,7 @@ export var GooglePlacesAPIProvider = function GooglePlacesAPIProvider(_ref) {
|
|
|
22
22
|
var hasWindow = typeof window !== 'undefined';
|
|
23
23
|
|
|
24
24
|
// We want to prevent the google maps api to be loaded more than once
|
|
25
|
-
var isGoogleMapsDefined = hasWindow && Boolean((_window = window) === null || _window === void 0
|
|
25
|
+
var isGoogleMapsDefined = hasWindow && Boolean((_window = window) === null || _window === void 0 || (_window = _window.google) === null || _window === void 0 ? void 0 : _window.maps);
|
|
26
26
|
var languageParam = language ? "&language=".concat(language) : '';
|
|
27
27
|
// NOTE: Google Maps API requires a callback when ran asynchronously. See https://developers.google.com/maps/documentation/javascript/url-params#required_parameters
|
|
28
28
|
// Dummy callback to satisfy Google Maps API.
|
|
@@ -47,11 +47,12 @@ export var GooglePlacesAPIProvider = function GooglePlacesAPIProvider(_ref) {
|
|
|
47
47
|
throw new Error('Google Places API script failed to load');
|
|
48
48
|
}
|
|
49
49
|
}, [loaded, error]);
|
|
50
|
-
return
|
|
50
|
+
return _jsx(GooglePlacesAPIContext.Provider, {
|
|
51
51
|
value: {
|
|
52
52
|
available: available
|
|
53
|
-
}
|
|
54
|
-
|
|
53
|
+
},
|
|
54
|
+
children: children
|
|
55
|
+
});
|
|
55
56
|
};
|
|
56
57
|
export var useGooglePlacesAPI = function useGooglePlacesAPI() {
|
|
57
58
|
var context = useContext(GooglePlacesAPIContext);
|
|
@@ -71,7 +72,7 @@ export var useAddressPredictions = function useAddressPredictions(input, _ref2)
|
|
|
71
72
|
setPredictions = _useState4[1];
|
|
72
73
|
var _useGooglePlacesAPI = useGooglePlacesAPI(),
|
|
73
74
|
available = _useGooglePlacesAPI.available;
|
|
74
|
-
var autocomplete = useRef();
|
|
75
|
+
var autocomplete = useRef(undefined);
|
|
75
76
|
if (!autocomplete.current && available && typeof window !== 'undefined') {
|
|
76
77
|
autocomplete.current = new google.maps.places.AutocompleteService();
|
|
77
78
|
}
|
|
@@ -93,8 +94,7 @@ export var useAddressPredictions = function useAddressPredictions(input, _ref2)
|
|
|
93
94
|
country: components.countries
|
|
94
95
|
}
|
|
95
96
|
}, function (predictions) {
|
|
96
|
-
|
|
97
|
-
predictions = (_predictions = predictions) !== null && _predictions !== void 0 ? _predictions : [];
|
|
97
|
+
predictions = predictions !== null && predictions !== void 0 ? predictions : [];
|
|
98
98
|
setPredictions(predictions);
|
|
99
99
|
resolve(predictions);
|
|
100
100
|
});
|
|
@@ -104,7 +104,7 @@ export var useAddressPredictions = function useAddressPredictions(input, _ref2)
|
|
|
104
104
|
if (input !== '') {
|
|
105
105
|
void getPlacePredictions(input);
|
|
106
106
|
}
|
|
107
|
-
// eslint-disable-next-line react
|
|
107
|
+
// eslint-disable-next-line @eslint-react/exhaustive-deps
|
|
108
108
|
}, [input]);
|
|
109
109
|
return {
|
|
110
110
|
available: available,
|
package/cjs/AddressSelect.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ILocation, IPrediction } from './GooglePlaces';
|
|
3
|
-
export
|
|
3
|
+
export type AddressSelectProps = {
|
|
4
4
|
components?: any;
|
|
5
5
|
name: string;
|
|
6
6
|
disabled?: boolean;
|
|
@@ -25,5 +25,5 @@ export declare type AddressSelectProps = {
|
|
|
25
25
|
*/
|
|
26
26
|
className?: string;
|
|
27
27
|
};
|
|
28
|
-
declare const AddressSelect: ({ name, disabled, error, size, types, onFocus, onBlur, onChange, location, radius, countries, ...rest }: AddressSelectProps) => JSX.Element;
|
|
28
|
+
declare const AddressSelect: ({ name, disabled, error, size, types, onFocus, onBlur, onChange, location, radius, countries, ...rest }: AddressSelectProps) => React.JSX.Element;
|
|
29
29
|
export default AddressSelect;
|
package/cjs/AddressSelect.js
CHANGED
|
@@ -8,72 +8,51 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _reactComponents = require("@dfds-ui/react-components");
|
|
9
9
|
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
|
10
10
|
var _GooglePlaces = require("./GooglePlaces");
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
types
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
components: {
|
|
51
|
-
countries
|
|
52
|
-
}
|
|
53
|
-
}),
|
|
54
|
-
available = _useAddressPrediction.available,
|
|
55
|
-
getPlacePredictions = _useAddressPrediction.getPlacePredictions;
|
|
56
|
-
const loadOptions = /*#__PURE__*/function () {
|
|
57
|
-
var _ref2 = _asyncToGenerator(function* (input, callback) {
|
|
58
|
-
const placePredictions = yield getPlacePredictions(input);
|
|
59
|
-
setPredictions(placePredictions);
|
|
60
|
-
const options = placePredictions.map(prediction => ({
|
|
61
|
-
value: prediction.description,
|
|
62
|
-
label: prediction.description,
|
|
63
|
-
prediction
|
|
64
|
-
}));
|
|
65
|
-
callback(options);
|
|
66
|
-
});
|
|
67
|
-
return function loadOptions(_x, _x2) {
|
|
68
|
-
return _ref2.apply(this, arguments);
|
|
69
|
-
};
|
|
70
|
-
}();
|
|
11
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
+
const AddressSelect = ({
|
|
15
|
+
name,
|
|
16
|
+
disabled,
|
|
17
|
+
error,
|
|
18
|
+
size = 'medium',
|
|
19
|
+
types,
|
|
20
|
+
onFocus,
|
|
21
|
+
onBlur,
|
|
22
|
+
onChange,
|
|
23
|
+
location,
|
|
24
|
+
radius,
|
|
25
|
+
countries = [],
|
|
26
|
+
...rest
|
|
27
|
+
}) => {
|
|
28
|
+
const [predictions, setPredictions] = (0, _react.useState)([]);
|
|
29
|
+
const {
|
|
30
|
+
available,
|
|
31
|
+
getPlacePredictions
|
|
32
|
+
} = (0, _GooglePlaces.useAddressPredictions)('', {
|
|
33
|
+
types,
|
|
34
|
+
location,
|
|
35
|
+
radius,
|
|
36
|
+
components: {
|
|
37
|
+
countries
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const loadOptions = async (input, callback) => {
|
|
41
|
+
const placePredictions = await getPlacePredictions(input);
|
|
42
|
+
setPredictions(placePredictions);
|
|
43
|
+
const options = placePredictions.map(prediction => ({
|
|
44
|
+
value: prediction.description,
|
|
45
|
+
label: prediction.description,
|
|
46
|
+
prediction
|
|
47
|
+
}));
|
|
48
|
+
callback(options);
|
|
49
|
+
};
|
|
71
50
|
const handleChange = value => {
|
|
72
51
|
if (onChange) {
|
|
73
52
|
onChange(value, predictions);
|
|
74
53
|
}
|
|
75
54
|
};
|
|
76
|
-
return (0,
|
|
55
|
+
return (0, _jsxRuntime.jsx)(_reactComponents.AsyncSearchableSelect, {
|
|
77
56
|
disabled: disabled || !available,
|
|
78
57
|
name: name,
|
|
79
58
|
error: error,
|
|
@@ -81,8 +60,8 @@ const AddressSelect = _ref => {
|
|
|
81
60
|
onChange: handleChange,
|
|
82
61
|
loadOptions: (0, _lodash.default)(loadOptions, 500),
|
|
83
62
|
onFocus: onFocus,
|
|
84
|
-
onBlur: onBlur
|
|
85
|
-
|
|
63
|
+
onBlur: onBlur,
|
|
64
|
+
...rest
|
|
65
|
+
});
|
|
86
66
|
};
|
|
87
|
-
var _default = AddressSelect;
|
|
88
|
-
exports.default = _default;
|
|
67
|
+
var _default = exports.default = AddressSelect;
|
package/cjs/GooglePlaces.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export interface IGooglePlacesAPIProviderProps {
|
|
|
42
42
|
language?: string;
|
|
43
43
|
libraries?: string;
|
|
44
44
|
}
|
|
45
|
-
export declare const GooglePlacesAPIProvider: ({ children, apiKey, language, libraries, }: IGooglePlacesAPIProviderProps) => JSX.Element;
|
|
45
|
+
export declare const GooglePlacesAPIProvider: ({ children, apiKey, language, libraries, }: IGooglePlacesAPIProviderProps) => React.JSX.Element;
|
|
46
46
|
export declare const useGooglePlacesAPI: () => {
|
|
47
47
|
available: boolean;
|
|
48
48
|
};
|
package/cjs/GooglePlaces.js
CHANGED
|
@@ -6,31 +6,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useGooglePlacesAPI = exports.useAddressPredictions = exports.GooglePlacesAPIProvider = exports.GooglePlacesAPIContext = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _hooks = require("@dfds-ui/hooks");
|
|
9
|
-
var
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
16
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
17
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /// <reference types="@types/googlemaps" />
|
|
18
|
-
const GooglePlacesAPIContext = /*#__PURE__*/(0, _react.createContext)({
|
|
9
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
/// <reference types="@types/googlemaps" />
|
|
12
|
+
|
|
13
|
+
const GooglePlacesAPIContext = exports.GooglePlacesAPIContext = /*#__PURE__*/(0, _react.createContext)({
|
|
19
14
|
available: false
|
|
20
15
|
});
|
|
21
|
-
exports.GooglePlacesAPIContext = GooglePlacesAPIContext;
|
|
22
16
|
const GooglePlacesAPIProvider = ({
|
|
23
17
|
children,
|
|
24
18
|
apiKey,
|
|
25
19
|
language,
|
|
26
20
|
libraries = 'places'
|
|
27
21
|
}) => {
|
|
28
|
-
var _window, _window$google;
|
|
29
22
|
// On SSR window does not exist.
|
|
30
23
|
const hasWindow = typeof window !== 'undefined';
|
|
31
24
|
|
|
32
25
|
// We want to prevent the google maps api to be loaded more than once
|
|
33
|
-
const isGoogleMapsDefined = hasWindow && Boolean(
|
|
26
|
+
const isGoogleMapsDefined = hasWindow && Boolean(window?.google?.maps);
|
|
34
27
|
const languageParam = language ? `&language=${language}` : '';
|
|
35
28
|
// NOTE: Google Maps API requires a callback when ran asynchronously. See https://developers.google.com/maps/documentation/javascript/url-params#required_parameters
|
|
36
29
|
// Dummy callback to satisfy Google Maps API.
|
|
@@ -41,25 +34,20 @@ const GooglePlacesAPIProvider = ({
|
|
|
41
34
|
if (hasWindow) window.dummyCallback = dummyCallback;
|
|
42
35
|
const callback = hasWindow ? `&callback=dummyCallback` : '';
|
|
43
36
|
const scriptUrl = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=${libraries}${languageParam}${callback}`;
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
loaded = _useScript2[0],
|
|
47
|
-
error = _useScript2[1];
|
|
48
|
-
const _useState = (0, _react.useState)(false),
|
|
49
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
50
|
-
available = _useState2[0],
|
|
51
|
-
setAvailable = _useState2[1];
|
|
37
|
+
const [loaded, error] = (0, _hooks.useScript)(scriptUrl, isGoogleMapsDefined);
|
|
38
|
+
const [available, setAvailable] = (0, _react.useState)(false);
|
|
52
39
|
(0, _react.useEffect)(() => {
|
|
53
40
|
setAvailable(loaded && !error);
|
|
54
41
|
if (error) {
|
|
55
42
|
throw new Error('Google Places API script failed to load');
|
|
56
43
|
}
|
|
57
44
|
}, [loaded, error]);
|
|
58
|
-
return (0,
|
|
45
|
+
return (0, _jsxRuntime.jsx)(GooglePlacesAPIContext.Provider, {
|
|
59
46
|
value: {
|
|
60
47
|
available
|
|
61
|
-
}
|
|
62
|
-
|
|
48
|
+
},
|
|
49
|
+
children: children
|
|
50
|
+
});
|
|
63
51
|
};
|
|
64
52
|
exports.GooglePlacesAPIProvider = GooglePlacesAPIProvider;
|
|
65
53
|
const useGooglePlacesAPI = () => {
|
|
@@ -76,13 +64,11 @@ const useAddressPredictions = (input, {
|
|
|
76
64
|
radius,
|
|
77
65
|
components
|
|
78
66
|
}) => {
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
available = _useGooglePlacesAPI.available;
|
|
85
|
-
const autocomplete = (0, _react.useRef)();
|
|
67
|
+
const [predictions, setPredictions] = (0, _react.useState)([]);
|
|
68
|
+
const {
|
|
69
|
+
available
|
|
70
|
+
} = useGooglePlacesAPI();
|
|
71
|
+
const autocomplete = (0, _react.useRef)(undefined);
|
|
86
72
|
if (!autocomplete.current && available && typeof window !== 'undefined') {
|
|
87
73
|
autocomplete.current = new google.maps.places.AutocompleteService();
|
|
88
74
|
}
|
|
@@ -100,8 +86,7 @@ const useAddressPredictions = (input, {
|
|
|
100
86
|
country: components.countries
|
|
101
87
|
}
|
|
102
88
|
}, predictions => {
|
|
103
|
-
|
|
104
|
-
predictions = (_predictions = predictions) !== null && _predictions !== void 0 ? _predictions : [];
|
|
89
|
+
predictions = predictions ?? [];
|
|
105
90
|
setPredictions(predictions);
|
|
106
91
|
resolve(predictions);
|
|
107
92
|
});
|
|
@@ -111,7 +96,7 @@ const useAddressPredictions = (input, {
|
|
|
111
96
|
if (input !== '') {
|
|
112
97
|
void getPlacePredictions(input);
|
|
113
98
|
}
|
|
114
|
-
// eslint-disable-next-line react
|
|
99
|
+
// eslint-disable-next-line @eslint-react/exhaustive-deps
|
|
115
100
|
}, [input]);
|
|
116
101
|
return {
|
|
117
102
|
available,
|
package/cjs/index.js
CHANGED
|
@@ -8,7 +8,7 @@ var _exportNames = {
|
|
|
8
8
|
};
|
|
9
9
|
Object.defineProperty(exports, "AddressSelect", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function
|
|
11
|
+
get: function () {
|
|
12
12
|
return _AddressSelect.default;
|
|
13
13
|
}
|
|
14
14
|
});
|
|
@@ -19,7 +19,7 @@ Object.keys(_GooglePlaces).forEach(function (key) {
|
|
|
19
19
|
if (key in exports && exports[key] === _GooglePlaces[key]) return;
|
|
20
20
|
Object.defineProperty(exports, key, {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function
|
|
22
|
+
get: function () {
|
|
23
23
|
return _GooglePlaces[key];
|
|
24
24
|
}
|
|
25
25
|
});
|
|
@@ -31,10 +31,9 @@ Object.keys(_AddressSelect).forEach(function (key) {
|
|
|
31
31
|
if (key in exports && exports[key] === _AddressSelect[key]) return;
|
|
32
32
|
Object.defineProperty(exports, key, {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function
|
|
34
|
+
get: function () {
|
|
35
35
|
return _AddressSelect[key];
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
|
-
function
|
|
40
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
39
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
package/package.json
CHANGED
|
@@ -3,26 +3,26 @@
|
|
|
3
3
|
"description": "Components using Google places",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"private": false,
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "3.0.0",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"main": "./cjs/index.js",
|
|
9
9
|
"module": "./index.js",
|
|
10
10
|
"esnext": "./index.js",
|
|
11
11
|
"typings": "./index.d.ts",
|
|
12
12
|
"peerDependencies": {
|
|
13
|
-
"react": ">=
|
|
14
|
-
"react-dom": ">=
|
|
13
|
+
"react": ">= 19.0.0",
|
|
14
|
+
"react-dom": ">= 19.0.0"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@dfds-ui/colors": "
|
|
18
|
-
"@dfds-ui/hooks": "
|
|
19
|
-
"@dfds-ui/icons": "
|
|
20
|
-
"@dfds-ui/react-components": "
|
|
17
|
+
"@dfds-ui/colors": "3.0.0",
|
|
18
|
+
"@dfds-ui/hooks": "3.0.0",
|
|
19
|
+
"@dfds-ui/icons": "3.0.0",
|
|
20
|
+
"@dfds-ui/react-components": "3.0.0",
|
|
21
21
|
"@types/googlemaps": "3.43.3",
|
|
22
|
-
"@types/lodash.debounce": "^4.0.
|
|
22
|
+
"@types/lodash.debounce": "^4.0.9",
|
|
23
23
|
"lodash.debounce": "^4.0.8"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "35ec63ee8364ec7145ae710c4f0db9e1d602b05d",
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public"
|
|
28
28
|
}
|