@mvf/external-components 3.30.0 → 3.31.1-dev.4
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/CardButton/CardButton.js +17 -7
- package/Components/Atoms/CardButton/CardButton.js.map +1 -1
- package/Components/Atoms/CardButton/CardButtonStory.js +17 -7
- package/Components/Atoms/CardButton/CardButtonStory.js.map +1 -1
- package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.js +17 -7
- package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.js.map +1 -1
- package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js +17 -7
- package/Components/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js.map +1 -1
- 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/InfoPanel/InfoPanelStory.js +17 -7
- package/Components/Atoms/InfoPanel/InfoPanelStory.js.map +1 -1
- package/Components/Atoms/Input/IInputProps.d.ts +5 -0
- package/Components/Atoms/Input/Input.js +20 -9
- package/Components/Atoms/Input/Input.js.map +1 -1
- package/Components/Molecules/CheckBox/CheckBox.js +17 -7
- package/Components/Molecules/CheckBox/CheckBox.js.map +1 -1
- package/Components/Molecules/DatePicker/DatePickerStory.js +17 -7
- package/Components/Molecules/DatePicker/DatePickerStory.js.map +1 -1
- package/Components/Molecules/DropDownSelect/DropDownSelectStory.js +17 -7
- package/Components/Molecules/DropDownSelect/DropDownSelectStory.js.map +1 -1
- package/Components/Molecules/IconTileCheckBox/IconTileCheckBox.test.js +17 -7
- package/Components/Molecules/IconTileCheckBox/IconTileCheckBox.test.js.map +1 -1
- package/Components/Molecules/IconTileRadioButton/IconTileRadioButton.test.js +17 -7
- package/Components/Molecules/IconTileRadioButton/IconTileRadioButton.test.js.map +1 -1
- package/Components/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js +17 -7
- package/Components/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js.map +1 -1
- package/Components/Molecules/PhoneNumberTextField/CountryDropdown.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextField/CountryDropdown.js +146 -0
- package/Components/Molecules/PhoneNumberTextField/CountryDropdown.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/CountryDropdown.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextField/CountryDropdown.test.js +49 -0
- package/Components/Molecules/PhoneNumberTextField/CountryDropdown.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/CountryModal.d.ts +11 -0
- package/Components/Molecules/PhoneNumberTextField/CountryModal.js +180 -0
- package/Components/Molecules/PhoneNumberTextField/CountryModal.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/CountryModal.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextField/CountryModal.test.js +54 -0
- package/Components/Molecules/PhoneNumberTextField/CountryModal.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js +5 -3
- package/Components/Molecules/PhoneNumberTextField/PhoneNumberTextField.js.map +1 -1
- package/Components/Molecules/PhoneNumberTextField/__tests__/PhoneNumberTextField.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextField/__tests__/PhoneNumberTextField.test.js +215 -0
- package/Components/Molecules/PhoneNumberTextField/__tests__/PhoneNumberTextField.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/countryData.d.ts +13 -0
- package/Components/Molecules/PhoneNumberTextField/countryData.js +743 -0
- package/Components/Molecules/PhoneNumberTextField/countryData.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/makePhoneInputStyles.d.ts +50 -0
- package/Components/Molecules/PhoneNumberTextField/makePhoneInputStyles.js +147 -0
- package/Components/Molecules/PhoneNumberTextField/makePhoneInputStyles.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/phoneNumberValidation.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextField/phoneNumberValidation.js +66 -0
- package/Components/Molecules/PhoneNumberTextField/phoneNumberValidation.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextField/phoneValidation.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextField/phoneValidation.js +71 -0
- package/Components/Molecules/PhoneNumberTextField/phoneValidation.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.js +206 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.test.js +187 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryDropdown.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.js +229 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.test.js +281 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountryModal.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountrySelector.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountrySelector.js +32 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/CountrySelector.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/ErrorDisplay.d.ts +9 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/ErrorDisplay.js +26 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/ErrorDisplay.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/FlagIcon.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/FlagIcon.js +114 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/FlagIcon.js.map +1 -0
- 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/PhoneInput.d.ts +22 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.js +59 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.test.js +159 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneInput.test.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 +195 -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 +450 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextField.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.d.ts +37 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.js +154 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.d.ts +17 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.js +29 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.d.ts +11 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js +34 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.js +70 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.d.ts +32 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js +133 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/DebouncedValidationStory.d.ts +20 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/DebouncedValidationStory.js +60 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/DebouncedValidationStory.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.d.ts +18 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js +18 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/PhoneNumberTextFieldStory.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/StrictModeStory.d.ts +18 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/StrictModeStory.js +101 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/stories/StrictModeStory.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.d.ts +10 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/styling/makeFormControlPhoneNumberStyling.js +138 -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/countryDataFull.d.ts +13 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataFull.js +513 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataFull.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataOptimized.d.ts +0 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataOptimized.js +2 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/utils/countryDataOptimized.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 +120 -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/countryData.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/countryData.js +507 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/countryData.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/PhoneNumberTextFieldCustom/makeFormControlPhoneNumberStyling.d.ts +8 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/makeFormControlPhoneNumberStyling.js +139 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/makeFormControlPhoneNumberStyling.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.d.ts +15 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.js +120 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.test.d.ts +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.test.js +157 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/phoneValidation.test.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/useCountrySelector.d.ts +12 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/useCountrySelector.js +34 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/useCountrySelector.js.map +1 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/usePhoneNumber.d.ts +31 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/usePhoneNumber.js +130 -0
- package/Components/Molecules/PhoneNumberTextFieldCustom/usePhoneNumber.js.map +1 -0
- package/Components/Molecules/ScrollContainer/ScrollContainer.js +17 -7
- 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/Organisms/RadioGroup/RadioGroup.js +17 -7
- package/Components/Organisms/RadioGroup/RadioGroup.js.map +1 -1
- package/Components/Organisms/TileLayout/IconTileCheckBoxStory.js +17 -7
- package/Components/Organisms/TileLayout/IconTileCheckBoxStory.js.map +1 -1
- package/Components/Organisms/TileLayout/IconTileRadioButtonStory.js +17 -7
- package/Components/Organisms/TileLayout/IconTileRadioButtonStory.js.map +1 -1
- package/Components/Organisms/__helpers__/Options.js +17 -7
- package/Components/Organisms/__helpers__/Options.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/Experiments/CRO-584/Atoms/CardButton/CardButton.js +17 -7
- package/Experiments/CRO-584/Atoms/CardButton/CardButton.js.map +1 -1
- package/Experiments/CRO-584/Atoms/CardButton/CardButtonStory.js +17 -7
- package/Experiments/CRO-584/Atoms/CardButton/CardButtonStory.js.map +1 -1
- package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.js +17 -7
- package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.js.map +1 -1
- package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js +17 -7
- package/Experiments/CRO-584/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js.map +1 -1
- package/Experiments/CRO-584/Atoms/Input/Input.js +17 -7
- package/Experiments/CRO-584/Atoms/Input/Input.js.map +1 -1
- package/Experiments/CRO-584/Molecules/CheckBox/CheckBox.js +17 -7
- package/Experiments/CRO-584/Molecules/CheckBox/CheckBox.js.map +1 -1
- package/Experiments/CRO-584/Molecules/IconTileCheckBox/IconTileCheckBox.test.js +17 -7
- package/Experiments/CRO-584/Molecules/IconTileCheckBox/IconTileCheckBox.test.js.map +1 -1
- package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButton.test.js +17 -7
- package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButton.test.js.map +1 -1
- package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js +17 -7
- package/Experiments/CRO-584/Molecules/IconTileRadioButton/IconTileRadioButtonStory.js.map +1 -1
- package/Experiments/CRO-584/Organisms/RadioGroup/RadioGroup.js +17 -7
- package/Experiments/CRO-584/Organisms/RadioGroup/RadioGroup.js.map +1 -1
- package/Experiments/CRO-584/Organisms/TileLayout/IconTileCheckBoxStory.js +17 -7
- package/Experiments/CRO-584/Organisms/TileLayout/IconTileCheckBoxStory.js.map +1 -1
- package/Experiments/CRO-584/Organisms/TileLayout/IconTileRadioButtonStory.js +17 -7
- package/Experiments/CRO-584/Organisms/TileLayout/IconTileRadioButtonStory.js.map +1 -1
- package/Experiments/CRO-584/Organisms/__helpers__/Options.js +17 -7
- package/Experiments/CRO-584/Organisms/__helpers__/Options.js.map +1 -1
- package/Experiments/Example/Atoms/CardButton/CardButton.js +17 -7
- package/Experiments/Example/Atoms/CardButton/CardButton.js.map +1 -1
- package/Experiments/Example/Atoms/CardButton/CardButtonStory.js +17 -7
- package/Experiments/Example/Atoms/CardButton/CardButtonStory.js.map +1 -1
- package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.js +17 -7
- package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.js.map +1 -1
- package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js +17 -7
- package/Experiments/Example/Atoms/ErrorMessageProvider/ErrorMessageProvider.test.js.map +1 -1
- package/Experiments/Example/Atoms/Input/Input.js +17 -7
- package/Experiments/Example/Atoms/Input/Input.js.map +1 -1
- package/Experiments/Example/Molecules/CheckBox/CheckBox.js +17 -7
- package/Experiments/Example/Molecules/CheckBox/CheckBox.js.map +1 -1
- package/Themes/apricotTheme.d.ts +172 -0
- package/Themes/apricotTheme.js +37 -0
- package/Themes/apricotTheme.js.map +1 -0
- package/Themes/auroraTheme.d.ts +172 -0
- package/Themes/auroraTheme.js +37 -0
- package/Themes/auroraTheme.js.map +1 -0
- package/Themes/index.d.ts +2 -0
- package/Themes/index.js +7 -1
- package/Themes/index.js.map +1 -1
- package/Themes/palettes.d.ts +54 -0
- package/Themes/palettes.js +4 -0
- package/Themes/palettes.js.map +1 -1
- package/Themes/themes.d.ts +288 -0
- package/Themes/themes.js +27 -7
- package/Themes/themes.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/package.json +4 -1
@@ -0,0 +1,154 @@
|
|
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
|
+
/** @jsxImportSource @emotion/react */
|
30
|
+
var FormControl_1 = __importDefault(require("@mui/material/FormControl"));
|
31
|
+
var FormHelperText_1 = __importDefault(require("@mui/material/FormHelperText"));
|
32
|
+
var ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
|
33
|
+
var react_1 = require("react");
|
34
|
+
var Input_1 = __importDefault(require("../../../Components/Atoms/Input"));
|
35
|
+
var InputLabel_1 = __importDefault(require("../../../Components/Atoms/InputLabel"));
|
36
|
+
var makeFormControlPhoneNumberStyling_1 = __importDefault(require("./makeFormControlPhoneNumberStyling"));
|
37
|
+
var makeFormControlStyles_1 = __importDefault(require("../../../Components/Atoms/FormControl/makeFormControlStyles"));
|
38
|
+
var CountryDropdown_1 = __importDefault(require("./CountryDropdown"));
|
39
|
+
var CountryModal_1 = __importDefault(require("./CountryModal"));
|
40
|
+
var FlagIcon_1 = __importDefault(require("./FlagIcon"));
|
41
|
+
var usePhoneNumber_1 = require("./usePhoneNumber");
|
42
|
+
var useCountrySelector_1 = require("./useCountrySelector");
|
43
|
+
var defaultProps = {
|
44
|
+
disabled: false,
|
45
|
+
isAnswered: false,
|
46
|
+
isSafari: false,
|
47
|
+
isAutoFilledActive: false,
|
48
|
+
enableCountryChange: true,
|
49
|
+
enableCountrySearch: false,
|
50
|
+
useModalForCountrySelection: false,
|
51
|
+
label: '',
|
52
|
+
value: '',
|
53
|
+
onBlur: function () { },
|
54
|
+
onClick: function () { },
|
55
|
+
};
|
56
|
+
var PhoneNumberTextFieldRefactored = function (_a) {
|
57
|
+
var
|
58
|
+
// Core props
|
59
|
+
id = _a.id, _b = _a.value, value = _b === void 0 ? '' : _b, label = _a.label, errorMessage = _a.errorMessage, disabled = _a.disabled, placeholder = _a.placeholder,
|
60
|
+
// Country settings
|
61
|
+
initialCountry = _a.initialCountry, enableCountryChange = _a.enableCountryChange, enableCountrySearch = _a.enableCountrySearch, useModalForCountrySelection = _a.useModalForCountrySelection,
|
62
|
+
// UI state
|
63
|
+
isAnswered = _a.isAnswered, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, experimentName = _a.experimentName,
|
64
|
+
// Callbacks
|
65
|
+
onPhoneNumberChange = _a.onPhoneNumberChange, onCountryChange = _a.onCountryChange, onChange = _a.onChange, // Legacy support
|
66
|
+
// Event handlers
|
67
|
+
onBlur = _a.onBlur, onClick = _a.onClick, props = __rest(_a, ["id", "value", "label", "errorMessage", "disabled", "placeholder", "initialCountry", "enableCountryChange", "enableCountrySearch", "useModalForCountrySelection", "isAnswered", "isSafari", "isAutoFilledActive", "experimentName", "onPhoneNumberChange", "onCountryChange", "onChange", "onBlur", "onClick"]);
|
68
|
+
var countrySelectorRef = (0, react_1.useRef)(null);
|
69
|
+
var inputRef = (0, react_1.useRef)(null);
|
70
|
+
// Custom hooks for clean separation of concerns
|
71
|
+
var phoneNumber = (0, usePhoneNumber_1.usePhoneNumber)({
|
72
|
+
initialCountry: initialCountry,
|
73
|
+
initialValue: value,
|
74
|
+
});
|
75
|
+
var countrySelector = (0, useCountrySelector_1.useCountrySelector)({
|
76
|
+
enableCountryChange: enableCountryChange,
|
77
|
+
});
|
78
|
+
// Handle phone number change events
|
79
|
+
(0, react_1.useEffect)(function () {
|
80
|
+
if (phoneNumber.phoneNumber || phoneNumber.validationResult) {
|
81
|
+
var event_1 = {
|
82
|
+
id: id,
|
83
|
+
phoneNumber: phoneNumber.phoneNumber,
|
84
|
+
e164Number: phoneNumber.formattedE164,
|
85
|
+
isValid: phoneNumber.isValid,
|
86
|
+
selectedCountry: phoneNumber.selectedCountry,
|
87
|
+
validationResult: phoneNumber.validationResult,
|
88
|
+
};
|
89
|
+
onPhoneNumberChange === null || onPhoneNumberChange === void 0 ? void 0 : onPhoneNumberChange(event_1);
|
90
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(event_1); // Legacy support
|
91
|
+
}
|
92
|
+
}, [
|
93
|
+
id,
|
94
|
+
phoneNumber.phoneNumber,
|
95
|
+
phoneNumber.formattedE164,
|
96
|
+
phoneNumber.isValid,
|
97
|
+
phoneNumber.selectedCountry,
|
98
|
+
phoneNumber.validationResult,
|
99
|
+
onPhoneNumberChange,
|
100
|
+
onChange,
|
101
|
+
]);
|
102
|
+
// Handle input changes
|
103
|
+
var handlePhoneChange = (0, react_1.useCallback)(function (params) {
|
104
|
+
phoneNumber.setPhoneNumber(params.value);
|
105
|
+
}, [phoneNumber]);
|
106
|
+
// Handle country changes
|
107
|
+
var handleCountryChange = (0, react_1.useCallback)(function (country) {
|
108
|
+
var previousCountry = phoneNumber.selectedCountry;
|
109
|
+
phoneNumber.setSelectedCountry(country);
|
110
|
+
// Call country change callback
|
111
|
+
var event = {
|
112
|
+
id: id,
|
113
|
+
selectedCountry: country,
|
114
|
+
previousCountry: previousCountry,
|
115
|
+
};
|
116
|
+
onCountryChange === null || onCountryChange === void 0 ? void 0 : onCountryChange(event);
|
117
|
+
}, [phoneNumber, id, onCountryChange]);
|
118
|
+
// Determine error state
|
119
|
+
var shouldShowError = errorMessage ||
|
120
|
+
(phoneNumber.validationResult && !phoneNumber.validationResult.isValid && phoneNumber.phoneNumber.length > 0);
|
121
|
+
var finalErrorMessage = errorMessage || phoneNumber.errorMessage;
|
122
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(FormControl_1.default, __assign({ variant: "standard", error: !!shouldShowError, fullWidth: true, css: [
|
123
|
+
(0, makeFormControlPhoneNumberStyling_1.default)({
|
124
|
+
isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false,
|
125
|
+
isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false,
|
126
|
+
isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false,
|
127
|
+
hasError: !!shouldShowError,
|
128
|
+
}),
|
129
|
+
(0, makeFormControlStyles_1.default)({
|
130
|
+
isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false,
|
131
|
+
isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false
|
132
|
+
}),
|
133
|
+
], sx: { position: 'relative' } }, { children: [label && ((0, jsx_runtime_1.jsx)(InputLabel_1.default, __assign({ isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false, htmlFor: id, shrink: true, experimentName: experimentName }, { children: label }))), (0, jsx_runtime_1.jsxs)("div", __assign({ className: "phone-input-container" }, { children: [(0, jsx_runtime_1.jsxs)("div", __assign({ ref: countrySelectorRef, className: "country-selector", onClick: enableCountryChange ? countrySelector.handleCountrySelectClick : undefined, style: {
|
134
|
+
display: 'flex',
|
135
|
+
alignItems: 'center',
|
136
|
+
padding: '8px 12px',
|
137
|
+
cursor: enableCountryChange ? 'pointer' : 'default',
|
138
|
+
minWidth: '80px',
|
139
|
+
justifyContent: 'center',
|
140
|
+
}, role: enableCountryChange ? 'button' : undefined, tabIndex: enableCountryChange ? 0 : undefined, "aria-label": enableCountryChange
|
141
|
+
? "Select country, currently ".concat(phoneNumber.selectedCountry.name)
|
142
|
+
: "Country: ".concat(phoneNumber.selectedCountry.name), onKeyDown: countrySelector.handleKeyDown }, { children: [(0, jsx_runtime_1.jsx)(FlagIcon_1.default, { countryCode: phoneNumber.selectedCountry.code, style: { marginRight: '8px' } }), enableCountryChange && ((0, jsx_runtime_1.jsx)(ExpandMore_1.default, { style: {
|
143
|
+
fontSize: '16px',
|
144
|
+
color: 'rgba(0, 0, 0, 1)',
|
145
|
+
marginLeft: '4px',
|
146
|
+
transform: countrySelector.isCountryMenuOpen
|
147
|
+
? 'rotate(180deg)'
|
148
|
+
: 'rotate(0deg)',
|
149
|
+
transition: 'transform 0.1s ease-in-out',
|
150
|
+
} }))] })), (0, jsx_runtime_1.jsx)(Input_1.default, __assign({ error: !!shouldShowError, id: id, onChange: handlePhoneChange, isAnswered: isAnswered !== null && isAnswered !== void 0 ? isAnswered : false, value: phoneNumber.phoneNumber, isSafari: isSafari !== null && isSafari !== void 0 ? isSafari : false, isAutoFilledActive: isAutoFilledActive !== null && isAutoFilledActive !== void 0 ? isAutoFilledActive : false, experimentName: experimentName, type: "tel", placeholder: placeholder || phoneNumber.selectedCountry.example, inputRef: inputRef, disabled: disabled, onBlur: onBlur, onClick: onClick }, props))] })), finalErrorMessage && ((0, jsx_runtime_1.jsx)(FormHelperText_1.default, { children: finalErrorMessage }))] })), enableCountryChange && useModalForCountrySelection ? ((0, jsx_runtime_1.jsx)(CountryModal_1.default, { selectedCountry: phoneNumber.selectedCountry, onCountryChange: handleCountryChange, enableCountrySearch: enableCountrySearch, open: countrySelector.isCountryMenuOpen, onClose: countrySelector.closeCountryMenu })) : ((0, jsx_runtime_1.jsx)(CountryDropdown_1.default, { selectedCountry: phoneNumber.selectedCountry, onCountryChange: handleCountryChange, enableCountrySearch: enableCountrySearch, anchorEl: countrySelectorRef.current, open: countrySelector.isCountryMenuOpen, onClose: countrySelector.closeCountryMenu }))] }));
|
151
|
+
};
|
152
|
+
PhoneNumberTextFieldRefactored.defaultProps = defaultProps;
|
153
|
+
exports.default = PhoneNumberTextFieldRefactored;
|
154
|
+
//# sourceMappingURL=PhoneNumberTextFieldRefactored.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PhoneNumberTextFieldRefactored.js","sourceRoot":"","sources":["../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldRefactored.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
type StoryType = React.FunctionComponent<{
|
3
|
+
disabled: boolean;
|
4
|
+
errorMessage: string;
|
5
|
+
isAnswered: boolean;
|
6
|
+
label: string;
|
7
|
+
placeholder: string;
|
8
|
+
type: 'tel' | 'text';
|
9
|
+
parentContainerMaxWidth: number;
|
10
|
+
isSafari: boolean;
|
11
|
+
isAutoFilledActive: boolean;
|
12
|
+
enableCountryChange: boolean;
|
13
|
+
enableCountrySearch: boolean;
|
14
|
+
useModalForCountrySelection: boolean;
|
15
|
+
}>;
|
16
|
+
declare const PhoneNumberTextFieldStory: StoryType;
|
17
|
+
export default PhoneNumberTextFieldStory;
|
@@ -0,0 +1,29 @@
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
18
|
+
var addon_actions_1 = require("@storybook/addon-actions");
|
19
|
+
var PhoneNumberTextField_1 = __importDefault(require("./PhoneNumberTextField"));
|
20
|
+
var handleChange = function (_a) {
|
21
|
+
var id = _a.id, value = _a.value;
|
22
|
+
(0, addon_actions_1.action)('Input Change')({ phone: value });
|
23
|
+
};
|
24
|
+
var PhoneNumberTextFieldStory = function (_a) {
|
25
|
+
var disabled = _a.disabled, errorMessage = _a.errorMessage, type = _a.type, isAnswered = _a.isAnswered, label = _a.label, placeholder = _a.placeholder, parentContainerMaxWidth = _a.parentContainerMaxWidth, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, enableCountryChange = _a.enableCountryChange, enableCountrySearch = _a.enableCountrySearch, useModalForCountrySelection = _a.useModalForCountrySelection;
|
26
|
+
return ((0, jsx_runtime_1.jsx)("div", __assign({ style: { maxWidth: parentContainerMaxWidth } }, { children: (0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { disabled: disabled, errorMessage: errorMessage, onChange: handleChange, type: type, id: "id", isAnswered: isAnswered, label: label, placeholder: placeholder, isSafari: isSafari, isAutoFilledActive: isAutoFilledActive, experimentName: "default", enableCountryChange: enableCountryChange, enableCountrySearch: enableCountrySearch, useModalForCountrySelection: useModalForCountrySelection }) })));
|
27
|
+
};
|
28
|
+
exports.default = PhoneNumberTextFieldStory;
|
29
|
+
//# sourceMappingURL=PhoneNumberTextFieldStory.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"PhoneNumberTextFieldStory.js","sourceRoot":"","sources":["../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/PhoneNumberTextFieldStory.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAAkD;AAGlD,gFAA0D;AAiB1D,IAAM,YAAY,GAAG,UAAC,EAAkD;QAAhD,EAAE,QAAA,EAAE,KAAK,WAAA;IAC/B,IAAA,sBAAM,EAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,IAAM,yBAAyB,GAAc,UAAC,EAa7C;QAZC,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,IAAI,UAAA,EACJ,UAAU,gBAAA,EACV,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,uBAAuB,6BAAA,EACvB,QAAQ,cAAA,EACR,kBAAkB,wBAAA,EAClB,mBAAmB,yBAAA,EACnB,mBAAmB,yBAAA,EACnB,2BAA2B,iCAAA;IAE3B,OAAO,CACL,yCAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE,gBAC/C,uBAAC,8BAAoB,IACnB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,IAAI,EACV,EAAE,EAAC,IAAI,EACP,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAC,SAAS,EACxB,mBAAmB,EAAE,mBAAmB,EACxC,mBAAmB,EAAE,mBAAmB,EACxC,2BAA2B,EAAE,2BAA2B,GACxD,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,yBAAyB,CAAC"}
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.d.ts
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
export interface UseCountrySelectorOptions {
|
2
|
+
enableCountryChange?: boolean;
|
3
|
+
}
|
4
|
+
export interface UseCountrySelectorReturn {
|
5
|
+
isCountryMenuOpen: boolean;
|
6
|
+
openCountryMenu: () => void;
|
7
|
+
closeCountryMenu: () => void;
|
8
|
+
handleCountrySelectClick: () => void;
|
9
|
+
handleKeyDown: (e: React.KeyboardEvent) => void;
|
10
|
+
}
|
11
|
+
export declare const useCountrySelector: ({ enableCountryChange, }?: UseCountrySelectorOptions) => UseCountrySelectorReturn;
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useCountrySelector = void 0;
|
4
|
+
var react_1 = require("react");
|
5
|
+
var useCountrySelector = function (_a) {
|
6
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.enableCountryChange, enableCountryChange = _c === void 0 ? true : _c;
|
7
|
+
var _d = (0, react_1.useState)(false), isCountryMenuOpen = _d[0], setIsCountryMenuOpen = _d[1];
|
8
|
+
var openCountryMenu = (0, react_1.useCallback)(function () {
|
9
|
+
if (enableCountryChange) {
|
10
|
+
setIsCountryMenuOpen(true);
|
11
|
+
}
|
12
|
+
}, [enableCountryChange]);
|
13
|
+
var closeCountryMenu = (0, react_1.useCallback)(function () {
|
14
|
+
setIsCountryMenuOpen(false);
|
15
|
+
}, []);
|
16
|
+
var handleCountrySelectClick = (0, react_1.useCallback)(function () {
|
17
|
+
openCountryMenu();
|
18
|
+
}, [openCountryMenu]);
|
19
|
+
var handleKeyDown = (0, react_1.useCallback)(function (e) {
|
20
|
+
if (enableCountryChange && (e.key === 'Enter' || e.key === ' ')) {
|
21
|
+
e.preventDefault();
|
22
|
+
openCountryMenu();
|
23
|
+
}
|
24
|
+
}, [enableCountryChange, openCountryMenu]);
|
25
|
+
return {
|
26
|
+
isCountryMenuOpen: isCountryMenuOpen,
|
27
|
+
openCountryMenu: openCountryMenu,
|
28
|
+
closeCountryMenu: closeCountryMenu,
|
29
|
+
handleCountrySelectClick: handleCountrySelectClick,
|
30
|
+
handleKeyDown: handleKeyDown,
|
31
|
+
};
|
32
|
+
};
|
33
|
+
exports.useCountrySelector = useCountrySelector;
|
34
|
+
//# sourceMappingURL=useCountrySelector.js.map
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useCountrySelector.js","sourceRoot":"","sources":["../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useCountrySelector.ts"],"names":[],"mappings":";;;AAAA,+BAA8C;AAcvC,IAAM,kBAAkB,GAAG,UAAC,EAEF;QAFE,qBAEJ,EAAE,KAAA,EAD/B,2BAA0B,EAA1B,mBAAmB,mBAAG,IAAI,KAAA;IAEpB,IAAA,KAA4C,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAA1D,iBAAiB,QAAA,EAAE,oBAAoB,QAAmB,CAAC;IAElE,IAAM,eAAe,GAAG,IAAA,mBAAW,EAAC;QAClC,IAAI,mBAAmB,EAAE,CAAC;YACxB,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,IAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC;QACnC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,wBAAwB,GAAG,IAAA,mBAAW,EAAC;QAC3C,eAAe,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,CAAsB;QACrB,IAAI,mBAAmB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YAChE,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,EACD,CAAC,mBAAmB,EAAE,eAAe,CAAC,CACvC,CAAC;IAEF,OAAO;QACL,iBAAiB,mBAAA;QACjB,eAAe,iBAAA;QACf,gBAAgB,kBAAA;QAChB,wBAAwB,0BAAA;QACxB,aAAa,eAAA;KACd,CAAC;AACJ,CAAC,CAAC;AApCW,QAAA,kBAAkB,sBAoC7B"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { PhoneValidationResult } from '../utils/phoneValidation';
|
2
|
+
export interface DebouncedValidationOptions {
|
3
|
+
validationFunction: () => PhoneValidationResult | null;
|
4
|
+
delay?: number;
|
5
|
+
immediate?: boolean;
|
6
|
+
}
|
7
|
+
export interface DebouncedValidationReturn {
|
8
|
+
debouncedResult: PhoneValidationResult | null;
|
9
|
+
isValidating: boolean;
|
10
|
+
validateNow: () => void;
|
11
|
+
}
|
12
|
+
export declare const useDebouncedValidation: ({ validationFunction, delay, immediate, }: DebouncedValidationOptions) => DebouncedValidationReturn;
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.js
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useDebouncedValidation = void 0;
|
4
|
+
var react_1 = require("react");
|
5
|
+
var useDebouncedValidation = function (_a) {
|
6
|
+
var validationFunction = _a.validationFunction, _b = _a.delay, delay = _b === void 0 ? 300 : _b, _c = _a.immediate, immediate = _c === void 0 ? false : _c;
|
7
|
+
var _d = (0, react_1.useState)(null), debouncedResult = _d[0], setDebouncedResult = _d[1];
|
8
|
+
var _e = (0, react_1.useState)(false), isValidating = _e[0], setIsValidating = _e[1];
|
9
|
+
var timeoutRef = (0, react_1.useRef)(null);
|
10
|
+
var isFirstCall = (0, react_1.useRef)(true);
|
11
|
+
var validationFunctionRef = (0, react_1.useRef)(validationFunction);
|
12
|
+
// Update the ref when validationFunction changes instead of recreating callbacks
|
13
|
+
(0, react_1.useEffect)(function () {
|
14
|
+
validationFunctionRef.current = validationFunction;
|
15
|
+
}, [validationFunction]);
|
16
|
+
var validateNow = (0, react_1.useCallback)(function () {
|
17
|
+
if (timeoutRef.current) {
|
18
|
+
clearTimeout(timeoutRef.current);
|
19
|
+
timeoutRef.current = null;
|
20
|
+
}
|
21
|
+
setIsValidating(false);
|
22
|
+
var result = validationFunctionRef.current();
|
23
|
+
setDebouncedResult(result);
|
24
|
+
}, []); // No dependencies since we use ref
|
25
|
+
var debouncedValidate = (0, react_1.useCallback)(function () {
|
26
|
+
if (timeoutRef.current) {
|
27
|
+
clearTimeout(timeoutRef.current);
|
28
|
+
}
|
29
|
+
// If it's the first call and immediate validation is enabled, validate right away
|
30
|
+
if (isFirstCall.current && immediate) {
|
31
|
+
isFirstCall.current = false;
|
32
|
+
validateNow();
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
isFirstCall.current = false;
|
36
|
+
setIsValidating(true);
|
37
|
+
timeoutRef.current = setTimeout(function () {
|
38
|
+
validateNow();
|
39
|
+
}, delay);
|
40
|
+
}, [delay, immediate, validateNow]);
|
41
|
+
// Only trigger validation when the validation function actually changes
|
42
|
+
// Use a ref to track the previous function to avoid infinite loops
|
43
|
+
var prevValidationFunctionRef = (0, react_1.useRef)(validationFunction);
|
44
|
+
(0, react_1.useEffect)(function () {
|
45
|
+
// Only re-validate if the function reference actually changed
|
46
|
+
if (prevValidationFunctionRef.current !== validationFunction) {
|
47
|
+
prevValidationFunctionRef.current = validationFunction;
|
48
|
+
debouncedValidate();
|
49
|
+
}
|
50
|
+
return function () {
|
51
|
+
if (timeoutRef.current) {
|
52
|
+
clearTimeout(timeoutRef.current);
|
53
|
+
}
|
54
|
+
};
|
55
|
+
}, [validationFunction, debouncedValidate]);
|
56
|
+
(0, react_1.useEffect)(function () {
|
57
|
+
return function () {
|
58
|
+
if (timeoutRef.current) {
|
59
|
+
clearTimeout(timeoutRef.current);
|
60
|
+
}
|
61
|
+
};
|
62
|
+
}, []);
|
63
|
+
return {
|
64
|
+
debouncedResult: debouncedResult,
|
65
|
+
isValidating: isValidating,
|
66
|
+
validateNow: validateNow,
|
67
|
+
};
|
68
|
+
};
|
69
|
+
exports.useDebouncedValidation = useDebouncedValidation;
|
70
|
+
//# sourceMappingURL=useDebouncedValidation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useDebouncedValidation.js","sourceRoot":"","sources":["../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/useDebouncedValidation.ts"],"names":[],"mappings":";;;AAAA,+BAAiE;AAe1D,IAAM,sBAAsB,GAAG,UAAC,EAIV;QAH3B,kBAAkB,wBAAA,EAClB,aAAW,EAAX,KAAK,mBAAG,GAAG,KAAA,EACX,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA;IAEX,IAAA,KACJ,IAAA,gBAAQ,EAA+B,IAAI,CAAC,EADvC,eAAe,QAAA,EAAE,kBAAkB,QACI,CAAC;IACzC,IAAA,KAAkC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IACxD,IAAM,UAAU,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAC;IACvD,IAAM,WAAW,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IACjC,IAAM,qBAAqB,GAAG,IAAA,cAAM,EAAC,kBAAkB,CAAC,CAAC;IAEzD,iFAAiF;IACjF,IAAA,iBAAS,EAAC;QACR,qBAAqB,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACrD,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,IAAM,WAAW,GAAG,IAAA,mBAAW,EAAC;QAC9B,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACjC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;SAC3B;QAED,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,IAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,CAAC;QAC/C,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mCAAmC;IAE3C,IAAM,iBAAiB,GAAG,IAAA,mBAAW,EAAC;QACpC,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAClC;QAED,kFAAkF;QAClF,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;YACpC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;YAC5B,WAAW,EAAE,CAAC;YACd,OAAO;SACR;QAED,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,eAAe,CAAC,IAAI,CAAC,CAAC;QAEtB,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC;YAC9B,WAAW,EAAE,CAAC;QAChB,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEpC,wEAAwE;IACxE,mEAAmE;IACnE,IAAM,yBAAyB,GAAG,IAAA,cAAM,EAAC,kBAAkB,CAAC,CAAC;IAC7D,IAAA,iBAAS,EAAC;QACR,8DAA8D;QAC9D,IAAI,yBAAyB,CAAC,OAAO,KAAK,kBAAkB,EAAE;YAC5D,yBAAyB,CAAC,OAAO,GAAG,kBAAkB,CAAC;YACvD,iBAAiB,EAAE,CAAC;SACrB;QAED,OAAO;YACL,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAClC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE5C,IAAA,iBAAS,EAAC;QACR,OAAO;YACL,IAAI,UAAU,CAAC,OAAO,EAAE;gBACtB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAClC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,eAAe,iBAAA;QACf,YAAY,cAAA;QACZ,WAAW,aAAA;KACZ,CAAC;AACJ,CAAC,CAAC;AA9EW,QAAA,sBAAsB,0BA8EjC"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { CountryData } from '../utils/countryData';
|
2
|
+
import { PhoneValidationResult } from '../utils/phoneValidation';
|
3
|
+
export interface UsePhoneNumberOptions {
|
4
|
+
initialCountry?: string;
|
5
|
+
initialValue?: string;
|
6
|
+
onPhoneNumberChange?: (params: {
|
7
|
+
phoneNumber: string;
|
8
|
+
e164Number: string;
|
9
|
+
}) => void;
|
10
|
+
onCountryChange?: (params: {
|
11
|
+
selectedCountry: CountryData;
|
12
|
+
previousCountry: CountryData;
|
13
|
+
}) => void;
|
14
|
+
onValidationChange?: (params: {
|
15
|
+
isValid: boolean;
|
16
|
+
validationResult: PhoneValidationResult;
|
17
|
+
phoneNumber: string;
|
18
|
+
}) => void;
|
19
|
+
}
|
20
|
+
export interface UsePhoneNumberReturn {
|
21
|
+
phoneNumber: string;
|
22
|
+
selectedCountry: CountryData;
|
23
|
+
validationResult: PhoneValidationResult | null;
|
24
|
+
countries: CountryData[];
|
25
|
+
setPhoneNumber: (value: string) => void;
|
26
|
+
setSelectedCountry: (country: CountryData) => void;
|
27
|
+
isValid: boolean;
|
28
|
+
errorMessage?: string;
|
29
|
+
formattedE164: string;
|
30
|
+
phoneNumberType?: string;
|
31
|
+
}
|
32
|
+
export declare const usePhoneNumber: ({ initialCountry, initialValue, }?: Omit<UsePhoneNumberOptions, "onPhoneNumberChange" | "onCountryChange" | "onValidationChange">) => UsePhoneNumberReturn;
|
@@ -0,0 +1,133 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.usePhoneNumber = void 0;
|
4
|
+
var react_1 = require("react");
|
5
|
+
var countryData_1 = require("../utils/countryData");
|
6
|
+
var phoneValidation_1 = require("../utils/phoneValidation");
|
7
|
+
var usePhoneNumber = function (_a) {
|
8
|
+
var _b, _c;
|
9
|
+
var _d = _a === void 0 ? {} : _a, initialCountry = _d.initialCountry, _e = _d.initialValue, initialValue = _e === void 0 ? '' : _e;
|
10
|
+
// Memoize countries data to prevent unnecessary recalculations
|
11
|
+
var countries = (0, react_1.useMemo)(function () { return (0, countryData_1.getCountryData)(); }, []);
|
12
|
+
// Initialize selected country
|
13
|
+
var _f = (0, react_1.useState)(function () {
|
14
|
+
if (initialCountry) {
|
15
|
+
var initialCountryData = countries.find(function (c) { return c.code === initialCountry; });
|
16
|
+
if (initialCountryData)
|
17
|
+
return initialCountryData;
|
18
|
+
}
|
19
|
+
return countries[0]; // Fallback to first country
|
20
|
+
}), selectedCountry = _f[0], setSelectedCountryState = _f[1];
|
21
|
+
var _g = (0, react_1.useState)(''), phoneNumber = _g[0], setPhoneNumberState = _g[1];
|
22
|
+
var _h = (0, react_1.useState)(null), validationResult = _h[0], setValidationResult = _h[1];
|
23
|
+
var previousValueRef = (0, react_1.useRef)('');
|
24
|
+
// Process phone number with country-specific formatting and validation
|
25
|
+
var processPhoneNumber = (0, react_1.useCallback)(function (phoneValue, countryCode, useNationalFormat) {
|
26
|
+
if (useNationalFormat === void 0) { useNationalFormat = true; }
|
27
|
+
var validation = (0, phoneValidation_1.validatePhoneNumber)(phoneValue, countryCode);
|
28
|
+
if (useNationalFormat && validation.nationalFormatted) {
|
29
|
+
return { formattedNumber: validation.nationalFormatted, validation: validation };
|
30
|
+
}
|
31
|
+
var formattedNumber = (0, phoneValidation_1.formatAsYouType)(phoneValue, countryCode);
|
32
|
+
return { formattedNumber: formattedNumber, validation: validation };
|
33
|
+
}, []);
|
34
|
+
// Update country if different from current
|
35
|
+
var updateCountryIfDifferent = (0, react_1.useCallback)(function (detectedCountryCode) {
|
36
|
+
var detectedCountry = countries.find(function (c) { return c.code === detectedCountryCode; });
|
37
|
+
if (detectedCountry && detectedCountry.code !== selectedCountry.code) {
|
38
|
+
return detectedCountry;
|
39
|
+
}
|
40
|
+
return null;
|
41
|
+
}, [countries, selectedCountry.code]);
|
42
|
+
// Handle external value changes (controlled component behavior)
|
43
|
+
(0, react_1.useEffect)(function () {
|
44
|
+
if (previousValueRef.current === initialValue)
|
45
|
+
return;
|
46
|
+
previousValueRef.current = initialValue || '';
|
47
|
+
if (!initialValue) {
|
48
|
+
setPhoneNumberState('');
|
49
|
+
setValidationResult(null);
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
// Try to extract country code from the input value
|
53
|
+
var detectedCountryCode = (0, phoneValidation_1.extractCountryCodeFromNumber)(initialValue, selectedCountry.code);
|
54
|
+
if (detectedCountryCode) {
|
55
|
+
// Update country if different
|
56
|
+
var newCountry = updateCountryIfDifferent(detectedCountryCode);
|
57
|
+
if (newCountry) {
|
58
|
+
setSelectedCountryState(newCountry);
|
59
|
+
}
|
60
|
+
// Process with detected country
|
61
|
+
var _a = processPhoneNumber(initialValue, detectedCountryCode, true), formattedNumber = _a.formattedNumber, validation = _a.validation;
|
62
|
+
setPhoneNumberState(formattedNumber);
|
63
|
+
setValidationResult(validation);
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
// Use current selected country
|
67
|
+
var _b = processPhoneNumber(initialValue, selectedCountry.code, false), formattedNumber = _b.formattedNumber, validation = _b.validation;
|
68
|
+
setPhoneNumberState(formattedNumber);
|
69
|
+
setValidationResult(validation);
|
70
|
+
}
|
71
|
+
}, [
|
72
|
+
initialValue,
|
73
|
+
selectedCountry.code,
|
74
|
+
processPhoneNumber,
|
75
|
+
updateCountryIfDifferent,
|
76
|
+
]);
|
77
|
+
// Handle phone number changes
|
78
|
+
var setPhoneNumber = (0, react_1.useCallback)(function (newPhoneNumber) {
|
79
|
+
// Format as you type
|
80
|
+
var formattedNumber = (0, phoneValidation_1.formatAsYouType)(newPhoneNumber, selectedCountry.code);
|
81
|
+
setPhoneNumberState(formattedNumber);
|
82
|
+
// Validate with auto-detection first, then fallback to selected country
|
83
|
+
var validation = (0, phoneValidation_1.validatePhoneNumber)(formattedNumber);
|
84
|
+
if (!validation.countryCode || !validation.isValid) {
|
85
|
+
validation = (0, phoneValidation_1.validatePhoneNumber)(formattedNumber, selectedCountry.code);
|
86
|
+
}
|
87
|
+
setValidationResult(validation);
|
88
|
+
// Auto-update country if detected
|
89
|
+
if (validation.countryCode &&
|
90
|
+
validation.countryCode !== selectedCountry.code) {
|
91
|
+
var detectedCountry = countries.find(function (c) { return c.code === validation.countryCode; });
|
92
|
+
if (detectedCountry) {
|
93
|
+
setSelectedCountryState(detectedCountry);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}, [selectedCountry, countries]);
|
97
|
+
// Handle country changes
|
98
|
+
var setSelectedCountry = (0, react_1.useCallback)(function (country) {
|
99
|
+
setSelectedCountryState(country);
|
100
|
+
// Reformat existing phone number with new country's rules
|
101
|
+
if (phoneNumber) {
|
102
|
+
var reformattedNumber = (0, phoneValidation_1.formatAsYouType)(phoneNumber, country.code);
|
103
|
+
setPhoneNumberState(reformattedNumber);
|
104
|
+
// Re-validate with new country
|
105
|
+
var validation = (0, phoneValidation_1.validatePhoneNumber)(reformattedNumber, country.code);
|
106
|
+
setValidationResult(validation);
|
107
|
+
// Note: callbacks will be triggered by the main component useEffect
|
108
|
+
}
|
109
|
+
else {
|
110
|
+
setValidationResult(null);
|
111
|
+
}
|
112
|
+
// Note: callbacks will be triggered by the main component useEffect
|
113
|
+
}, [selectedCountry, phoneNumber]);
|
114
|
+
return {
|
115
|
+
// State
|
116
|
+
phoneNumber: phoneNumber,
|
117
|
+
selectedCountry: selectedCountry,
|
118
|
+
validationResult: validationResult,
|
119
|
+
countries: countries,
|
120
|
+
// Actions
|
121
|
+
setPhoneNumber: setPhoneNumber,
|
122
|
+
setSelectedCountry: setSelectedCountry,
|
123
|
+
// Computed
|
124
|
+
isValid: (_b = validationResult === null || validationResult === void 0 ? void 0 : validationResult.isValid) !== null && _b !== void 0 ? _b : false,
|
125
|
+
errorMessage: validationResult === null || validationResult === void 0 ? void 0 : validationResult.errorMessage,
|
126
|
+
formattedE164: (_c = validationResult === null || validationResult === void 0 ? void 0 : validationResult.formattedNumber) !== null && _c !== void 0 ? _c : '',
|
127
|
+
phoneNumberType: (validationResult === null || validationResult === void 0 ? void 0 : validationResult.phoneNumberType) !== undefined
|
128
|
+
? String(validationResult.phoneNumberType)
|
129
|
+
: undefined,
|
130
|
+
};
|
131
|
+
};
|
132
|
+
exports.usePhoneNumber = usePhoneNumber;
|
133
|
+
//# sourceMappingURL=usePhoneNumber.js.map
|
package/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"usePhoneNumber.js","sourceRoot":"","sources":["../../../../../../src/Components/Molecules/PhoneNumberTextFieldCustom/__helpers__/hooks/usePhoneNumber.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
type DebouncedValidationStoryType = React.FunctionComponent<{
|
3
|
+
disabled: boolean;
|
4
|
+
errorMessage?: string;
|
5
|
+
isAnswered: boolean;
|
6
|
+
label: string;
|
7
|
+
placeholder?: string;
|
8
|
+
type: 'tel' | 'text';
|
9
|
+
parentContainerMaxWidth: number;
|
10
|
+
isSafari: boolean;
|
11
|
+
isAutoFilledActive: boolean;
|
12
|
+
enableCountryChange: boolean;
|
13
|
+
enableCountrySearch: boolean;
|
14
|
+
useModalForCountrySelection: boolean;
|
15
|
+
enableDebouncedValidation: boolean;
|
16
|
+
validationDelay: number;
|
17
|
+
strictMode?: boolean;
|
18
|
+
}>;
|
19
|
+
declare const DebouncedValidationStory: DebouncedValidationStoryType;
|
20
|
+
export default DebouncedValidationStory;
|
@@ -0,0 +1,60 @@
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
18
|
+
var addon_actions_1 = require("@storybook/addon-actions");
|
19
|
+
var react_1 = require("react");
|
20
|
+
var PhoneNumberTextField_1 = __importDefault(require("../../PhoneNumberTextField"));
|
21
|
+
var DebouncedValidationStory = function (_a) {
|
22
|
+
var disabled = _a.disabled, errorMessage = _a.errorMessage, type = _a.type, isAnswered = _a.isAnswered, label = _a.label, placeholder = _a.placeholder, parentContainerMaxWidth = _a.parentContainerMaxWidth, isSafari = _a.isSafari, isAutoFilledActive = _a.isAutoFilledActive, enableCountryChange = _a.enableCountryChange, enableCountrySearch = _a.enableCountrySearch, useModalForCountrySelection = _a.useModalForCountrySelection, enableDebouncedValidation = _a.enableDebouncedValidation, validationDelay = _a.validationDelay, strictMode = _a.strictMode;
|
23
|
+
var _b = (0, react_1.useState)(''), phoneValue = _b[0], setPhoneValue = _b[1];
|
24
|
+
var _c = (0, react_1.useState)({
|
25
|
+
isValid: false,
|
26
|
+
}), validationInfo = _c[0], setValidationInfo = _c[1];
|
27
|
+
var handlePhoneNumberChange = function (params) {
|
28
|
+
(0, addon_actions_1.action)('Phone Number Change')(params);
|
29
|
+
setPhoneValue(params.phoneNumber);
|
30
|
+
};
|
31
|
+
var handleValidationChange = function (params) {
|
32
|
+
(0, addon_actions_1.action)('Validation Change')(params);
|
33
|
+
setValidationInfo({
|
34
|
+
isValid: params.isValid,
|
35
|
+
errorMessage: params.validationResult.errorMessage,
|
36
|
+
isValidating: false,
|
37
|
+
});
|
38
|
+
};
|
39
|
+
var handleFormattedValueChange = function (params) {
|
40
|
+
(0, addon_actions_1.action)('Formatted Value Change')(params);
|
41
|
+
};
|
42
|
+
var handleCountryChange = function (params) {
|
43
|
+
(0, addon_actions_1.action)('Country Change')(params);
|
44
|
+
};
|
45
|
+
return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { maxWidth: parentContainerMaxWidth, padding: '20px' } }, { children: [(0, jsx_runtime_1.jsxs)("div", __assign({ style: {
|
46
|
+
backgroundColor: '#f5f5f5',
|
47
|
+
padding: '16px',
|
48
|
+
borderRadius: '8px',
|
49
|
+
marginBottom: '20px',
|
50
|
+
fontFamily: 'monospace',
|
51
|
+
} }, { children: [(0, jsx_runtime_1.jsx)("h3", __assign({ style: { margin: '0 0 12px 0', color: '#333' } }, { children: "Debounced Validation Demo" })), (0, jsx_runtime_1.jsxs)("div", __assign({ style: { fontSize: '14px', lineHeight: '1.5' } }, { children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Debounced Validation:" }), ' ', enableDebouncedValidation ? 'Enabled' : 'Disabled'] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Validation Delay:" }), " ", validationDelay, "ms"] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Current Value:" }), " \"", phoneValue, "\""] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Is Valid:" }), ' ', (0, jsx_runtime_1.jsx)("span", __assign({ style: { color: validationInfo.isValid ? 'green' : 'red' } }, { children: validationInfo.isValid ? 'Yes' : 'No' }))] }), validationInfo.errorMessage && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Error:" }), ' ', (0, jsx_runtime_1.jsx)("span", __assign({ style: { color: 'red' } }, { children: validationInfo.errorMessage }))] })), validationInfo.isValidating && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Status:" }), ' ', (0, jsx_runtime_1.jsx)("span", __assign({ style: { color: 'orange' } }, { children: "Validating..." }))] }))] }))] })), (0, jsx_runtime_1.jsxs)("div", __assign({ style: {
|
52
|
+
backgroundColor: '#e3f2fd',
|
53
|
+
padding: '16px',
|
54
|
+
borderRadius: '8px',
|
55
|
+
marginBottom: '20px',
|
56
|
+
fontSize: '14px',
|
57
|
+
} }, { children: [(0, jsx_runtime_1.jsx)("h4", __assign({ style: { margin: '0 0 8px 0', color: '#1976d2' } }, { children: "How to Test Debounced Validation:" })), (0, jsx_runtime_1.jsxs)("ol", __assign({ style: { margin: 0, paddingLeft: '20px' } }, { children: [(0, jsx_runtime_1.jsx)("li", { children: "Type quickly in the phone field - notice validation is delayed" }), (0, jsx_runtime_1.jsx)("li", { children: "When debounced validation is enabled, you'll see \"Validating...\" during the delay" }), (0, jsx_runtime_1.jsx)("li", { children: "Try typing: \"+1555555\" then pause to see validation kick in" }), (0, jsx_runtime_1.jsx)("li", { children: "Compare behavior with debounced validation enabled vs disabled" }), (0, jsx_runtime_1.jsx)("li", { children: "Check the Actions panel to see when callbacks are fired" })] }))] })), (0, jsx_runtime_1.jsx)(PhoneNumberTextField_1.default, { disabled: disabled, errorMessage: errorMessage, onPhoneNumberChange: handlePhoneNumberChange, onValidationChange: handleValidationChange, onFormattedValueChange: handleFormattedValueChange, onCountryChange: handleCountryChange, type: type, id: "debounced-phone-input", isAnswered: isAnswered, label: label, placeholder: placeholder, value: phoneValue, isSafari: isSafari, isAutoFilledActive: isAutoFilledActive, experimentName: "debounced-validation-story", enableCountryChange: enableCountryChange, enableCountrySearch: enableCountrySearch, useModalForCountrySelection: useModalForCountrySelection, enableDebouncedValidation: enableDebouncedValidation, validationDelay: validationDelay, strictMode: strictMode })] })));
|
58
|
+
};
|
59
|
+
exports.default = DebouncedValidationStory;
|
60
|
+
//# sourceMappingURL=DebouncedValidationStory.js.map
|