@mvf/external-components 3.31.1-dev.7 → 3.31.1-dev.8
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/Components/Atoms/FormControl/FormControl.js +3 -1
- package/Components/Atoms/FormControl/FormControl.js.map +1 -1
- package/Components/Atoms/FormControl/makeFormControlStyles.d.ts +3 -1
- package/Components/Atoms/FormControl/makeFormControlStyles.js +1 -2
- package/Components/Atoms/FormControl/makeFormControlStyles.js.map +1 -1
- package/Components/Atoms/Input/IInputProps.d.ts +5 -0
- package/Components/Atoms/Input/Input.js +3 -2
- package/Components/Atoms/Input/Input.js.map +1 -1
- package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js +5 -3
- package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js.map +1 -1
- package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.d.ts +57 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js +3 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.d.ts +33 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js +3 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.d.ts +7 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js +216 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js +596 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.d.ts +7 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.js +28 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.d.ts +8 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js +17 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.d.ts +22 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js +56 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js +159 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js +206 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js +187 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js +229 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js +281 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.d.ts +11 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js +34 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js +114 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useAutofillDetection.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useAutofillDetection.js +105 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useAutofillDetection.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js +36 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.d.ts +38 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js +181 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.d.ts +21 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js +41 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js +144 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js +509 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.d.ts +21 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js +33 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.d.ts +15 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js +130 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js +157 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.d.ts +21 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js +33 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/index.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/index.js +21 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/index.js.map +1 -0
- package/Components/Molecules/ScrollContainer/ScrollContainer.js +0 -25
- package/Components/Molecules/ScrollContainer/ScrollContainer.js.map +1 -1
- package/Components/Molecules/index.d.ts +1 -0
- package/Components/Molecules/index.js +3 -1
- package/Components/Molecules/index.js.map +1 -1
- package/Components/index.d.ts +1 -1
- package/Components/index.js +2 -1
- package/Components/index.js.map +1 -1
- package/Themes/auroraTheme.js +1 -1
- package/Themes/auroraTheme.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +3 -1
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.js
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
4
|
+
var react_1 = require("react");
|
5
|
+
var useAutofillDetection_1 = require("../../hooks/useAutofillDetection");
|
6
|
+
/**
|
7
|
+
* Demo component to showcase the autofill detection functionality
|
8
|
+
* This can be used for testing and development purposes
|
9
|
+
*/
|
10
|
+
var AutofillDemo = function () {
|
11
|
+
var _a = (0, react_1.useState)(''), phoneNumber = _a[0], setPhoneNumber = _a[1];
|
12
|
+
var _b = (0, useAutofillDetection_1.useAutofillDetection)(), isAutoFilledActive = _b.isAutoFilledActive, inputRef = _b.inputRef;
|
13
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: { padding: '20px', maxWidth: '400px' }, children: [(0, jsx_runtime_1.jsx)("h3", { children: "Autofill Detection Demo" }), (0, jsx_runtime_1.jsxs)("div", { style: { marginBottom: '20px' }, children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "phone-demo", children: "Phone Number:" }), (0, jsx_runtime_1.jsx)("input", { ref: inputRef, id: "phone-demo", type: "tel", value: phoneNumber, onChange: function (e) { return setPhoneNumber(e.target.value); }, placeholder: "Enter phone number", style: {
|
14
|
+
width: '100%',
|
15
|
+
padding: '10px',
|
16
|
+
marginTop: '5px',
|
17
|
+
border: '1px solid #ccc',
|
18
|
+
borderRadius: '4px',
|
19
|
+
backgroundColor: isAutoFilledActive ? '#e8f0fe' : 'white',
|
20
|
+
} })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
21
|
+
padding: '10px',
|
22
|
+
backgroundColor: isAutoFilledActive ? '#e8f0fe' : '#f5f5f5',
|
23
|
+
borderRadius: '4px',
|
24
|
+
border: "2px solid ".concat(isAutoFilledActive ? '#4285f4' : '#ddd')
|
25
|
+
}, children: [(0, jsx_runtime_1.jsx)("strong", { children: "Autofill Status:" }), " ", isAutoFilledActive ? 'ACTIVE' : 'Inactive'] }), (0, jsx_runtime_1.jsxs)("div", { style: { marginTop: '20px', fontSize: '14px', color: '#666' }, children: [(0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsx)("strong", { children: "Instructions:" }) }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: "Type in the phone number field" }), (0, jsx_runtime_1.jsx)("li", { children: "Use browser autofill (Ctrl+Shift+L or right-click \u2192 Fill)" }), (0, jsx_runtime_1.jsx)("li", { children: "Watch the status change to \"ACTIVE\"" }), (0, jsx_runtime_1.jsx)("li", { children: "The input background will change to blue when autofilled" })] })] })] }));
|
26
|
+
};
|
27
|
+
exports.default = AutofillDemo;
|
28
|
+
//# sourceMappingURL=AutofillDemo.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"AutofillDemo.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/demo/AutofillDemo.tsx"],"names":[],"mappings":";;;AAAA,+BAAwC;AACxC,yEAAwE;AAExE;;;GAGG;AACH,IAAM,YAAY,GAAa;IACvB,IAAA,KAAgC,IAAA,gBAAQ,EAAC,EAAE,CAAC,EAA3C,WAAW,QAAA,EAAE,cAAc,QAAgB,CAAC;IAC7C,IAAA,KAAmC,IAAA,2CAAoB,GAAE,EAAvD,kBAAkB,wBAAA,EAAE,QAAQ,cAA2B,CAAC;IAEhE,OAAO,CACL,iCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAChD,qEAAgC,EAEhC,iCAAK,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,aAClC,kCAAO,OAAO,EAAC,YAAY,8BAAsB,EACjD,kCACE,GAAG,EAAE,QAAQ,EACb,EAAE,EAAC,YAAY,EACf,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAA9B,CAA8B,EAC/C,WAAW,EAAC,oBAAoB,EAChC,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM;4BACb,OAAO,EAAE,MAAM;4BACf,SAAS,EAAE,KAAK;4BAChB,MAAM,EAAE,gBAAgB;4BACxB,YAAY,EAAE,KAAK;4BACnB,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;yBAC1D,GACD,IACE,EAEN,iCAAK,KAAK,EAAE;oBACV,OAAO,EAAE,MAAM;oBACf,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC3D,YAAY,EAAE,KAAK;oBACnB,MAAM,EAAE,oBAAa,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAE;iBAC/D,aACC,kEAAiC,OAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,IACzE,EAEN,iCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAChE,wCAAG,+DAA8B,GAAI,EACrC,2CACE,4EAAuC,EACvC,4GAAkE,EAClE,mFAA4C,EAC5C,sGAAiE,IAC9D,IACD,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
7
|
+
/** @jsxImportSource @emotion/react */
|
8
|
+
var FormHelperText_1 = __importDefault(require("@mui/material/FormHelperText"));
|
9
|
+
var ErrorDisplay = function (_a) {
|
10
|
+
var id = _a.id, errorMessage = _a.errorMessage, role = _a.role, ariaLive = _a["aria-live"];
|
11
|
+
if (errorMessage) {
|
12
|
+
return ((0, jsx_runtime_1.jsx)(FormHelperText_1.default, { id: id, error: true, role: role, "aria-live": ariaLive, children: errorMessage }));
|
13
|
+
}
|
14
|
+
return null;
|
15
|
+
};
|
16
|
+
exports.default = ErrorDisplay;
|
17
|
+
//# sourceMappingURL=ErrorDisplay.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ErrorDisplay.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.tsx"],"names":[],"mappings":";;;;;;AAAA,sCAAsC;AACtC,gFAA0D;AAS1D,IAAM,YAAY,GAAgC,UAAC,EAKlD;QAJC,EAAE,QAAA,EACF,YAAY,kBAAA,EACZ,IAAI,UAAA,EACS,QAAQ,kBAAA;IAErB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CACL,uBAAC,wBAAc,IAAC,EAAE,EAAE,EAAE,EAAE,KAAK,QAAC,IAAI,EAAE,IAAI,eAAa,QAAQ,YAC1D,YAAY,GACE,CAClB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.d.ts
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
export interface PhoneInputProps {
|
2
|
+
id: string;
|
3
|
+
value: string;
|
4
|
+
placeholder?: string;
|
5
|
+
disabled?: boolean;
|
6
|
+
error?: boolean;
|
7
|
+
isAnswered?: boolean;
|
8
|
+
isSafari?: boolean;
|
9
|
+
isAutoFilledActive?: boolean;
|
10
|
+
experimentName?: string;
|
11
|
+
type?: string;
|
12
|
+
onChange: (params: {
|
13
|
+
id: string;
|
14
|
+
value: string;
|
15
|
+
}) => void;
|
16
|
+
onBlur?: () => void;
|
17
|
+
onClick?: (event: React.MouseEvent<HTMLInputElement>) => void;
|
18
|
+
strictMode?: boolean;
|
19
|
+
[key: string]: any;
|
20
|
+
}
|
21
|
+
declare const PhoneInput: import("react").ForwardRefExoticComponent<Omit<PhoneInputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
|
22
|
+
export default PhoneInput;
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
14
|
+
var t = {};
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
16
|
+
t[p] = s[p];
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
20
|
+
t[p[i]] = s[p[i]];
|
21
|
+
}
|
22
|
+
return t;
|
23
|
+
};
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
25
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
26
|
+
/** @jsxImportSource @emotion/react */
|
27
|
+
var react_1 = require("react");
|
28
|
+
var index_1 = require("../../../../../Atoms/index");
|
29
|
+
var PhoneInput = (0, react_1.forwardRef)(function (_a, ref) {
|
30
|
+
var id = _a.id, value = _a.value, placeholder = _a.placeholder, disabled = _a.disabled, error = _a.error, isAnswered = _a.isAnswered, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, experimentName = _a.experimentName, _b = _a.type, type = _b === void 0 ? 'tel' : _b, onChange = _a.onChange, onBlur = _a.onBlur, onClick = _a.onClick, strictMode = _a.strictMode, props = __rest(_a, ["id", "value", "placeholder", "disabled", "error", "isAnswered", "isSafari", "isAutoFilledActive", "experimentName", "type", "onChange", "onBlur", "onClick", "strictMode"]);
|
31
|
+
var sanitizeStrict = function (raw) {
|
32
|
+
var MAX_DIGITS = 15; // E.164 allows up to 15 digits
|
33
|
+
var input = raw || '';
|
34
|
+
var cleaned = input.replace(/[^\d+]/g, '');
|
35
|
+
if (cleaned.startsWith('+')) {
|
36
|
+
var digitsOnly_1 = cleaned
|
37
|
+
.slice(1)
|
38
|
+
.replace(/\+/g, '')
|
39
|
+
.replace(/[^\d]/g, '');
|
40
|
+
return "+".concat(digitsOnly_1.slice(0, MAX_DIGITS));
|
41
|
+
}
|
42
|
+
var digitsOnly = cleaned.replace(/\+/g, '').replace(/[^\d]/g, '');
|
43
|
+
return digitsOnly.slice(0, MAX_DIGITS);
|
44
|
+
};
|
45
|
+
var handleChange = function (params) {
|
46
|
+
if (!strictMode) {
|
47
|
+
onChange(params);
|
48
|
+
return;
|
49
|
+
}
|
50
|
+
onChange({ id: params.id, value: sanitizeStrict(params.value) });
|
51
|
+
};
|
52
|
+
return ((0, jsx_runtime_1.jsx)(index_1.Input, __assign({ error: error, id: id, onChange: handleChange, valueTransform: strictMode ? sanitizeStrict : undefined, isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false, value: value, isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false, isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false, experimentName: experimentName !== null && experimentName !== void 0 ? experimentName : '', type: type, placeholder: placeholder, inputRef: ref, disabled: disabled, onBlur: onBlur, onClick: onClick, "aria-invalid": error }, props)));
|
53
|
+
});
|
54
|
+
PhoneInput.displayName = 'PhoneInput';
|
55
|
+
exports.default = PhoneInput;
|
56
|
+
//# sourceMappingURL=PhoneInput.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PhoneInput.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,+BAAmC;AACnC,oDAAmD;AAqBnD,IAAM,UAAU,GAAG,IAAA,kBAAU,EAC3B,UACE,EAgBC,EACD,GAAG;IAhBD,IAAA,EAAE,QAAA,EACF,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,KAAK,WAAA,EACL,UAAU,gBAAA,EACV,QAAQ,cAAA,EACR,kBAAkB,wBAAA,EAClB,cAAc,oBAAA,EACd,YAAY,EAAZ,IAAI,mBAAG,KAAK,KAAA,EACZ,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,OAAO,aAAA,EACP,UAAU,gBAAA,EACP,KAAK,cAfV,4KAgBC,CADS;IAIV,IAAM,cAAc,GAAG,UAAC,GAAW;QACjC,IAAM,UAAU,GAAG,EAAE,CAAC,CAAC,+BAA+B;QACtD,IAAM,KAAK,GAAG,GAAG,IAAI,EAAE,CAAC;QACxB,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAM,YAAU,GAAG,OAAO;iBACvB,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;iBAClB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzB,OAAO,WAAI,YAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAE,CAAC;QAC/C,CAAC;QACD,IAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,MAAqC;QACzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,OAAO,CACL,uBAAC,aAAK,aACJ,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EACvD,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,EAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAK,EAC3B,kBAAkB,EAAE,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,KAAK,EAC/C,cAAc,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,EACpC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,kBACF,KAAK,IACf,KAAK,EACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAEtC,kBAAe,UAAU,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,159 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
14
|
+
var t = {};
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
16
|
+
t[p] = s[p];
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
20
|
+
t[p[i]] = s[p[i]];
|
21
|
+
}
|
22
|
+
return t;
|
23
|
+
};
|
24
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
25
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
26
|
+
};
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
28
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
29
|
+
var react_1 = require("@testing-library/react");
|
30
|
+
var PhoneInput_1 = __importDefault(require("./PhoneInput"));
|
31
|
+
// Mock the Input component
|
32
|
+
jest.mock('../../../../Components/Atoms/Input', function () {
|
33
|
+
return function MockInput(_a) {
|
34
|
+
var onChange = _a.onChange, props = __rest(_a, ["onChange"]);
|
35
|
+
return ((0, jsx_runtime_1.jsx)("input", __assign({}, props, { onChange: function (e) {
|
36
|
+
onChange({ id: props.id, value: e.target.value });
|
37
|
+
}, "data-testid": "phone-input" })));
|
38
|
+
};
|
39
|
+
});
|
40
|
+
describe('PhoneInput', function () {
|
41
|
+
var defaultProps = {
|
42
|
+
id: 'test-phone',
|
43
|
+
value: '',
|
44
|
+
onChange: jest.fn(),
|
45
|
+
};
|
46
|
+
beforeEach(function () {
|
47
|
+
jest.clearAllMocks();
|
48
|
+
});
|
49
|
+
it('renders without crashing', function () {
|
50
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps)));
|
51
|
+
expect(react_1.screen.getByTestId('phone-input')).toBeInTheDocument();
|
52
|
+
});
|
53
|
+
it('calls onChange when input changes', function () {
|
54
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps)));
|
55
|
+
var input = react_1.screen.getByTestId('phone-input');
|
56
|
+
react_1.fireEvent.change(input, { target: { value: '123' } });
|
57
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
58
|
+
id: 'test-phone',
|
59
|
+
value: '123',
|
60
|
+
});
|
61
|
+
});
|
62
|
+
describe('strictMode disabled (default)', function () {
|
63
|
+
it('allows all characters when strictMode is false', function () {
|
64
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: false })));
|
65
|
+
var input = react_1.screen.getByTestId('phone-input');
|
66
|
+
react_1.fireEvent.change(input, { target: { value: 'abc123def' } });
|
67
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
68
|
+
id: 'test-phone',
|
69
|
+
value: 'abc123def',
|
70
|
+
});
|
71
|
+
});
|
72
|
+
it('allows special characters when strictMode is false', function () {
|
73
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: false })));
|
74
|
+
var input = react_1.screen.getByTestId('phone-input');
|
75
|
+
react_1.fireEvent.change(input, { target: { value: '123-456-7890' } });
|
76
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
77
|
+
id: 'test-phone',
|
78
|
+
value: '123-456-7890',
|
79
|
+
});
|
80
|
+
});
|
81
|
+
it('allows multiple plus signs when strictMode is false', function () {
|
82
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: false })));
|
83
|
+
var input = react_1.screen.getByTestId('phone-input');
|
84
|
+
react_1.fireEvent.change(input, { target: { value: '++123++456' } });
|
85
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
86
|
+
id: 'test-phone',
|
87
|
+
value: '++123++456',
|
88
|
+
});
|
89
|
+
});
|
90
|
+
});
|
91
|
+
describe('strictMode enabled', function () {
|
92
|
+
it('filters out non-numeric characters when strictMode is true', function () {
|
93
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
|
94
|
+
var input = react_1.screen.getByTestId('phone-input');
|
95
|
+
react_1.fireEvent.change(input, { target: { value: 'abc123def' } });
|
96
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
97
|
+
id: 'test-phone',
|
98
|
+
value: '123',
|
99
|
+
});
|
100
|
+
});
|
101
|
+
it('filters out special characters when strictMode is true', function () {
|
102
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
|
103
|
+
var input = react_1.screen.getByTestId('phone-input');
|
104
|
+
react_1.fireEvent.change(input, { target: { value: '123-456-7890' } });
|
105
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
106
|
+
id: 'test-phone',
|
107
|
+
value: '1234567890',
|
108
|
+
});
|
109
|
+
});
|
110
|
+
it('keeps only the first plus sign at the beginning when strictMode is true', function () {
|
111
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
|
112
|
+
var input = react_1.screen.getByTestId('phone-input');
|
113
|
+
react_1.fireEvent.change(input, { target: { value: '++123++456' } });
|
114
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
115
|
+
id: 'test-phone',
|
116
|
+
value: '+123456',
|
117
|
+
});
|
118
|
+
});
|
119
|
+
it('removes plus signs that are not at the beginning when strictMode is true', function () {
|
120
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
|
121
|
+
var input = react_1.screen.getByTestId('phone-input');
|
122
|
+
react_1.fireEvent.change(input, { target: { value: '123+456+789' } });
|
123
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
124
|
+
id: 'test-phone',
|
125
|
+
value: '123456789',
|
126
|
+
});
|
127
|
+
});
|
128
|
+
it('allows valid phone number format when strictMode is true', function () {
|
129
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
|
130
|
+
var input = react_1.screen.getByTestId('phone-input');
|
131
|
+
react_1.fireEvent.change(input, { target: { value: '+15551234567' } });
|
132
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
133
|
+
id: 'test-phone',
|
134
|
+
value: '+15551234567',
|
135
|
+
});
|
136
|
+
});
|
137
|
+
it('caps length at maximum valid phone number length when strictMode is true', function () {
|
138
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, defaultProps, { strictMode: true })));
|
139
|
+
var input = react_1.screen.getByTestId('phone-input');
|
140
|
+
// Try to input more than 16 characters (max allowed)
|
141
|
+
var longInput = '+155512345678901234567890';
|
142
|
+
react_1.fireEvent.change(input, { target: { value: longInput } });
|
143
|
+
expect(defaultProps.onChange).toHaveBeenCalledWith({
|
144
|
+
id: 'test-phone',
|
145
|
+
value: '+155512345678901', // Should be capped at 15 digits + 1 plus sign = 16 characters
|
146
|
+
});
|
147
|
+
});
|
148
|
+
});
|
149
|
+
it('passes through other props to Input component', function () {
|
150
|
+
var customProps = __assign(__assign({}, defaultProps), { placeholder: 'Enter phone number', disabled: true, 'data-custom': 'test-value' });
|
151
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(PhoneInput_1.default, __assign({}, customProps)));
|
152
|
+
var input = react_1.screen.getByTestId('phone-input');
|
153
|
+
expect(input).toHaveAttribute('placeholder', 'Enter phone number');
|
154
|
+
expect(input).toBeDisabled();
|
155
|
+
expect(input).toHaveAttribute('data-custom', 'test-value');
|
156
|
+
});
|
157
|
+
// Note: Empty input test is covered by the basic onChange test above
|
158
|
+
});
|
159
|
+
//# sourceMappingURL=PhoneInput.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PhoneInput.test.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { CountryData } from '../../utils/countryData';
|
3
|
+
interface CountryDropdownProps {
|
4
|
+
selectedCountry: CountryData;
|
5
|
+
onCountryChange: (country: CountryData) => void;
|
6
|
+
enableCountrySearch?: boolean;
|
7
|
+
anchorEl?: HTMLElement | null;
|
8
|
+
open: boolean;
|
9
|
+
onClose: () => void;
|
10
|
+
}
|
11
|
+
declare const CountryDropdown: React.FC<CountryDropdownProps>;
|
12
|
+
export default CountryDropdown;
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js
ADDED
@@ -0,0 +1,206 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
37
|
+
};
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
40
|
+
/** @jsxImportSource @emotion/react */
|
41
|
+
var Popover_1 = __importDefault(require("@mui/material/Popover"));
|
42
|
+
var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
|
43
|
+
var InputBase_1 = __importDefault(require("@mui/material/InputBase"));
|
44
|
+
var react_1 = __importStar(require("react"));
|
45
|
+
var countryData_1 = require("../../utils/countryData");
|
46
|
+
var FlagIcon_1 = __importDefault(require("./FlagIcon"));
|
47
|
+
// Memoized country item component for better performance
|
48
|
+
var CountryItem = react_1.default.memo(function (_a) {
|
49
|
+
var country = _a.country, index = _a.index, isSelected = _a.isSelected, onSelect = _a.onSelect, onMouseEnter = _a.onMouseEnter;
|
50
|
+
return ((0, jsx_runtime_1.jsxs)(MenuItem_1.default, { id: "country-option-".concat(index), selected: isSelected, onClick: function () { return onSelect(country); }, onMouseEnter: function () { return onMouseEnter(index); }, role: "option", "aria-selected": isSelected, "aria-label": "".concat(country.name, ", ").concat(country.dialCode), sx: {
|
51
|
+
padding: '8px 16px',
|
52
|
+
minHeight: '48px',
|
53
|
+
transition: 'background-color 0.2s ease',
|
54
|
+
display: 'flex',
|
55
|
+
alignItems: 'center',
|
56
|
+
width: '100%',
|
57
|
+
'&.Mui-selected': {
|
58
|
+
backgroundColor: 'rgba(0, 0, 0, 0.08)',
|
59
|
+
},
|
60
|
+
'&:hover': {
|
61
|
+
backgroundColor: 'rgba(0, 0, 0, 0.04)',
|
62
|
+
},
|
63
|
+
}, children: [(0, jsx_runtime_1.jsx)(FlagIcon_1.default, { countryCode: country.code, style: { marginRight: '8px' } }), (0, jsx_runtime_1.jsx)("span", { style: {
|
64
|
+
flex: 1,
|
65
|
+
fontSize: '14px',
|
66
|
+
fontFamily: 'inherit',
|
67
|
+
}, children: country.name }), (0, jsx_runtime_1.jsx)("span", { style: {
|
68
|
+
opacity: 0.7,
|
69
|
+
fontSize: '12px',
|
70
|
+
fontFamily: 'inherit',
|
71
|
+
marginLeft: '8px',
|
72
|
+
}, children: country.dialCode })] }, country.code));
|
73
|
+
});
|
74
|
+
CountryItem.displayName = 'CountryItem';
|
75
|
+
var CountryDropdown = function (_a) {
|
76
|
+
var onCountryChange = _a.onCountryChange, _b = _a.enableCountrySearch, enableCountrySearch = _b === void 0 ? false : _b, anchorEl = _a.anchorEl, open = _a.open, onClose = _a.onClose;
|
77
|
+
var _c = (0, react_1.useState)(''), searchTerm = _c[0], setSearchTerm = _c[1];
|
78
|
+
var _d = (0, react_1.useState)(-1), selectedIndex = _d[0], setSelectedIndex = _d[1];
|
79
|
+
var searchInputRef = (0, react_1.useRef)(null);
|
80
|
+
var countries = (0, react_1.useMemo)(function () { return (0, countryData_1.getCountryData)(); }, []);
|
81
|
+
var filteredCountries = (0, react_1.useMemo)(function () {
|
82
|
+
if (!searchTerm.trim())
|
83
|
+
return countries;
|
84
|
+
var term = searchTerm.toLowerCase().trim();
|
85
|
+
return countries.filter(function (country) {
|
86
|
+
return country.name.toLowerCase().includes(term) ||
|
87
|
+
country.dialCode.toLowerCase().includes(term) ||
|
88
|
+
country.code.toLowerCase().includes(term);
|
89
|
+
});
|
90
|
+
}, [countries, searchTerm]);
|
91
|
+
// Reset search state when dropdown opens/closes
|
92
|
+
(0, react_1.useEffect)(function () {
|
93
|
+
if (open) {
|
94
|
+
setSearchTerm('');
|
95
|
+
setSelectedIndex(-1);
|
96
|
+
}
|
97
|
+
}, [open]);
|
98
|
+
// Auto-focus search input when dropdown opens and blur when closing
|
99
|
+
(0, react_1.useEffect)(function () {
|
100
|
+
if (open && enableCountrySearch) {
|
101
|
+
var timer_1 = setTimeout(function () {
|
102
|
+
var _a;
|
103
|
+
(_a = searchInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
104
|
+
}, 100);
|
105
|
+
return function () { return clearTimeout(timer_1); };
|
106
|
+
}
|
107
|
+
else if (!open) {
|
108
|
+
// When closing, ensure any focused element inside the popover is blurred
|
109
|
+
// to prevent aria-hidden violations
|
110
|
+
var activeElement = document.activeElement;
|
111
|
+
if (activeElement && activeElement.closest('#country-selector-listbox')) {
|
112
|
+
activeElement.blur();
|
113
|
+
}
|
114
|
+
}
|
115
|
+
return undefined;
|
116
|
+
}, [open, enableCountrySearch]);
|
117
|
+
// Memoized callbacks for better performance
|
118
|
+
var handleCountrySelect = (0, react_1.useCallback)(function (country) {
|
119
|
+
// Blur any focused element to prevent aria-hidden violations
|
120
|
+
var activeElement = document.activeElement;
|
121
|
+
if (activeElement && activeElement.closest('#country-selector-listbox')) {
|
122
|
+
activeElement.blur();
|
123
|
+
}
|
124
|
+
onCountryChange(country);
|
125
|
+
onClose();
|
126
|
+
}, [onCountryChange, onClose]);
|
127
|
+
var handleSearchChange = (0, react_1.useCallback)(function (event) {
|
128
|
+
var value = event.target.value;
|
129
|
+
setSearchTerm(value);
|
130
|
+
setSelectedIndex(-1);
|
131
|
+
}, []);
|
132
|
+
var handleKeyDown = (0, react_1.useCallback)(function (event) {
|
133
|
+
switch (event.key) {
|
134
|
+
case 'ArrowDown':
|
135
|
+
event.preventDefault();
|
136
|
+
setSelectedIndex(function (prev) {
|
137
|
+
return prev < filteredCountries.length - 1 ? prev + 1 : prev;
|
138
|
+
});
|
139
|
+
break;
|
140
|
+
case 'ArrowUp':
|
141
|
+
event.preventDefault();
|
142
|
+
setSelectedIndex(function (prev) { return (prev > 0 ? prev - 1 : -1); });
|
143
|
+
break;
|
144
|
+
case 'Enter':
|
145
|
+
event.preventDefault();
|
146
|
+
if (selectedIndex >= 0 && selectedIndex < filteredCountries.length) {
|
147
|
+
var country = filteredCountries[selectedIndex];
|
148
|
+
handleCountrySelect(country);
|
149
|
+
}
|
150
|
+
break;
|
151
|
+
case 'Escape':
|
152
|
+
event.preventDefault();
|
153
|
+
onClose();
|
154
|
+
break;
|
155
|
+
}
|
156
|
+
}, [filteredCountries.length, selectedIndex, handleCountrySelect, onClose]);
|
157
|
+
return ((0, jsx_runtime_1.jsxs)(Popover_1.default, { open: open, anchorEl: anchorEl, onClose: onClose, anchorOrigin: {
|
158
|
+
vertical: 'bottom',
|
159
|
+
horizontal: 'left',
|
160
|
+
}, transformOrigin: {
|
161
|
+
vertical: 'top',
|
162
|
+
horizontal: 'left',
|
163
|
+
}, disableRestoreFocus: true, disableEnforceFocus: true, slotProps: {
|
164
|
+
paper: {
|
165
|
+
id: 'country-selector-listbox',
|
166
|
+
role: 'dialog',
|
167
|
+
'aria-label': 'Select country',
|
168
|
+
sx: {
|
169
|
+
maxHeight: 400,
|
170
|
+
width: 300,
|
171
|
+
overflow: 'hidden',
|
172
|
+
display: 'flex',
|
173
|
+
flexDirection: 'column',
|
174
|
+
},
|
175
|
+
},
|
176
|
+
}, children: [enableCountrySearch && ((0, jsx_runtime_1.jsx)("div", { style: {
|
177
|
+
padding: '12px 16px',
|
178
|
+
borderBottom: '1px solid rgba(0, 0, 0, 0.12)',
|
179
|
+
backgroundColor: '#ffffff',
|
180
|
+
}, children: (0, jsx_runtime_1.jsx)(InputBase_1.default, { ref: searchInputRef, placeholder: "Search countries...", value: searchTerm, onChange: handleSearchChange, onKeyDown: handleKeyDown, fullWidth: true, sx: {
|
181
|
+
fontSize: '14px',
|
182
|
+
padding: '6px 8px',
|
183
|
+
border: '1px solid rgba(0, 0, 0, 0.23)',
|
184
|
+
borderRadius: '4px',
|
185
|
+
backgroundColor: '#ffffff',
|
186
|
+
'&:focus-within': {
|
187
|
+
borderColor: 'primary.main',
|
188
|
+
boxShadow: '0 0 0 2px rgba(25, 118, 210, 0.2)',
|
189
|
+
},
|
190
|
+
}, inputProps: {
|
191
|
+
'aria-label': 'Search countries',
|
192
|
+
autoComplete: 'off',
|
193
|
+
spellCheck: false,
|
194
|
+
} }) })), (0, jsx_runtime_1.jsx)("div", { style: {
|
195
|
+
flex: 1,
|
196
|
+
overflowY: 'auto',
|
197
|
+
backgroundColor: '#ffffff',
|
198
|
+
}, role: "listbox", "aria-label": "Country list", "aria-activedescendant": selectedIndex >= 0 ? "country-option-".concat(selectedIndex) : undefined, children: filteredCountries.length === 0 ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
199
|
+
padding: '16px',
|
200
|
+
textAlign: 'center',
|
201
|
+
color: 'rgba(0, 0, 0, 0.6)',
|
202
|
+
fontSize: '14px',
|
203
|
+
}, children: "No countries found" })) : (filteredCountries.map(function (country, index) { return ((0, jsx_runtime_1.jsx)(CountryItem, { country: country, index: index, isSelected: index === selectedIndex, onSelect: handleCountrySelect, onMouseEnter: setSelectedIndex }, country.code)); })) })] }));
|
204
|
+
};
|
205
|
+
exports.default = CountryDropdown;
|
206
|
+
//# sourceMappingURL=CountryDropdown.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CountryDropdown.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|