intelicoreact 1.3.19 → 1.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +23 -15
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +23 -15
- package/dist/Atomic/FormElements/Calendar/Calendar.js +124 -69
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +36 -27
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +39 -23
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +246 -110
- package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +85 -44
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +414 -246
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +9 -5
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +165 -93
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +64 -39
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +132 -51
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +73 -34
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +75 -54
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +110 -67
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +83 -33
- package/dist/Atomic/FormElements/Input/Input.js +253 -161
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +102 -48
- package/dist/Atomic/FormElements/InputColor/InputColor.js +40 -27
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +58 -28
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +176 -108
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +57 -32
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +302 -184
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +157 -85
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +16 -11
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +193 -76
- package/dist/Atomic/FormElements/InputLink/InputLink.js +58 -34
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +12 -8
- package/dist/Atomic/FormElements/InputMask/InputMask.js +964 -554
- package/dist/Atomic/FormElements/InputMask/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask/functions.js +43 -17
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +404 -268
- package/dist/Atomic/FormElements/InputMask2/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask2/functions.js +43 -17
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +459 -299
- package/dist/Atomic/FormElements/InputMask3/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask3/functions.js +43 -17
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +113 -53
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +118 -64
- package/dist/Atomic/FormElements/Label/Label.js +23 -13
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +349 -217
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +47 -25
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +207 -133
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +61 -29
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +42 -20
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +33 -22
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +43 -20
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +101 -54
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +102 -59
- package/dist/Atomic/FormElements/RangeList/RangeList.js +150 -89
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +29 -23
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +300 -135
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +571 -381
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +24 -14
- package/dist/Atomic/FormElements/Switcher/Switcher.js +29 -24
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +47 -25
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +32 -20
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +55 -32
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +42 -22
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +33 -23
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +120 -51
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +3 -2
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +46 -23
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +417 -253
- package/dist/Atomic/FormElements/Text/Text.js +53 -47
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +31 -21
- package/dist/Atomic/FormElements/Textarea/Textarea.js +27 -16
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +128 -68
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +36 -25
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +70 -33
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +124 -58
- package/dist/Atomic/FormElements/UserContacts/partial/defaultIcons.js +91 -0
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +80 -48
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +42 -32
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +60 -40
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +3 -2
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +69 -50
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +3 -3
- package/dist/Atomic/Layout/Header/Header.js +48 -21
- package/dist/Atomic/Layout/MainMenu/MainMenu.js +79 -36
- package/dist/Atomic/Layout/Spinner/Spinner.js +14 -8
- package/dist/Atomic/UI/Accordion/Accordion.js +48 -18
- package/dist/Atomic/UI/Accordion/AccordionItem.js +60 -35
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +106 -49
- package/dist/Atomic/UI/AccordionText/AccordionText.js +37 -13
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +94 -48
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +50 -22
- package/dist/Atomic/UI/Alert/Alert.js +44 -20
- package/dist/Atomic/UI/Arrow/Arrow.js +35 -15
- package/dist/Atomic/UI/Box/Box.js +21 -14
- package/dist/Atomic/UI/Button/Button.js +35 -26
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +31 -22
- package/dist/Atomic/UI/Chart/Chart.js +86 -45
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +24 -14
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +22 -13
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +113 -68
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +140 -158
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +42 -26
- package/dist/Atomic/UI/Chart/partial/utils.js +48 -20
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +42 -22
- package/dist/Atomic/UI/DateTime/DateTime.js +38 -23
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +36 -12
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +21 -5
- package/dist/Atomic/UI/DoubleString/DoubleString.js +50 -27
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +63 -15
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +157 -62
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +110 -47
- package/dist/Atomic/UI/Hint/Hint.js +94 -49
- package/dist/Atomic/UI/Modal/Modal.js +179 -149
- package/dist/Atomic/UI/Modal/ModalHOC.js +21 -12
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +12 -7
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +21 -17
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +167 -94
- package/dist/Atomic/UI/ModalBackup/Modal.js +90 -65
- package/dist/Atomic/UI/ModalBackup/ModalHOC.js +21 -12
- package/dist/Atomic/UI/ModalBackup/partials/ModalFooter.js +11 -6
- package/dist/Atomic/UI/ModalBackup/partials/ModalTitle.js +19 -15
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +62 -32
- package/dist/Atomic/UI/NavLine/NavLine.js +211 -120
- package/dist/Atomic/UI/NavLine/Tabs.js +3 -2
- package/dist/Atomic/UI/PageTitle/PageTitle.js +17 -13
- package/dist/Atomic/UI/PieChart/PieChart.js +21 -11
- package/dist/Atomic/UI/Price/Price.js +13 -10
- package/dist/Atomic/UI/PriceRange/PriceRange.js +11 -7
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +56 -27
- package/dist/Atomic/UI/Status/Status.js +30 -19
- package/dist/Atomic/UI/Table/Partials/TdCell.js +71 -28
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +16 -7
- package/dist/Atomic/UI/Table/Partials/TdRow.js +65 -29
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +40 -16
- package/dist/Atomic/UI/Table/Table.js +47 -27
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +48 -18
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +19 -9
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +8 -5
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +47 -25
- package/dist/Atomic/UI/Tag/Tag.js +48 -20
- package/dist/Atomic/UI/TagList/TagList.js +150 -80
- package/dist/Atomic/UI/UserBox/UserBox.js +26 -14
- package/dist/Classes/AbortableFetch.js +422 -283
- package/dist/Classes/AnimatedHandler.js +56 -44
- package/dist/Classes/RESTAPI/index.js +433 -154
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +428 -290
- package/dist/Classes/RESTAPI/partials/ApiBase.js +67 -24
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +275 -57
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +377 -146
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +403 -155
- package/dist/Classes/RESTAPI/partials/Utils.js +135 -81
- package/dist/Classes/RESTAPI/partials/_outerDependencies.js +6 -2
- package/dist/Classes/RESTAPI/partials/_utils.js +395 -101
- package/dist/Constants/index.constants.js +15 -8
- package/dist/Functions/Portal.js +33 -14
- package/dist/Functions/customEventListener.js +20 -5
- package/dist/Functions/fieldValueFormatters.js +211 -148
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +137 -75
- package/dist/Functions/locale/createTranslator.js +27 -13
- package/dist/Functions/operations.js +49 -35
- package/dist/Functions/presets/inputMaskPresets.js +27 -25
- package/dist/Functions/presets/inputPresets.js +22 -19
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +9 -7
- package/dist/Functions/schemas.js +15 -6
- package/dist/Functions/useClickOutside.js +7 -3
- package/dist/Functions/useDebounce.js +25 -11
- package/dist/Functions/useFieldFocus.js +67 -42
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +54 -35
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +95 -74
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +91 -55
- package/dist/Functions/useFormTools/functions/General.js +99 -80
- package/dist/Functions/useFormTools/functions/RenderFields.js +72 -45
- package/dist/Functions/useFormTools/functions/usePrevious.js +7 -3
- package/dist/Functions/useFormTools/index.js +598 -382
- package/dist/Functions/useInputHighlightError.js +52 -27
- package/dist/Functions/useIsMobile.js +36 -13
- package/dist/Functions/useLocalStorage.js +22 -7
- package/dist/Functions/useLocationParams.js +27 -16
- package/dist/Functions/useMetaInfo.js +50 -19
- package/dist/Functions/useMouseUpOutside.js +5 -2
- package/dist/Functions/useOnlineStatus.js +26 -7
- package/dist/Functions/usePasswordChecker.js +77 -42
- package/dist/Functions/usePrevious.js +7 -3
- package/dist/Functions/useResize.js +32 -12
- package/dist/Functions/useScrollTo.js +20 -6
- package/dist/Functions/useToggle.js +30 -10
- package/dist/Functions/utils.js +366 -186
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +32 -21
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +32 -21
- package/dist/Molecular/CustomIcons/components/AppStore.js +36 -25
- package/dist/Molecular/CustomIcons/components/Arrow.js +42 -31
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +24 -13
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +27 -16
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +27 -16
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +24 -13
- package/dist/Molecular/CustomIcons/components/Bell.js +22 -11
- package/dist/Molecular/CustomIcons/components/Button.js +22 -11
- package/dist/Molecular/CustomIcons/components/Campaigns.js +23 -12
- package/dist/Molecular/CustomIcons/components/Check.js +23 -12
- package/dist/Molecular/CustomIcons/components/Check2.js +22 -11
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +22 -11
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +22 -11
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +22 -11
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +22 -11
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +22 -11
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +37 -26
- package/dist/Molecular/CustomIcons/components/Close.js +24 -13
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +49 -38
- package/dist/Molecular/CustomIcons/components/Delete.js +23 -12
- package/dist/Molecular/CustomIcons/components/Edit.js +22 -11
- package/dist/Molecular/CustomIcons/components/Email.js +40 -29
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +30 -19
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +38 -27
- package/dist/Molecular/CustomIcons/components/Flows.js +22 -11
- package/dist/Molecular/CustomIcons/components/Gift.js +27 -16
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +36 -25
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +36 -25
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +25 -14
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +26 -15
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +25 -14
- package/dist/Molecular/CustomIcons/components/Home.js +25 -14
- package/dist/Molecular/CustomIcons/components/Home2.js +28 -17
- package/dist/Molecular/CustomIcons/components/Key.js +30 -19
- package/dist/Molecular/CustomIcons/components/Landers.js +26 -15
- package/dist/Molecular/CustomIcons/components/Lock.js +22 -11
- package/dist/Molecular/CustomIcons/components/Mail.js +30 -19
- package/dist/Molecular/CustomIcons/components/Mastercard.js +72 -61
- package/dist/Molecular/CustomIcons/components/Minus.js +35 -24
- package/dist/Molecular/CustomIcons/components/Offers.js +23 -12
- package/dist/Molecular/CustomIcons/components/Pause.js +35 -24
- package/dist/Molecular/CustomIcons/components/PayPal.js +49 -38
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +36 -25
- package/dist/Molecular/CustomIcons/components/Phone.js +37 -26
- package/dist/Molecular/CustomIcons/components/Play.js +35 -24
- package/dist/Molecular/CustomIcons/components/Plus.js +35 -24
- package/dist/Molecular/CustomIcons/components/Profile.js +27 -16
- package/dist/Molecular/CustomIcons/components/QRCode.js +37 -26
- package/dist/Molecular/CustomIcons/components/Rectangle.js +22 -11
- package/dist/Molecular/CustomIcons/components/Revert.js +25 -14
- package/dist/Molecular/CustomIcons/components/Star.js +21 -10
- package/dist/Molecular/CustomIcons/components/Star2.js +23 -12
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +25 -14
- package/dist/Molecular/CustomIcons/components/Trash.js +22 -11
- package/dist/Molecular/CustomIcons/components/TrashRed.js +22 -11
- package/dist/Molecular/CustomIcons/components/Triggers.js +22 -11
- package/dist/Molecular/CustomIcons/components/User.js +27 -16
- package/dist/Molecular/CustomIcons/components/Visa.js +38 -27
- package/dist/Molecular/CustomIcons/components/X.js +22 -11
- package/dist/Molecular/CustomIcons/index.js +183 -61
- package/dist/Molecular/FormElement/FormElement.js +27 -18
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +108 -86
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +34 -29
- package/dist/Molecular/InputAddress/InputAddress.js +312 -176
- package/dist/Molecular/InputPassword/InputPassword.js +39 -15
- package/dist/index.js +3 -1
- package/package.json +1 -1
|
@@ -1,154 +1,252 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
4
7
|
Object.defineProperty(exports, "__esModule", {
|
|
5
8
|
value: true
|
|
6
9
|
});
|
|
7
10
|
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
17
|
+
|
|
8
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
9
20
|
var _reactFeather = require("react-feather");
|
|
21
|
+
|
|
10
22
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
|
+
|
|
11
24
|
var _utils = require("../../Functions/utils");
|
|
12
|
-
|
|
25
|
+
|
|
26
|
+
var _useIsMobile2 = _interopRequireDefault(require("../../Functions/useIsMobile"));
|
|
27
|
+
|
|
13
28
|
var _Input = _interopRequireDefault(require("../../Atomic/FormElements/Input/Input"));
|
|
29
|
+
|
|
14
30
|
var _Hint = _interopRequireDefault(require("../../Atomic/UI/Hint/Hint"));
|
|
31
|
+
|
|
15
32
|
var _Spinner = _interopRequireDefault(require("../../Atomic/Layout/Spinner/Spinner"));
|
|
33
|
+
|
|
16
34
|
require("./InputAddress.scss");
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
35
|
+
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
+
|
|
38
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
|
+
|
|
40
|
+
var DEFAULT_HINT_MESSAGE = 'Select the correct address from the list of suggestions (must contains house number and street name)';
|
|
41
|
+
var RC = "input-address"; // ? Если равны - true
|
|
42
|
+
|
|
43
|
+
var compareValues = function compareValues(val1, val2) {
|
|
44
|
+
return (0, _typeof2.default)(val1) === (0, _typeof2.default)(val2) && ((0, _utils.getIsOnlyAnObject)(val1) ? (0, _utils.compare)(val1, val2) : val1 === val2);
|
|
25
45
|
};
|
|
26
|
-
|
|
27
|
-
|
|
46
|
+
|
|
47
|
+
var throttle = function throttle(fn, ms) {
|
|
48
|
+
var id = null;
|
|
28
49
|
return function () {
|
|
29
50
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
30
51
|
args[_key] = arguments[_key];
|
|
31
52
|
}
|
|
53
|
+
|
|
32
54
|
if (id) clearTimeout(id);
|
|
33
|
-
id = setTimeout(()
|
|
34
|
-
fn(
|
|
55
|
+
id = setTimeout(function () {
|
|
56
|
+
fn.apply(void 0, args);
|
|
35
57
|
}, ms);
|
|
36
58
|
};
|
|
59
|
+
}; // Отдает true если value валидное НЕ нулевое число
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
var getIsValidNumber = function getIsValidNumber(value) {
|
|
63
|
+
return !!value && typeof value === 'number' && !Number.isNaN(value);
|
|
37
64
|
};
|
|
38
65
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
66
|
+
var InputAddress = function InputAddress(_ref) {
|
|
67
|
+
var label = _ref.label,
|
|
68
|
+
_ref$className = _ref.className,
|
|
69
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
70
|
+
_ref$isClearable = _ref.isClearable,
|
|
71
|
+
isClearable = _ref$isClearable === void 0 ? true : _ref$isClearable,
|
|
72
|
+
_ref$isKeyboardContro = _ref.isKeyboardControlled,
|
|
73
|
+
isKeyboardControlled = _ref$isKeyboardContro === void 0 ? true : _ref$isKeyboardContro,
|
|
74
|
+
_ref$fieldKey = _ref.fieldKey,
|
|
75
|
+
fieldKey = _ref$fieldKey === void 0 ? '' : _ref$fieldKey,
|
|
76
|
+
_ref$testId = _ref.testId,
|
|
77
|
+
testId = _ref$testId === void 0 ? '' : _ref$testId,
|
|
78
|
+
_ref$throttle = _ref.throttle,
|
|
79
|
+
throttleTime = _ref$throttle === void 0 ? 500 : _ref$throttle,
|
|
80
|
+
_ref$additionalThrott = _ref.additionalThrottleTimeForListingRequest,
|
|
81
|
+
additionalThrottleTimeForListingRequest = _ref$additionalThrott === void 0 ? 0 : _ref$additionalThrott,
|
|
82
|
+
_ref$loader = _ref.loader,
|
|
83
|
+
loader = _ref$loader === void 0 ? '' : _ref$loader,
|
|
84
|
+
_ref$noItemsMessage = _ref.noItemsMessage,
|
|
85
|
+
noItemsMessage = _ref$noItemsMessage === void 0 ? '' : _ref$noItemsMessage,
|
|
86
|
+
error = _ref.error,
|
|
87
|
+
_ref$value = _ref.value,
|
|
88
|
+
value = _ref$value === void 0 ? '' : _ref$value,
|
|
89
|
+
_ref$onChange = _ref.onChange,
|
|
90
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
91
|
+
onChangeValueTransformer = _ref.onChangeValueTransformer,
|
|
92
|
+
disabled = _ref.disabled,
|
|
93
|
+
_ref$getListItems = _ref.getListItems,
|
|
94
|
+
getListItems = _ref$getListItems === void 0 ? function () {} : _ref$getListItems,
|
|
95
|
+
clarifyAddressInfo = _ref.clarifyAddressInfo,
|
|
96
|
+
_ref$noValidate = _ref.noValidate,
|
|
97
|
+
noValidate = _ref$noValidate === void 0 ? false : _ref$noValidate,
|
|
98
|
+
renderSelectedItem = _ref.renderSelectedItem,
|
|
99
|
+
renderListItem = _ref.renderListItem,
|
|
100
|
+
renderHintMessage = _ref.renderHintMessage,
|
|
101
|
+
attributesOfNativeInput = _ref.attributesOfNativeInput;
|
|
102
|
+
|
|
103
|
+
var _useIsMobile = (0, _useIsMobile2.default)(),
|
|
104
|
+
isMobile = _useIsMobile.isMobile;
|
|
105
|
+
|
|
106
|
+
var inputRef = (0, _react.useRef)(null);
|
|
107
|
+
var listRef = (0, _react.useRef)(null);
|
|
108
|
+
var listOverlayRef = (0, _react.useRef)(null);
|
|
109
|
+
var listWrapperRef = (0, _react.useRef)(null);
|
|
110
|
+
var listHeaderRef = (0, _react.useRef)(null);
|
|
111
|
+
var previousValueRef = (0, _react.useRef)(value);
|
|
112
|
+
|
|
113
|
+
var _useState = (0, _react.useState)(false),
|
|
114
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
115
|
+
isValueInited = _useState2[0],
|
|
116
|
+
setIsValueInited = _useState2[1];
|
|
117
|
+
|
|
118
|
+
var _useState3 = (0, _react.useState)(null),
|
|
119
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
120
|
+
isScrollableList = _useState4[0],
|
|
121
|
+
setIsScrollableList = _useState4[1];
|
|
122
|
+
|
|
123
|
+
var _useState5 = (0, _react.useState)(0),
|
|
124
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
125
|
+
scrollTop = _useState6[0],
|
|
126
|
+
setScrollTop = _useState6[1];
|
|
127
|
+
|
|
128
|
+
var _useState7 = (0, _react.useState)(1),
|
|
129
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
130
|
+
scrollHeight = _useState8[0],
|
|
131
|
+
setScrollHeight = _useState8[1];
|
|
132
|
+
|
|
133
|
+
var _useState9 = (0, _react.useState)(value),
|
|
134
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
135
|
+
innerValue = _useState10[0],
|
|
136
|
+
setInnerValue = _useState10[1];
|
|
137
|
+
|
|
138
|
+
var _useState11 = (0, _react.useState)(null),
|
|
139
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
140
|
+
tempInnerValue = _useState12[0],
|
|
141
|
+
setTempInnerValue = _useState12[1];
|
|
142
|
+
|
|
143
|
+
var _useState13 = (0, _react.useState)(null),
|
|
144
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
145
|
+
tempValue = _useState14[0],
|
|
146
|
+
setTempValue = _useState14[1];
|
|
147
|
+
|
|
148
|
+
var _useState15 = (0, _react.useState)([]),
|
|
149
|
+
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
150
|
+
listItems = _useState16[0],
|
|
151
|
+
setListItems = _useState16[1];
|
|
152
|
+
|
|
153
|
+
var _useState17 = (0, _react.useState)(false),
|
|
154
|
+
_useState18 = (0, _slicedToArray2.default)(_useState17, 2),
|
|
155
|
+
isLoading = _useState18[0],
|
|
156
|
+
setIsLoading = _useState18[1];
|
|
157
|
+
|
|
158
|
+
var _useState19 = (0, _react.useState)(false),
|
|
159
|
+
_useState20 = (0, _slicedToArray2.default)(_useState19, 2),
|
|
160
|
+
isListLoading = _useState20[0],
|
|
161
|
+
setIsListLoading = _useState20[1];
|
|
162
|
+
|
|
163
|
+
var _useState21 = (0, _react.useState)(null),
|
|
164
|
+
_useState22 = (0, _slicedToArray2.default)(_useState21, 2),
|
|
165
|
+
hightlightedIndex = _useState22[0],
|
|
166
|
+
setHightlightedIndex = _useState22[1];
|
|
167
|
+
|
|
168
|
+
var _useState23 = (0, _react.useState)(false),
|
|
169
|
+
_useState24 = (0, _slicedToArray2.default)(_useState23, 2),
|
|
170
|
+
isFocused = _useState24[0],
|
|
171
|
+
setIsFocused = _useState24[1];
|
|
172
|
+
|
|
173
|
+
var _useState25 = (0, _react.useState)(false),
|
|
174
|
+
_useState26 = (0, _slicedToArray2.default)(_useState25, 2),
|
|
175
|
+
isListVisible = _useState26[0],
|
|
176
|
+
setIsListVisible = _useState26[1];
|
|
177
|
+
|
|
178
|
+
var isWrongAddress = (0, _react.useMemo)(function () {
|
|
93
179
|
var _innerValue$street;
|
|
180
|
+
|
|
94
181
|
if (noValidate) return false;
|
|
95
|
-
if (innerValue === '') return false;
|
|
96
|
-
|
|
97
|
-
if (!(innerValue !== null && innerValue !== void 0 && innerValue.hasOwnProperty('streetNumber')) || !(innerValue !== null && innerValue !== void 0 && innerValue.streetNumber)) return true;
|
|
182
|
+
if (innerValue === '') return false; // eslint-disable-next-line no-prototype-builtins
|
|
183
|
+
|
|
184
|
+
if (!(innerValue !== null && innerValue !== void 0 && innerValue.hasOwnProperty('streetNumber')) || !(innerValue !== null && innerValue !== void 0 && innerValue.streetNumber)) return true; // eslint-disable-next-line no-prototype-builtins
|
|
98
185
|
|
|
99
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
100
186
|
if (!(innerValue !== null && innerValue !== void 0 && innerValue.hasOwnProperty('street')) || !(innerValue !== null && innerValue !== void 0 && (_innerValue$street = innerValue.street) !== null && _innerValue$street !== void 0 && _innerValue$street.fullName)) return true;
|
|
101
187
|
return false;
|
|
102
188
|
}, [innerValue]);
|
|
103
|
-
|
|
189
|
+
|
|
190
|
+
var setItemAsInnerValue = function setItemAsInnerValue(e, item) {
|
|
104
191
|
if (e instanceof Event) {
|
|
105
192
|
e.preventDefault();
|
|
106
193
|
e.stopPropagation();
|
|
107
194
|
}
|
|
108
|
-
|
|
195
|
+
|
|
196
|
+
setTimeout(function () {
|
|
109
197
|
setInnerValue(item);
|
|
198
|
+
|
|
110
199
|
if (isMobile) {
|
|
111
200
|
setIsListVisible(false);
|
|
112
201
|
}
|
|
113
202
|
}, 0);
|
|
114
|
-
};
|
|
203
|
+
}; // ? Базовый метод получения списка вариантов адреса
|
|
115
204
|
|
|
116
|
-
// ? Базовый метод получения списка вариантов адреса
|
|
117
|
-
const getAddressVariants = (0, _react.useMemo)(() => innerValue => {
|
|
118
|
-
var _getListItems;
|
|
119
|
-
return (_getListItems = getListItems(innerValue)) === null || _getListItems === void 0 ? void 0 : _getListItems.then(setListItems).finally(() => setIsListLoading(false));
|
|
120
|
-
}, [getListItems]);
|
|
121
205
|
|
|
122
|
-
|
|
206
|
+
var getAddressVariants = (0, _react.useMemo)(function () {
|
|
207
|
+
return function (innerValue) {
|
|
208
|
+
var _getListItems;
|
|
209
|
+
|
|
210
|
+
return (_getListItems = getListItems(innerValue)) === null || _getListItems === void 0 ? void 0 : _getListItems.then(setListItems).finally(function () {
|
|
211
|
+
return setIsListLoading(false);
|
|
212
|
+
});
|
|
213
|
+
};
|
|
214
|
+
}, [getListItems]); // ? Метод получения списка вариантов адреса с тротлингом (основным и, если нужно, дополнительным)
|
|
123
215
|
// ? Без useMemo работать НЕ будет (т.к. на каждом перерендере будет создаваться новая ф-я и будет теряться замкнутая переменная id из throttle)
|
|
124
|
-
const getAddressVariantsWithThrottling = (0, _react.useMemo)(() => {
|
|
125
|
-
const execute = getIsValidNumber(additionalThrottleTimeForListingRequest) ? throttle(getAddressVariants, additionalThrottleTimeForListingRequest) : getAddressVariants;
|
|
126
|
-
return getIsValidNumber(throttleTime) ? throttle(execute, throttleTime) : execute;
|
|
127
|
-
}, [getAddressVariants, additionalThrottleTimeForListingRequest, throttleTime]);
|
|
128
216
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
217
|
+
var getAddressVariantsWithThrottling = (0, _react.useMemo)(function () {
|
|
218
|
+
var execute = getIsValidNumber(additionalThrottleTimeForListingRequest) ? throttle(getAddressVariants, additionalThrottleTimeForListingRequest) : getAddressVariants;
|
|
219
|
+
return getIsValidNumber(throttleTime) ? throttle(execute, throttleTime) : execute;
|
|
220
|
+
}, [getAddressVariants, additionalThrottleTimeForListingRequest, throttleTime]); // ? Итоговый "получатель" списка вариантов адресов
|
|
132
221
|
|
|
133
|
-
|
|
222
|
+
var getAddressVariantsList = function getAddressVariantsList() {
|
|
223
|
+
if (!(innerValue !== null && innerValue !== void 0 && innerValue.length)) return null; // ? Вообще с учетом надпись "Loading" в списке вариантов включается в этом месте (т.е. сразу при начале набора),
|
|
134
224
|
// ? то, наверное, можно было НЕ мутить с дополнительным тротлингом )).
|
|
135
225
|
// ? Наверное, можно было увеличить время первичного тротлинга и, наверное, работало бы так же ))
|
|
136
226
|
// ? НО, раз уже сделал )) оставлю, может будет в будущем полезно )
|
|
227
|
+
|
|
137
228
|
setIsListLoading(true);
|
|
138
229
|
getAddressVariantsWithThrottling(innerValue);
|
|
139
230
|
};
|
|
140
|
-
|
|
231
|
+
|
|
232
|
+
var onClearClick = function onClearClick(e) {
|
|
141
233
|
var _inputRef$current;
|
|
234
|
+
|
|
142
235
|
e.preventDefault();
|
|
143
236
|
e.stopPropagation();
|
|
237
|
+
|
|
144
238
|
if (!isMobile) {
|
|
145
239
|
setIsListVisible(false);
|
|
146
240
|
}
|
|
241
|
+
|
|
147
242
|
setInnerValue('');
|
|
148
|
-
inputRef === null || inputRef === void 0
|
|
149
|
-
setTimeout(
|
|
243
|
+
inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
244
|
+
setTimeout(function () {
|
|
245
|
+
return setIsFocused(true);
|
|
246
|
+
}, 0);
|
|
150
247
|
};
|
|
151
|
-
|
|
248
|
+
|
|
249
|
+
var onOverlayClick = function onOverlayClick(e) {
|
|
152
250
|
if (e.target === (listOverlayRef === null || listOverlayRef === void 0 ? void 0 : listOverlayRef.current)) {
|
|
153
251
|
e.stopPropagation();
|
|
154
252
|
e.preventDefault();
|
|
@@ -157,23 +255,27 @@ const InputAddress = _ref => {
|
|
|
157
255
|
onChange(typeof innerValue === 'string' || !onChangeValueTransformer || typeof onChangeValueTransformer !== 'function' ? innerValue : onChangeValueTransformer(innerValue));
|
|
158
256
|
}
|
|
159
257
|
};
|
|
160
|
-
|
|
258
|
+
|
|
259
|
+
var onKeyDown = function onKeyDown(keyCode) {
|
|
161
260
|
if (!isListVisible || !isKeyboardControlled) return false;
|
|
261
|
+
|
|
162
262
|
if (keyCode === 13) {
|
|
163
263
|
var _inputRef$current2;
|
|
264
|
+
|
|
164
265
|
// Enter Controller
|
|
165
266
|
setItemAsInnerValue(null, listItems[hightlightedIndex]);
|
|
166
267
|
setHightlightedIndex(null);
|
|
167
|
-
inputRef === null || inputRef === void 0
|
|
268
|
+
inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.blur();
|
|
168
269
|
} else {
|
|
169
|
-
var _listRef$current, _listRef$current2, _newHightlightedEleme;
|
|
170
|
-
let newHightlightedIndex = null;
|
|
171
|
-
const listItemsElements = document.getElementsByClassName('input-address__list--item');
|
|
172
|
-
const listHeight = listRef === null || listRef === void 0 || (_listRef$current = listRef.current) === null || _listRef$current === void 0 || (_listRef$current = _listRef$current.getBoundingClientRect()) === null || _listRef$current === void 0 ? void 0 : _listRef$current.height;
|
|
173
|
-
const listScrollTop = (listRef === null || listRef === void 0 || (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : _listRef$current2.scrollTop) || 0;
|
|
174
|
-
const lastItemIndex = parseInt(listItems === null || listItems === void 0 ? void 0 : listItems.length) - 1;
|
|
270
|
+
var _listRef$current, _listRef$current$getB, _listRef$current2, _newHightlightedEleme;
|
|
175
271
|
|
|
272
|
+
var newHightlightedIndex = null;
|
|
273
|
+
var listItemsElements = document.getElementsByClassName('input-address__list--item');
|
|
274
|
+
var listHeight = listRef === null || listRef === void 0 ? void 0 : (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : (_listRef$current$getB = _listRef$current.getBoundingClientRect()) === null || _listRef$current$getB === void 0 ? void 0 : _listRef$current$getB.height;
|
|
275
|
+
var listScrollTop = (listRef === null || listRef === void 0 ? void 0 : (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : _listRef$current2.scrollTop) || 0;
|
|
276
|
+
var lastItemIndex = parseInt(listItems === null || listItems === void 0 ? void 0 : listItems.length) - 1;
|
|
176
277
|
/** Arrows Controllers **/
|
|
278
|
+
|
|
177
279
|
if (keyCode === 40) {
|
|
178
280
|
// Down Key Controller
|
|
179
281
|
if (hightlightedIndex === null || hightlightedIndex === lastItemIndex) {
|
|
@@ -188,98 +290,110 @@ const InputAddress = _ref => {
|
|
|
188
290
|
} else if (hightlightedIndex - 1 >= 0) {
|
|
189
291
|
newHightlightedIndex = hightlightedIndex - 1;
|
|
190
292
|
}
|
|
191
|
-
}
|
|
293
|
+
} // Scroll to Element
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
var newHightlightedElement = listItemsElements[newHightlightedIndex];
|
|
297
|
+
var newHightlightedElementHeight = newHightlightedElement === null || newHightlightedElement === void 0 ? void 0 : (_newHightlightedEleme = newHightlightedElement.getBoundingClientRect()) === null || _newHightlightedEleme === void 0 ? void 0 : _newHightlightedEleme.height;
|
|
298
|
+
var newHightlightedElementTopInList = newHightlightedElement === null || newHightlightedElement === void 0 ? void 0 : newHightlightedElement.offsetTop;
|
|
192
299
|
|
|
193
|
-
// Scroll to Element
|
|
194
|
-
const newHightlightedElement = listItemsElements[newHightlightedIndex];
|
|
195
|
-
const newHightlightedElementHeight = newHightlightedElement === null || newHightlightedElement === void 0 || (_newHightlightedEleme = newHightlightedElement.getBoundingClientRect()) === null || _newHightlightedEleme === void 0 ? void 0 : _newHightlightedEleme.height;
|
|
196
|
-
const newHightlightedElementTopInList = newHightlightedElement === null || newHightlightedElement === void 0 ? void 0 : newHightlightedElement.offsetTop;
|
|
197
300
|
if (newHightlightedElementTopInList + newHightlightedElementHeight > listScrollTop + listHeight) {
|
|
198
301
|
if (Math.abs(newHightlightedElementTopInList + newHightlightedElementHeight - (listScrollTop + listHeight)) <= newHightlightedElementHeight) {
|
|
199
302
|
var _listRef$current3;
|
|
200
|
-
|
|
303
|
+
|
|
304
|
+
listRef === null || listRef === void 0 ? void 0 : (_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 ? void 0 : _listRef$current3.scrollTo(0, listScrollTop + newHightlightedElementHeight);
|
|
201
305
|
} else {
|
|
202
306
|
var _listRef$current4;
|
|
203
|
-
|
|
307
|
+
|
|
308
|
+
listRef === null || listRef === void 0 ? void 0 : (_listRef$current4 = listRef.current) === null || _listRef$current4 === void 0 ? void 0 : _listRef$current4.scrollTo(0, newHightlightedElementTopInList);
|
|
204
309
|
}
|
|
205
310
|
} else if (newHightlightedElementTopInList < listScrollTop) {
|
|
206
311
|
if (Math.abs(newHightlightedElementTopInList - listScrollTop) < newHightlightedElementHeight) {
|
|
207
312
|
var _listRef$current5;
|
|
208
|
-
|
|
313
|
+
|
|
314
|
+
listRef === null || listRef === void 0 ? void 0 : (_listRef$current5 = listRef.current) === null || _listRef$current5 === void 0 ? void 0 : _listRef$current5.scrollTo(0, listScrollTop - newHightlightedElementHeight);
|
|
209
315
|
} else {
|
|
210
316
|
var _listRef$current6;
|
|
211
|
-
|
|
317
|
+
|
|
318
|
+
listRef === null || listRef === void 0 ? void 0 : (_listRef$current6 = listRef.current) === null || _listRef$current6 === void 0 ? void 0 : _listRef$current6.scrollTo(0, newHightlightedElementTopInList);
|
|
212
319
|
}
|
|
213
320
|
}
|
|
321
|
+
|
|
214
322
|
if (!isMobile) setHightlightedIndex(newHightlightedIndex);
|
|
215
323
|
}
|
|
216
324
|
};
|
|
217
|
-
|
|
325
|
+
|
|
326
|
+
var getHintMessage = function getHintMessage() {
|
|
218
327
|
if (!renderHintMessage || typeof renderHintMessage !== 'function') return DEFAULT_HINT_MESSAGE;
|
|
219
328
|
return renderHintMessage(innerValue);
|
|
220
329
|
};
|
|
221
|
-
|
|
330
|
+
|
|
331
|
+
var getSelectedItemLabel = function getSelectedItemLabel() {
|
|
222
332
|
var _value$street;
|
|
223
|
-
|
|
333
|
+
|
|
334
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : innerValue;
|
|
224
335
|
if (!value) return '';
|
|
225
336
|
if (typeof value === 'string') return value;
|
|
226
337
|
if (typeof renderSelectedItem === 'function') renderSelectedItem(value);
|
|
227
|
-
|
|
338
|
+
var label = "".concat((value === null || value === void 0 ? void 0 : value.streetNumber) || '', " ").concat((value === null || value === void 0 ? void 0 : (_value$street = value.street) === null || _value$street === void 0 ? void 0 : _value$street.fullName) || '').trim();
|
|
228
339
|
return !label && isLoading ? previousValueRef.current : label;
|
|
229
340
|
};
|
|
230
|
-
|
|
341
|
+
|
|
342
|
+
var getListItemLabel = function getListItemLabel(item) {
|
|
231
343
|
if (typeof item === 'string') return item;
|
|
232
344
|
if (!renderListItem || typeof renderListItem !== 'function') return item === null || item === void 0 ? void 0 : item.fullPrediction;
|
|
233
345
|
return renderListItem(item);
|
|
234
346
|
};
|
|
235
|
-
|
|
347
|
+
|
|
348
|
+
var setListHeight = function setListHeight() {
|
|
236
349
|
if (listWrapperRef !== null && listWrapperRef !== void 0 && listWrapperRef.current && listHeaderRef !== null && listHeaderRef !== void 0 && listHeaderRef.current && listRef.current) {
|
|
237
|
-
var _listWrapperRef$curre, _listHeaderRef$curren;
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
350
|
+
var _listWrapperRef$curre, _listWrapperRef$curre2, _listHeaderRef$curren, _listHeaderRef$curren2;
|
|
351
|
+
|
|
352
|
+
var listWrapperHeight = listWrapperRef === null || listWrapperRef === void 0 ? void 0 : (_listWrapperRef$curre = listWrapperRef.current) === null || _listWrapperRef$curre === void 0 ? void 0 : (_listWrapperRef$curre2 = _listWrapperRef$curre.getBoundingClientRect()) === null || _listWrapperRef$curre2 === void 0 ? void 0 : _listWrapperRef$curre2.height;
|
|
353
|
+
var listWrapperStyles = getComputedStyle(listWrapperRef === null || listWrapperRef === void 0 ? void 0 : listWrapperRef.current);
|
|
354
|
+
var listHeaderHeight = listHeaderRef === null || listHeaderRef === void 0 ? void 0 : (_listHeaderRef$curren = listHeaderRef.current) === null || _listHeaderRef$curren === void 0 ? void 0 : (_listHeaderRef$curren2 = _listHeaderRef$curren.getBoundingClientRect()) === null || _listHeaderRef$curren2 === void 0 ? void 0 : _listHeaderRef$curren2.height;
|
|
355
|
+
var listHeight = listWrapperHeight - listHeaderHeight - parseInt(listWrapperStyles.paddingBottom);
|
|
242
356
|
listRef.current.style.maxHeight = "".concat(listHeight, "px");
|
|
243
357
|
}
|
|
244
358
|
};
|
|
245
|
-
|
|
359
|
+
|
|
360
|
+
var resetListHeight = function resetListHeight() {
|
|
246
361
|
if (listRef.current) {
|
|
247
362
|
listRef.current.style.maxHeight = "initial";
|
|
248
363
|
}
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
// ? Основной блок работы со значениями адреса
|
|
364
|
+
}; // ? Основной блок работы со значениями адреса
|
|
252
365
|
// ? Не меняйте вызовы setInnerValue и onChange не разобравшись в логике вызовов
|
|
253
|
-
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
(0, _react.useEffect)(function () {
|
|
254
369
|
// ? Исключение инициализации - равны только при первом рендере компонента,
|
|
255
370
|
// ? т.к. рефка и стейт инициализируются верхним value
|
|
256
371
|
if (!compareValues(innerValue, previousValueRef.current)) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
// ? innerValue меняется либо от ручного ввода, либо от выбора из списка
|
|
372
|
+
var isObject = (0, _utils.getIsOnlyAnObject)(innerValue); // ? innerValue меняется либо от ручного ввода, либо от выбора из списка
|
|
260
373
|
// ? Полная информация или нет - напрямую зависит от ответа getListItems
|
|
261
|
-
const isFullInfo = isObject && 'streetNumber' in innerValue && 'street' in innerValue && 'city' in innerValue && 'state' in innerValue && 'country' in innerValue && 'zipCode' in innerValue;
|
|
262
374
|
|
|
263
|
-
// ? Для старого эндпоинта возвращается список с полной информацией, поэтому на проектах ничего не поменяется,
|
|
375
|
+
var isFullInfo = isObject && 'streetNumber' in innerValue && 'street' in innerValue && 'city' in innerValue && 'state' in innerValue && 'country' in innerValue && 'zipCode' in innerValue; // ? Для старого эндпоинта возвращается список с полной информацией, поэтому на проектах ничего не поменяется,
|
|
264
376
|
// ? если не менять запросник (getListItems), все будет проходить по этой if-ке или по 3-й (для строчных значений)
|
|
377
|
+
|
|
265
378
|
if (isFullInfo) {
|
|
266
379
|
onChange(innerValue);
|
|
267
380
|
setIsLoading(false);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
// ? Неполная информация может быть только в том случае, когда метод getListItems использует уже новый эндпоинт гугл-апи.
|
|
381
|
+
} // ? Неполная информация может быть только в том случае, когда метод getListItems использует уже новый эндпоинт гугл-апи.
|
|
271
382
|
// ? Предполагается, что при этом в компонент будет прокинута ф-я "уточнятель" (clarifyAddressInfo)
|
|
383
|
+
|
|
384
|
+
|
|
272
385
|
if (isObject && !isFullInfo) {
|
|
273
386
|
if (typeof clarifyAddressInfo === 'function') {
|
|
274
387
|
var _clarifyAddressInfo, _clarifyAddressInfo$t;
|
|
275
|
-
|
|
276
|
-
// ? Предполагается, что clarifyAddressInfo - асинхронная ф-я, запросник уточнения опции
|
|
388
|
+
|
|
389
|
+
setIsLoading(true); // ? Предполагается, что clarifyAddressInfo - асинхронная ф-я, запросник уточнения опции
|
|
277
390
|
// ? Никаких await-ов НЕ нужно (тем более что в useEffect и нельзя для нового React),
|
|
278
391
|
// ? промис "выплюнется в пустоту", но НЕ будет отчищен до резолва, а useEffect (и итерация рендера в целом) при этом будет закончен(а)
|
|
279
|
-
|
|
392
|
+
|
|
393
|
+
(_clarifyAddressInfo = clarifyAddressInfo(innerValue)) === null || _clarifyAddressInfo === void 0 ? void 0 : (_clarifyAddressInfo$t = _clarifyAddressInfo.then) === null || _clarifyAddressInfo$t === void 0 ? void 0 : _clarifyAddressInfo$t.call(_clarifyAddressInfo, function (res) {
|
|
280
394
|
if (res) setInnerValue(res);else {
|
|
281
395
|
setInnerValue(previousValueRef.current);
|
|
282
|
-
setTimeout(()
|
|
396
|
+
setTimeout(function () {
|
|
283
397
|
inputRef.current.focus();
|
|
284
398
|
inputRef.current.setSelectionRange(previousValueRef.current.length, previousValueRef.current.length);
|
|
285
399
|
}, 0);
|
|
@@ -287,49 +401,49 @@ const InputAddress = _ref => {
|
|
|
287
401
|
setIsLoading(false);
|
|
288
402
|
return res;
|
|
289
403
|
});
|
|
290
|
-
}
|
|
291
|
-
// ! Если сверху поменяли эндпоинт и он выдает "облегченный листинг" (айтемы с неполной инфой),
|
|
404
|
+
} // ! Если сверху поменяли эндпоинт и он выдает "облегченный листинг" (айтемы с неполной инфой),
|
|
292
405
|
// ! и НЕ пробросили clarifyAddressInfo, то на этом кейсе велью инпута будет просто зануляться
|
|
293
406
|
// ! (getSelectedItemLabel вернет пустую строку если вкинуть innerValue без всей инфы)
|
|
294
407
|
else setInnerValue(getSelectedItemLabel(innerValue));
|
|
295
|
-
}
|
|
408
|
+
} // ? Кейс для строчных значений
|
|
409
|
+
|
|
296
410
|
|
|
297
|
-
// ? Кейс для строчных значений
|
|
298
411
|
if (!isObject) {
|
|
299
412
|
// ? Вызываем верхний onChange если innerValue есть или если нету, но это не после логики уточнения
|
|
300
|
-
if (innerValue || !isLoading) onChange(innerValue);
|
|
301
|
-
|
|
302
|
-
if (innerValue && !isListVisible) setIsListVisible(true);
|
|
303
|
-
|
|
413
|
+
if (innerValue || !isLoading) onChange(innerValue); // ? Если innerValue есть и еще не открыт листинг - открываем
|
|
414
|
+
|
|
415
|
+
if (innerValue && !isListVisible) setIsListVisible(true); // ? Если инпут сфокусирован и значение есть - запрашиваем список вариантов
|
|
416
|
+
|
|
304
417
|
if (isFocused && !!innerValue) getAddressVariantsList();
|
|
305
418
|
}
|
|
306
419
|
}
|
|
307
420
|
}, [innerValue]);
|
|
308
|
-
(0, _react.useEffect)(()
|
|
421
|
+
(0, _react.useEffect)(function () {
|
|
309
422
|
if (!isFocused && !isMobile) {
|
|
310
423
|
setIsListVisible(false);
|
|
311
424
|
setHightlightedIndex(null);
|
|
312
425
|
}
|
|
313
426
|
}, [isFocused]);
|
|
314
|
-
(0, _react.useEffect)(()
|
|
427
|
+
(0, _react.useEffect)(function () {
|
|
315
428
|
if (!isListVisible) {
|
|
316
429
|
setListItems([]);
|
|
317
430
|
resetListHeight();
|
|
318
431
|
}
|
|
432
|
+
|
|
319
433
|
if (isMobile && isListVisible) {
|
|
320
434
|
setTempInnerValue(innerValue);
|
|
321
435
|
setListHeight();
|
|
322
436
|
}
|
|
323
437
|
}, [isListVisible]);
|
|
324
|
-
(0, _react.useEffect)(()
|
|
438
|
+
(0, _react.useEffect)(function () {
|
|
325
439
|
// ? учет изменения value сверху (верхние переназначения велью)
|
|
326
|
-
if (!compareValues(value, innerValue)) setInnerValue(value);
|
|
440
|
+
if (!compareValues(value, innerValue)) setInnerValue(value); // ? useEffect должен быть последним, т.к. рефка меняется в рамках текущей итерации
|
|
327
441
|
|
|
328
|
-
// ? useEffect должен быть последним, т.к. рефка меняется в рамках текущей итерации
|
|
329
442
|
previousValueRef.current = value;
|
|
330
443
|
}, [value]);
|
|
331
|
-
|
|
332
|
-
|
|
444
|
+
|
|
445
|
+
var renderSearchableInput = function renderSearchableInput() {
|
|
446
|
+
var inputValue = getSelectedItemLabel();
|
|
333
447
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
334
448
|
className: (0, _classnames.default)('input-address__input-wrapper')
|
|
335
449
|
}, /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
@@ -338,10 +452,12 @@ const InputAddress = _ref => {
|
|
|
338
452
|
className: (0, _classnames.default)('input-address__input', className),
|
|
339
453
|
value: inputValue,
|
|
340
454
|
onChange: setInnerValue,
|
|
341
|
-
onFocus: e
|
|
455
|
+
onFocus: function onFocus(e) {
|
|
342
456
|
setIsFocused(true);
|
|
343
457
|
},
|
|
344
|
-
onBlur: ()
|
|
458
|
+
onBlur: function onBlur() {
|
|
459
|
+
return setIsFocused(false);
|
|
460
|
+
},
|
|
345
461
|
onKeyDown: onKeyDown,
|
|
346
462
|
attributesOfNativeInput: attributesOfNativeInput
|
|
347
463
|
}), isWrongAddress && /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -361,8 +477,9 @@ const InputAddress = _ref => {
|
|
|
361
477
|
onClick: onClearClick
|
|
362
478
|
})));
|
|
363
479
|
};
|
|
364
|
-
|
|
365
|
-
|
|
480
|
+
|
|
481
|
+
var renderInput = function renderInput() {
|
|
482
|
+
var inputValue = getSelectedItemLabel(isListVisible ? tempInnerValue : innerValue);
|
|
366
483
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
367
484
|
className: (0, _classnames.default)('input-address__input-wrapper')
|
|
368
485
|
}, /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
@@ -370,45 +487,56 @@ const InputAddress = _ref => {
|
|
|
370
487
|
className: (0, _classnames.default)('input-address__input', className),
|
|
371
488
|
value: inputValue,
|
|
372
489
|
onChange: setInnerValue,
|
|
373
|
-
onFocus: e
|
|
490
|
+
onFocus: function onFocus(e) {
|
|
374
491
|
var _e$target;
|
|
492
|
+
|
|
375
493
|
setIsListVisible(true);
|
|
376
|
-
e === null || e === void 0
|
|
377
|
-
setTimeout(()
|
|
494
|
+
e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.blur();
|
|
495
|
+
setTimeout(function () {
|
|
378
496
|
var _inputRef$current3;
|
|
379
|
-
|
|
497
|
+
|
|
498
|
+
return inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.focus();
|
|
380
499
|
}, 200);
|
|
381
500
|
}
|
|
382
501
|
}));
|
|
383
502
|
};
|
|
384
|
-
|
|
503
|
+
|
|
504
|
+
var renderLoader = function renderLoader() {
|
|
385
505
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
386
506
|
className: "input-address__list--loader"
|
|
387
507
|
}, loader || 'Loading...');
|
|
388
508
|
};
|
|
389
|
-
|
|
390
|
-
|
|
509
|
+
|
|
510
|
+
var renderList = function renderList() {
|
|
511
|
+
var renderListItem = function renderListItem(item, i) {
|
|
391
512
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
392
513
|
key: "input-address__list-item".concat(i),
|
|
393
514
|
className: (0, _classnames.default)('input-address__list--item', {
|
|
394
515
|
'input-address__list--item-hightlighted': i === hightlightedIndex
|
|
395
516
|
}),
|
|
396
|
-
onMouseDown:
|
|
517
|
+
onMouseDown: function onMouseDown(e) {
|
|
518
|
+
return setItemAsInnerValue(e, item);
|
|
519
|
+
}
|
|
397
520
|
}, getListItemLabel(item));
|
|
398
521
|
};
|
|
399
|
-
|
|
522
|
+
|
|
523
|
+
var renderListItemCustom = function renderListItemCustom() {
|
|
400
524
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
401
525
|
key: "input-address__list-item--custom",
|
|
402
526
|
className: (0, _classnames.default)('input-address__list--item', 'input-address__list--item-custom'),
|
|
403
|
-
onMouseDown:
|
|
527
|
+
onMouseDown: function onMouseDown(e) {
|
|
528
|
+
return setItemAsInnerValue(e, getSelectedItemLabel());
|
|
529
|
+
}
|
|
404
530
|
}, getSelectedItemLabel(), /*#__PURE__*/_react.default.createElement(_reactFeather.AlertTriangle, null), /*#__PURE__*/_react.default.createElement("span", null, "Choose this only if your address is not listed below"));
|
|
405
531
|
};
|
|
406
|
-
|
|
532
|
+
|
|
533
|
+
var renderNoItems = function renderNoItems() {
|
|
407
534
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
408
535
|
className: "input-address__list--no-items"
|
|
409
536
|
}, isMobile && !(innerValue !== null && innerValue !== void 0 && innerValue.length) ? 'Please begin entering your address' : noItemsMessage || 'No Items');
|
|
410
537
|
};
|
|
411
|
-
|
|
538
|
+
|
|
539
|
+
var renderListDesktop = function renderListDesktop() {
|
|
412
540
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
413
541
|
className: "input-address__list-wrapper",
|
|
414
542
|
ref: listWrapperRef
|
|
@@ -417,7 +545,10 @@ const InputAddress = _ref => {
|
|
|
417
545
|
ref: listRef
|
|
418
546
|
}, isListLoading ? renderLoader() : listItems !== null && listItems !== void 0 && listItems.length ? listItems === null || listItems === void 0 ? void 0 : listItems.map(renderListItem) : renderNoItems()));
|
|
419
547
|
};
|
|
420
|
-
|
|
548
|
+
|
|
549
|
+
var renderListMobile = function renderListMobile() {
|
|
550
|
+
var _cn;
|
|
551
|
+
|
|
421
552
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
422
553
|
className: "input-address__list-overlay",
|
|
423
554
|
ref: listOverlayRef,
|
|
@@ -427,19 +558,20 @@ const InputAddress = _ref => {
|
|
|
427
558
|
ref: listWrapperRef
|
|
428
559
|
}, isMobile && /*#__PURE__*/_react.default.createElement("div", {
|
|
429
560
|
ref: listHeaderRef,
|
|
430
|
-
className: (0, _classnames.default)("".concat(RC, "__list-header"), {
|
|
431
|
-
["".concat(RC, "__list-header-with-shadow")]: isScrollableList && isMobile,
|
|
432
|
-
["".concat(RC, "__list-header-with-shadow-hidden")]: scrollTop === 0
|
|
433
|
-
})
|
|
561
|
+
className: (0, _classnames.default)("".concat(RC, "__list-header"), (_cn = {}, (0, _defineProperty2.default)(_cn, "".concat(RC, "__list-header-with-shadow"), isScrollableList && isMobile), (0, _defineProperty2.default)(_cn, "".concat(RC, "__list-header-with-shadow-hidden"), scrollTop === 0), _cn))
|
|
434
562
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
435
563
|
className: (0, _classnames.default)("".concat(RC, "__list-header-row"))
|
|
436
564
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
437
565
|
className: (0, _classnames.default)("".concat(RC, "__list-label"))
|
|
438
566
|
}, label || 'Address'), /*#__PURE__*/_react.default.createElement("div", {
|
|
439
567
|
className: (0, _classnames.default)("".concat(RC, "__list-close-icon")),
|
|
440
|
-
onClick: ()
|
|
568
|
+
onClick: function onClick() {
|
|
569
|
+
return setIsListVisible(false);
|
|
570
|
+
}
|
|
441
571
|
}, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
|
|
442
|
-
onClick: ()
|
|
572
|
+
onClick: function onClick() {
|
|
573
|
+
return setIsListVisible(false);
|
|
574
|
+
}
|
|
443
575
|
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
444
576
|
className: (0, _classnames.default)("".concat(RC, "__list-header-row"))
|
|
445
577
|
}, renderSearchableInput())), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -447,8 +579,10 @@ const InputAddress = _ref => {
|
|
|
447
579
|
ref: listRef
|
|
448
580
|
}, isListLoading ? renderLoader() : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, getSelectedItemLabel() && renderListItemCustom(), listItems === null || listItems === void 0 ? void 0 : listItems.map(renderListItem), !(listItems !== null && listItems !== void 0 && listItems.length) && !getSelectedItemLabel() && renderNoItems()))));
|
|
449
581
|
};
|
|
582
|
+
|
|
450
583
|
return isMobile ? renderListMobile() : renderListDesktop();
|
|
451
584
|
};
|
|
585
|
+
|
|
452
586
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
453
587
|
className: (0, _classnames.default)('input-address', {
|
|
454
588
|
'input-address--error': error || isWrongAddress && !isFocused
|
|
@@ -457,4 +591,6 @@ const InputAddress = _ref => {
|
|
|
457
591
|
size: "small"
|
|
458
592
|
}), isMobile ? renderInput() : renderSearchableInput(), isListVisible && renderList());
|
|
459
593
|
};
|
|
460
|
-
|
|
594
|
+
|
|
595
|
+
var _default = InputAddress;
|
|
596
|
+
exports.default = _default;
|