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