powr-sdk-web 5.7.1 → 5.8.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/dist/auth/index.js +120 -32
- package/dist/components/PhoneInput.js +159 -0
- package/dist/index.js +80 -0
- package/dist/onboarding/AddPhonePanel.js +102 -79
- package/dist/onboarding/PowrOnboardingProvider.js +16 -2
- package/dist/onboarding/steps/addPhoneStep.js +5 -1
- package/dist/onboarding/steps/profileNameStep.js +3 -2
- package/dist/onboarding/utils.js +80 -8
- package/dist/powrVerify/index.js +73 -72
- package/dist/utils/phone.js +151 -0
- package/package.json +44 -43
package/dist/powrVerify/index.js
CHANGED
|
@@ -7,6 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _firebase = require("../utils/firebase");
|
|
10
|
+
var _phone = require("../utils/phone");
|
|
11
|
+
var _PhoneInput = _interopRequireDefault(require("../components/PhoneInput"));
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(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 (var _t5 in e) "default" !== _t5 && {}.hasOwnProperty.call(e, _t5) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t5)) && (i.get || i.set) ? o(f, _t5, i) : f[_t5] = e[_t5]); return f; })(e, t); }
|
|
11
14
|
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; }
|
|
12
15
|
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; }
|
|
@@ -25,52 +28,63 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
|
|
|
25
28
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
26
29
|
var PowrVerify = function PowrVerify(_ref) {
|
|
27
30
|
var onVerified = _ref.onVerified,
|
|
31
|
+
_ref$defaultCountry = _ref.defaultCountry,
|
|
32
|
+
defaultCountry = _ref$defaultCountry === void 0 ? _phone.DEFAULT_COUNTRY : _ref$defaultCountry,
|
|
28
33
|
_ref$defaultCountryCo = _ref.defaultCountryCode,
|
|
29
|
-
defaultCountryCode = _ref$defaultCountryCo === void 0 ?
|
|
34
|
+
defaultCountryCode = _ref$defaultCountryCo === void 0 ? _phone.DEFAULT_COUNTRY_CODE : _ref$defaultCountryCo,
|
|
35
|
+
_ref$international = _ref.international,
|
|
36
|
+
international = _ref$international === void 0 ? false : _ref$international,
|
|
37
|
+
_ref$allowedCountries = _ref.allowedCountries,
|
|
38
|
+
allowedCountries = _ref$allowedCountries === void 0 ? null : _ref$allowedCountries,
|
|
30
39
|
_ref$appName = _ref.appName,
|
|
31
40
|
appName = _ref$appName === void 0 ? 'App' : _ref$appName,
|
|
32
41
|
_ref$projectId = _ref.projectId,
|
|
33
42
|
projectId = _ref$projectId === void 0 ? undefined : _ref$projectId;
|
|
34
|
-
var
|
|
43
|
+
var resolvedCountry = (0, _phone.resolveCountry)(defaultCountry, defaultCountryCode);
|
|
44
|
+
var _useState = (0, _react.useState)(resolvedCountry),
|
|
35
45
|
_useState2 = _slicedToArray(_useState, 2),
|
|
36
|
-
|
|
37
|
-
|
|
46
|
+
phoneCountry = _useState2[0],
|
|
47
|
+
setPhoneCountry = _useState2[1];
|
|
38
48
|
var _useState3 = (0, _react.useState)(''),
|
|
39
49
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
-
|
|
41
|
-
|
|
50
|
+
localNumber = _useState4[0],
|
|
51
|
+
setLocalNumber = _useState4[1];
|
|
42
52
|
var _useState5 = (0, _react.useState)(false),
|
|
43
53
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var _useState7 = (0, _react.useState)(
|
|
54
|
+
phoneValid = _useState6[0],
|
|
55
|
+
setPhoneValid = _useState6[1];
|
|
56
|
+
var _useState7 = (0, _react.useState)(''),
|
|
47
57
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
var _useState9 = (0, _react.useState)(
|
|
58
|
+
e164 = _useState8[0],
|
|
59
|
+
setE164 = _useState8[1];
|
|
60
|
+
var _useState9 = (0, _react.useState)(''),
|
|
51
61
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
var _useState1 = (0, _react.useState)(
|
|
62
|
+
otp = _useState0[0],
|
|
63
|
+
setOtp = _useState0[1];
|
|
64
|
+
var _useState1 = (0, _react.useState)(false),
|
|
55
65
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
var _useState11 = (0, _react.useState)(
|
|
66
|
+
loading = _useState10[0],
|
|
67
|
+
setLoading = _useState10[1];
|
|
68
|
+
var _useState11 = (0, _react.useState)(false),
|
|
59
69
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var _useState13 = (0, _react.useState)(
|
|
70
|
+
otpSent = _useState12[0],
|
|
71
|
+
setOtpSent = _useState12[1];
|
|
72
|
+
var _useState13 = (0, _react.useState)(null),
|
|
63
73
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
confirmationResult = _useState14[0],
|
|
75
|
+
setConfirmationResult = _useState14[1];
|
|
76
|
+
var _useState15 = (0, _react.useState)(''),
|
|
77
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
78
|
+
error = _useState16[0],
|
|
79
|
+
setError = _useState16[1];
|
|
80
|
+
var _useState17 = (0, _react.useState)(''),
|
|
81
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
82
|
+
success = _useState18[0],
|
|
83
|
+
setSuccess = _useState18[1];
|
|
84
|
+
var _useState19 = (0, _react.useState)(0),
|
|
85
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
86
|
+
resendTimer = _useState20[0],
|
|
87
|
+
setResendTimer = _useState20[1];
|
|
74
88
|
var clearRecaptcha = function clearRecaptcha() {
|
|
75
89
|
if (window.recaptchaVerifier) {
|
|
76
90
|
try {
|
|
@@ -81,8 +95,18 @@ var PowrVerify = function PowrVerify(_ref) {
|
|
|
81
95
|
window.recaptchaVerifier = null;
|
|
82
96
|
}
|
|
83
97
|
};
|
|
98
|
+
var handlePhoneChange = function handlePhoneChange(_ref2) {
|
|
99
|
+
var country = _ref2.country,
|
|
100
|
+
local = _ref2.localNumber,
|
|
101
|
+
formatted = _ref2.e164,
|
|
102
|
+
isValid = _ref2.isValid;
|
|
103
|
+
setPhoneCountry(country);
|
|
104
|
+
setLocalNumber(local);
|
|
105
|
+
setE164(formatted);
|
|
106
|
+
setPhoneValid(isValid);
|
|
107
|
+
};
|
|
84
108
|
var sendOtp = /*#__PURE__*/function () {
|
|
85
|
-
var
|
|
109
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
86
110
|
var phoneNumber, appVerifier, confirmation, _t, _t2;
|
|
87
111
|
return _regenerator().w(function (_context) {
|
|
88
112
|
while (1) switch (_context.p = _context.n) {
|
|
@@ -91,8 +115,8 @@ var PowrVerify = function PowrVerify(_ref) {
|
|
|
91
115
|
setError('');
|
|
92
116
|
setSuccess('');
|
|
93
117
|
_context.p = 1;
|
|
94
|
-
phoneNumber =
|
|
95
|
-
if (phoneNumber) {
|
|
118
|
+
phoneNumber = e164 || (0, _phone.formatPhoneForSms)(localNumber, phoneCountry);
|
|
119
|
+
if (!(!phoneValid || !phoneNumber)) {
|
|
96
120
|
_context.n = 2;
|
|
97
121
|
break;
|
|
98
122
|
}
|
|
@@ -100,7 +124,6 @@ var PowrVerify = function PowrVerify(_ref) {
|
|
|
100
124
|
setLoading(false);
|
|
101
125
|
return _context.a(2);
|
|
102
126
|
case 2:
|
|
103
|
-
// clear existing
|
|
104
127
|
clearRecaptcha();
|
|
105
128
|
window.recaptchaVerifier = new _firebase.RecaptchaVerifier(_firebase.auth, 'recaptcha-container-powrbase', {
|
|
106
129
|
size: 'invisible',
|
|
@@ -143,11 +166,11 @@ var PowrVerify = function PowrVerify(_ref) {
|
|
|
143
166
|
}, _callee, null, [[3, 5], [1, 8, 9, 10]]);
|
|
144
167
|
}));
|
|
145
168
|
return function sendOtp() {
|
|
146
|
-
return
|
|
169
|
+
return _ref3.apply(this, arguments);
|
|
147
170
|
};
|
|
148
171
|
}();
|
|
149
172
|
var verifyOtp = /*#__PURE__*/function () {
|
|
150
|
-
var
|
|
173
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
151
174
|
var result, token, _t3, _t4;
|
|
152
175
|
return _regenerator().w(function (_context2) {
|
|
153
176
|
while (1) switch (_context2.p = _context2.n) {
|
|
@@ -189,8 +212,6 @@ var PowrVerify = function PowrVerify(_ref) {
|
|
|
189
212
|
clearRecaptcha();
|
|
190
213
|
setResendTimer(0);
|
|
191
214
|
if (typeof onVerified === 'function') {
|
|
192
|
-
// Pass token and projectId. Keep backward compatibility by
|
|
193
|
-
// allowing consumers to accept a single token arg.
|
|
194
215
|
try {
|
|
195
216
|
onVerified(token, projectId);
|
|
196
217
|
} catch (e) {
|
|
@@ -216,11 +237,11 @@ var PowrVerify = function PowrVerify(_ref) {
|
|
|
216
237
|
}, _callee2, null, [[5, 7], [1, 9, 10, 11]]);
|
|
217
238
|
}));
|
|
218
239
|
return function verifyOtp() {
|
|
219
|
-
return
|
|
240
|
+
return _ref4.apply(this, arguments);
|
|
220
241
|
};
|
|
221
242
|
}();
|
|
222
243
|
(0, _react.useEffect)(function () {
|
|
223
|
-
if (resendTimer <= 0) return;
|
|
244
|
+
if (resendTimer <= 0) return undefined;
|
|
224
245
|
var id = setInterval(function () {
|
|
225
246
|
setResendTimer(function (t) {
|
|
226
247
|
if (t <= 1) {
|
|
@@ -254,23 +275,19 @@ var PowrVerify = function PowrVerify(_ref) {
|
|
|
254
275
|
}
|
|
255
276
|
}, "Tell us your phone and we'll send a one-time code."), /*#__PURE__*/_react["default"].createElement("label", {
|
|
256
277
|
style: labelStyle
|
|
257
|
-
}, "Phone number"), /*#__PURE__*/_react["default"].createElement("
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
placeholder: "0000000000",
|
|
268
|
-
style: inputFlexStyle,
|
|
269
|
-
disabled: otpSent
|
|
270
|
-
})), !otpSent && /*#__PURE__*/_react["default"].createElement("button", {
|
|
278
|
+
}, "Phone number"), /*#__PURE__*/_react["default"].createElement(_PhoneInput["default"], {
|
|
279
|
+
value: localNumber,
|
|
280
|
+
country: phoneCountry,
|
|
281
|
+
onChange: handlePhoneChange,
|
|
282
|
+
international: international,
|
|
283
|
+
allowedCountries: allowedCountries,
|
|
284
|
+
defaultCountry: resolvedCountry,
|
|
285
|
+
disabled: otpSent,
|
|
286
|
+
placeholder: international ? 'Phone number' : 'Mobile number'
|
|
287
|
+
}), !otpSent && /*#__PURE__*/_react["default"].createElement("button", {
|
|
271
288
|
onClick: sendOtp,
|
|
272
289
|
style: buttonStyle,
|
|
273
|
-
disabled: loading ||
|
|
290
|
+
disabled: loading || !phoneValid
|
|
274
291
|
}, loading ? 'Sending...' : 'Send OTP'), otpSent && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("label", {
|
|
275
292
|
style: _objectSpread(_objectSpread({}, labelStyle), {}, {
|
|
276
293
|
marginTop: 12
|
|
@@ -352,14 +369,6 @@ var phoneRowStyle = {
|
|
|
352
369
|
alignItems: 'center',
|
|
353
370
|
width: '100%'
|
|
354
371
|
};
|
|
355
|
-
var prefixBox = {
|
|
356
|
-
background: '#fff7ed',
|
|
357
|
-
color: '#7c2d12',
|
|
358
|
-
padding: '10px 12px',
|
|
359
|
-
borderRadius: 8,
|
|
360
|
-
fontWeight: 700,
|
|
361
|
-
border: '1px solid #ffedd5'
|
|
362
|
-
};
|
|
363
372
|
var inputFlexStyle = {
|
|
364
373
|
flex: 1,
|
|
365
374
|
padding: 10,
|
|
@@ -372,14 +381,6 @@ var labelStyle = {
|
|
|
372
381
|
fontWeight: 600,
|
|
373
382
|
marginBottom: 6
|
|
374
383
|
};
|
|
375
|
-
var inputStyle = {
|
|
376
|
-
width: '100%',
|
|
377
|
-
padding: 10,
|
|
378
|
-
borderRadius: 8,
|
|
379
|
-
border: '1px solid #e5e7eb',
|
|
380
|
-
marginBottom: 12,
|
|
381
|
-
boxSizing: 'border-box'
|
|
382
|
-
};
|
|
383
384
|
var buttonStyle = {
|
|
384
385
|
width: '100%',
|
|
385
386
|
padding: 12,
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PRIORITY_COUNTRIES = exports.DEFAULT_COUNTRY_CODE = exports.DEFAULT_COUNTRY = void 0;
|
|
7
|
+
exports.buildPhoneFromParts = buildPhoneFromParts;
|
|
8
|
+
exports.digitsOnly = digitsOnly;
|
|
9
|
+
exports.formatPhoneForSms = formatPhoneForSms;
|
|
10
|
+
exports.getCountryOptions = getCountryOptions;
|
|
11
|
+
exports.getLocalPhoneNumber = getLocalPhoneNumber;
|
|
12
|
+
exports.getPhoneLookupVariants = getPhoneLookupVariants;
|
|
13
|
+
exports.hasValidPhone = hasValidPhone;
|
|
14
|
+
exports.isValidPhone = isValidPhone;
|
|
15
|
+
exports.normalizePhone = normalizePhone;
|
|
16
|
+
exports.parsePhone = parsePhone;
|
|
17
|
+
exports.resolveCountry = resolveCountry;
|
|
18
|
+
var _libphonenumberJs = require("libphonenumber-js");
|
|
19
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
20
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
+
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; } }
|
|
22
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
23
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
24
|
+
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; }
|
|
25
|
+
var DEFAULT_COUNTRY = exports.DEFAULT_COUNTRY = 'IN';
|
|
26
|
+
/** @deprecated Use DEFAULT_COUNTRY ('IN') or defaultCountry prop */
|
|
27
|
+
var DEFAULT_COUNTRY_CODE = exports.DEFAULT_COUNTRY_CODE = '91';
|
|
28
|
+
var CALLING_CODE_TO_COUNTRY = {
|
|
29
|
+
'91': 'IN',
|
|
30
|
+
'1': 'US',
|
|
31
|
+
'44': 'GB',
|
|
32
|
+
'971': 'AE',
|
|
33
|
+
'65': 'SG',
|
|
34
|
+
'61': 'AU',
|
|
35
|
+
'49': 'DE',
|
|
36
|
+
'33': 'FR',
|
|
37
|
+
'81': 'JP'
|
|
38
|
+
};
|
|
39
|
+
var PRIORITY_COUNTRIES = exports.PRIORITY_COUNTRIES = ['US', 'IN', 'GB', 'CA', 'AU', 'AE', 'SG', 'DE', 'FR', 'NL', 'NZ', 'JP'];
|
|
40
|
+
function resolveCountry(defaultCountry, defaultCountryCode) {
|
|
41
|
+
if (defaultCountry) return defaultCountry;
|
|
42
|
+
if (defaultCountryCode) {
|
|
43
|
+
return CALLING_CODE_TO_COUNTRY[String(defaultCountryCode)] || DEFAULT_COUNTRY;
|
|
44
|
+
}
|
|
45
|
+
return DEFAULT_COUNTRY;
|
|
46
|
+
}
|
|
47
|
+
function digitsOnly(value) {
|
|
48
|
+
return (value || '').replace(/\D/g, '');
|
|
49
|
+
}
|
|
50
|
+
function parsePhone(input) {
|
|
51
|
+
var _parsed, _parsed2, _parsed3;
|
|
52
|
+
var defaultCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
53
|
+
if (!input || typeof input !== 'string' || input.includes('@')) return null;
|
|
54
|
+
var trimmed = input.trim();
|
|
55
|
+
if (!trimmed) return null;
|
|
56
|
+
var parsed = (0, _libphonenumberJs.parsePhoneNumberFromString)(trimmed);
|
|
57
|
+
if (!((_parsed = parsed) !== null && _parsed !== void 0 && _parsed.isValid())) {
|
|
58
|
+
parsed = (0, _libphonenumberJs.parsePhoneNumberFromString)(trimmed, defaultCountry);
|
|
59
|
+
}
|
|
60
|
+
if (!((_parsed2 = parsed) !== null && _parsed2 !== void 0 && _parsed2.isValid()) && !trimmed.startsWith('+')) {
|
|
61
|
+
parsed = (0, _libphonenumberJs.parsePhoneNumberFromString)("+".concat(digitsOnly(trimmed)));
|
|
62
|
+
}
|
|
63
|
+
return (_parsed3 = parsed) !== null && _parsed3 !== void 0 && _parsed3.isValid() ? parsed : null;
|
|
64
|
+
}
|
|
65
|
+
function normalizePhone(input) {
|
|
66
|
+
var defaultCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
67
|
+
if (!input || typeof input !== 'string') return '';
|
|
68
|
+
if (input.includes('@')) return input.trim();
|
|
69
|
+
var parsed = parsePhone(input, defaultCountry);
|
|
70
|
+
return parsed ? parsed.format('E.164') : '';
|
|
71
|
+
}
|
|
72
|
+
function isValidPhone(input) {
|
|
73
|
+
var defaultCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
74
|
+
if (!input || typeof input !== 'string' || input.includes('@')) return false;
|
|
75
|
+
return !!parsePhone(input, defaultCountry);
|
|
76
|
+
}
|
|
77
|
+
function hasValidPhone(phone) {
|
|
78
|
+
var defaultCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
79
|
+
return isValidPhone(phone, defaultCountry);
|
|
80
|
+
}
|
|
81
|
+
function getLocalPhoneNumber(input) {
|
|
82
|
+
var defaultCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
83
|
+
var parsed = parsePhone(input, defaultCountry);
|
|
84
|
+
return parsed ? parsed.nationalNumber : digitsOnly(input).slice(-15);
|
|
85
|
+
}
|
|
86
|
+
function formatPhoneForSms(input) {
|
|
87
|
+
var defaultCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
88
|
+
return normalizePhone(input, defaultCountry);
|
|
89
|
+
}
|
|
90
|
+
function legacyIndiaVariants(input) {
|
|
91
|
+
var digits = digitsOnly(input);
|
|
92
|
+
if (!digits) return [];
|
|
93
|
+
var variants = new Set();
|
|
94
|
+
if (digits.length === 10) {
|
|
95
|
+
variants.add(digits);
|
|
96
|
+
variants.add("91".concat(digits));
|
|
97
|
+
variants.add("+91".concat(digits));
|
|
98
|
+
variants.add("0".concat(digits));
|
|
99
|
+
}
|
|
100
|
+
if (digits.length === 12 && digits.startsWith('91')) {
|
|
101
|
+
var local = digits.slice(2);
|
|
102
|
+
variants.add(local);
|
|
103
|
+
variants.add("+".concat(digits));
|
|
104
|
+
variants.add(digits);
|
|
105
|
+
variants.add("0".concat(local));
|
|
106
|
+
}
|
|
107
|
+
return _toConsumableArray(variants);
|
|
108
|
+
}
|
|
109
|
+
function getPhoneLookupVariants(input) {
|
|
110
|
+
var defaultCountry = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
111
|
+
if (!input || typeof input !== 'string') return [];
|
|
112
|
+
if (input.includes('@')) return [input.trim()];
|
|
113
|
+
var variants = new Set([input.trim()]);
|
|
114
|
+
var parsed = parsePhone(input, defaultCountry);
|
|
115
|
+
if (parsed) {
|
|
116
|
+
var e164 = parsed.format('E.164');
|
|
117
|
+
variants.add(e164);
|
|
118
|
+
variants.add(e164.replace(/^\+/, ''));
|
|
119
|
+
variants.add(parsed.nationalNumber);
|
|
120
|
+
variants.add("+".concat(parsed.countryCallingCode).concat(parsed.nationalNumber));
|
|
121
|
+
variants.add("".concat(parsed.countryCallingCode).concat(parsed.nationalNumber));
|
|
122
|
+
}
|
|
123
|
+
legacyIndiaVariants(input).forEach(function (v) {
|
|
124
|
+
return variants.add(v);
|
|
125
|
+
});
|
|
126
|
+
return _toConsumableArray(variants).filter(Boolean);
|
|
127
|
+
}
|
|
128
|
+
function getCountryOptions() {
|
|
129
|
+
var allowedCountries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
130
|
+
var pool = allowedCountries && allowedCountries.length > 0 ? allowedCountries.filter(function (c) {
|
|
131
|
+
return (0, _libphonenumberJs.getCountries)().includes(c);
|
|
132
|
+
}) : (0, _libphonenumberJs.getCountries)();
|
|
133
|
+
var ordered = [].concat(_toConsumableArray(PRIORITY_COUNTRIES.filter(function (c) {
|
|
134
|
+
return pool.includes(c);
|
|
135
|
+
})), _toConsumableArray(pool.filter(function (c) {
|
|
136
|
+
return !PRIORITY_COUNTRIES.includes(c);
|
|
137
|
+
}).sort()));
|
|
138
|
+
return ordered.map(function (code) {
|
|
139
|
+
return {
|
|
140
|
+
code: code,
|
|
141
|
+
callingCode: (0, _libphonenumberJs.getCountryCallingCode)(code),
|
|
142
|
+
label: "".concat(code, " (+").concat((0, _libphonenumberJs.getCountryCallingCode)(code), ")")
|
|
143
|
+
};
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
function buildPhoneFromParts(localNumber) {
|
|
147
|
+
var country = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_COUNTRY;
|
|
148
|
+
var digits = digitsOnly(localNumber);
|
|
149
|
+
if (!digits) return '';
|
|
150
|
+
return normalizePhone(digits, country);
|
|
151
|
+
}
|
package/package.json
CHANGED
|
@@ -1,43 +1,44 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "powr-sdk-web",
|
|
3
|
-
"version": "5.
|
|
4
|
-
"main": "dist/index.js",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"build": "babel src -d dist --copy-files",
|
|
7
|
-
"prepublishOnly": "npm run build"
|
|
8
|
-
},
|
|
9
|
-
"keywords": [
|
|
10
|
-
"react",
|
|
11
|
-
"component",
|
|
12
|
-
"npm",
|
|
13
|
-
"file-upload",
|
|
14
|
-
"powrbase",
|
|
15
|
-
"comments"
|
|
16
|
-
],
|
|
17
|
-
"author": "Lawazia Tech",
|
|
18
|
-
"license": "MIT",
|
|
19
|
-
"repository": {
|
|
20
|
-
"type": "git",
|
|
21
|
-
"url": "git+https://github.com/lawaziatech/powr-sdk-web.git"
|
|
22
|
-
},
|
|
23
|
-
"peerDependencies": {
|
|
24
|
-
"filepond": "*",
|
|
25
|
-
"react": "*",
|
|
26
|
-
"react-dom": "*",
|
|
27
|
-
"react-toastify": "*"
|
|
28
|
-
},
|
|
29
|
-
"dependencies": {
|
|
30
|
-
"axios": "^1.7.7",
|
|
31
|
-
"filepond": "*",
|
|
32
|
-
"firebase": "^12.2.1",
|
|
33
|
-
"
|
|
34
|
-
"react-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"@babel/
|
|
39
|
-
"@babel/
|
|
40
|
-
"@babel/preset-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "powr-sdk-web",
|
|
3
|
+
"version": "5.8.0",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"build": "babel src -d dist --copy-files",
|
|
7
|
+
"prepublishOnly": "npm run build"
|
|
8
|
+
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"react",
|
|
11
|
+
"component",
|
|
12
|
+
"npm",
|
|
13
|
+
"file-upload",
|
|
14
|
+
"powrbase",
|
|
15
|
+
"comments"
|
|
16
|
+
],
|
|
17
|
+
"author": "Lawazia Tech",
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/lawaziatech/powr-sdk-web.git"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"filepond": "*",
|
|
25
|
+
"react": "*",
|
|
26
|
+
"react-dom": "*",
|
|
27
|
+
"react-toastify": "*"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"axios": "^1.7.7",
|
|
31
|
+
"filepond": "*",
|
|
32
|
+
"firebase": "^12.2.1",
|
|
33
|
+
"libphonenumber-js": "^1.12.9",
|
|
34
|
+
"react-filepond": "^7.1.2",
|
|
35
|
+
"react-hook-form": "^7.58.0"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@babel/cli": "^7.24.1",
|
|
39
|
+
"@babel/core": "^7.24.4",
|
|
40
|
+
"@babel/preset-env": "^7.24.4",
|
|
41
|
+
"@babel/preset-react": "^7.24.1",
|
|
42
|
+
"prop-types": "^15.8.1"
|
|
43
|
+
}
|
|
44
|
+
}
|