@mvf/external-components 3.31.1-dev.6 → 3.31.1-dev.7

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.
Files changed (91) hide show
  1. package/Components/Atoms/FormControl/FormControl.js +1 -3
  2. package/Components/Atoms/FormControl/FormControl.js.map +1 -1
  3. package/Components/Atoms/FormControl/makeFormControlStyles.d.ts +1 -3
  4. package/Components/Atoms/FormControl/makeFormControlStyles.js +2 -1
  5. package/Components/Atoms/FormControl/makeFormControlStyles.js.map +1 -1
  6. package/Components/Atoms/Input/IInputProps.d.ts +0 -5
  7. package/Components/Atoms/Input/Input.js +2 -3
  8. package/Components/Atoms/Input/Input.js.map +1 -1
  9. package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js +3 -5
  10. package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js.map +1 -1
  11. package/Components/Molecules/ScrollContainer/ScrollContainer.js +25 -0
  12. package/Components/Molecules/ScrollContainer/ScrollContainer.js.map +1 -1
  13. package/Components/Molecules/index.d.ts +0 -1
  14. package/Components/Molecules/index.js +1 -3
  15. package/Components/Molecules/index.js.map +1 -1
  16. package/Components/index.d.ts +1 -1
  17. package/Components/index.js +1 -2
  18. package/Components/index.js.map +1 -1
  19. package/index.d.ts +1 -1
  20. package/index.js +1 -2
  21. package/index.js.map +1 -1
  22. package/package.json +1 -3
  23. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.d.ts +0 -57
  24. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js +0 -3
  25. package/Components/Molecules/PhoneNumberTextFieldCustom/IPhoneNumberTextFieldProps.js.map +0 -1
  26. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.d.ts +0 -33
  27. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js +0 -3
  28. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberCallbacks.js.map +0 -1
  29. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.d.ts +0 -7
  30. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js +0 -216
  31. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.js.map +0 -1
  32. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.d.ts +0 -1
  33. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js +0 -596
  34. package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js.map +0 -1
  35. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.d.ts +0 -8
  36. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js +0 -17
  37. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/display/ErrorDisplay.js.map +0 -1
  38. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.d.ts +0 -22
  39. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js +0 -56
  40. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.js.map +0 -1
  41. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.d.ts +0 -1
  42. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js +0 -159
  43. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.js.map +0 -1
  44. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.d.ts +0 -12
  45. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js +0 -206
  46. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.js.map +0 -1
  47. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.d.ts +0 -1
  48. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js +0 -187
  49. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.test.js.map +0 -1
  50. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.d.ts +0 -10
  51. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js +0 -229
  52. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.js.map +0 -1
  53. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.d.ts +0 -1
  54. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js +0 -281
  55. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryModal.test.js.map +0 -1
  56. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.d.ts +0 -11
  57. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js +0 -35
  58. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountrySelector.js.map +0 -1
  59. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.d.ts +0 -10
  60. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js +0 -114
  61. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/FlagIcon.js.map +0 -1
  62. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.d.ts +0 -12
  63. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js +0 -36
  64. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js.map +0 -1
  65. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.d.ts +0 -38
  66. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js +0 -181
  67. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js.map +0 -1
  68. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.d.ts +0 -21
  69. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js +0 -41
  70. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js.map +0 -1
  71. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.d.ts +0 -10
  72. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js +0 -138
  73. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js.map +0 -1
  74. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.d.ts +0 -12
  75. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js +0 -509
  76. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryData.js.map +0 -1
  77. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.d.ts +0 -21
  78. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js +0 -33
  79. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/defaultProps.js.map +0 -1
  80. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.d.ts +0 -15
  81. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js +0 -130
  82. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.js.map +0 -1
  83. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.d.ts +0 -1
  84. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js +0 -157
  85. package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/phoneValidation.test.js.map +0 -1
  86. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.d.ts +0 -21
  87. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js +0 -33
  88. package/Components/Molecules/PhoneNumberTextFieldCustom/defaultProps.js.map +0 -1
  89. package/Components/Molecules/PhoneNumberTextFieldCustom/index.d.ts +0 -10
  90. package/Components/Molecules/PhoneNumberTextFieldCustom/index.js +0 -21
  91. package/Components/Molecules/PhoneNumberTextFieldCustom/index.js.map +0 -1
@@ -1,17 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,22 +0,0 @@
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;
@@ -1,56 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,159 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"PhoneInput.test.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/forms/PhoneInput.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmE;AACnE,4DAAsC;AAEtC,2BAA2B;AAC3B,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE;IAC9C,OAAO,SAAS,SAAS,CAAC,EAMzB;QALC,IAAA,QAAQ,cAAA,EACL,KAAK,cAFgB,YAGzB,CADS;QAKR,OAAO,CACL,6CACM,KAAK,IACT,QAAQ,EAAE,UAAC,CAAC;gBACV,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAY,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9D,CAAC,iBACW,aAAa,IACzB,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAM,YAAY,GAAG;QACnB,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;KACpB,CAAC;IAEF,UAAU,CAAC;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE;QAC7B,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,EAAI,CAAC,CAAC;QACzC,MAAM,CAAC,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE;QACtC,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,EAAI,CAAC,CAAC;QACzC,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAEtD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;YACjD,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE;QACxC,EAAE,CAAC,gDAAgD,EAAE;YACnD,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;YAC5D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAE5D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE;YACvD,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;YAC5D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE;YACxD,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;YAC5D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAE7D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE;QAC7B,EAAE,CAAC,4DAA4D,EAAE;YAC/D,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YAC3D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YAE5D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE;YAC3D,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YAC3D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE;YAC5E,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YAC3D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YAE7D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE;YAC7E,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YAC3D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;YAE9D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE;YAC7D,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YAC3D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YAE/D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE;YAC7E,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,YAAY,IAAE,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC;YAC3D,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAEhD,qDAAqD;YACrD,IAAM,SAAS,GAAG,2BAA2B,CAAC;YAC9C,iBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAE1D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;gBACjD,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,kBAAkB,EAAE,8DAA8D;aAC1F,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE;QAClD,IAAM,WAAW,yBACZ,YAAY,KACf,WAAW,EAAE,oBAAoB,EACjC,QAAQ,EAAE,IAAI,EACd,aAAa,EAAE,YAAY,GAC5B,CAAC;QAEF,IAAA,cAAM,EAAC,uBAAC,oBAAU,eAAK,WAAW,EAAI,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,cAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEhD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,qEAAqE;AACvE,CAAC,CAAC,CAAC"}
@@ -1,12 +0,0 @@
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;
@@ -1,206 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"CountryDropdown.js","sourceRoot":"","sources":["../../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/components/ui/CountryDropdown.tsx"],"names":[],"mappings":"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"}