intelicoreact 1.4.81 → 1.4.83
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 +13 -13
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +12 -13
- package/dist/Atomic/FormElements/Calendar/Calendar.js +103 -68
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +26 -26
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +27 -23
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +201 -114
- package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +69 -46
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +301 -230
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +2 -4
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +201 -145
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +54 -41
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +112 -45
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +63 -34
- package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +153 -81
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +59 -57
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +98 -66
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +48 -27
- package/dist/Atomic/FormElements/Input/Input.js +209 -148
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +77 -50
- package/dist/Atomic/FormElements/InputColor/InputColor.js +28 -23
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +53 -38
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +139 -106
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +38 -31
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +230 -135
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +122 -85
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +8 -10
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +159 -72
- package/dist/Atomic/FormElements/InputLink/InputLink.js +39 -30
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +8 -8
- package/dist/Atomic/FormElements/InputMask/InputMask.js +800 -521
- package/dist/Atomic/FormElements/InputMask/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask/functions.js +15 -15
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +294 -234
- package/dist/Atomic/FormElements/InputMask2/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask2/functions.js +15 -15
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +332 -265
- package/dist/Atomic/FormElements/InputMask3/config.js +1 -1
- package/dist/Atomic/FormElements/InputMask3/functions.js +15 -15
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +101 -53
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +99 -64
- package/dist/Atomic/FormElements/Label/Label.js +15 -13
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +284 -190
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +34 -24
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +170 -117
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +50 -28
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +29 -18
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +24 -22
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +31 -19
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +83 -56
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +75 -49
- package/dist/Atomic/FormElements/RangeList/RangeList.js +129 -87
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +18 -22
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +250 -143
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +477 -367
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +15 -14
- package/dist/Atomic/FormElements/Switcher/Switcher.js +20 -24
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +30 -24
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +23 -20
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +40 -32
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +31 -25
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +22 -22
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +98 -52
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +34 -22
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +81 -47
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +525 -415
- package/dist/Atomic/FormElements/Text/Text.js +39 -39
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +23 -21
- package/dist/Atomic/FormElements/Textarea/Textarea.js +33 -28
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +98 -67
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +24 -22
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +57 -34
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +94 -56
- package/dist/Atomic/FormElements/UserContacts/partial/defaultIcons.js +102 -74
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +69 -50
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +33 -30
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +50 -38
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +1 -1
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +59 -47
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +1 -1
- package/dist/Atomic/Layout/Header/Header.js +37 -22
- package/dist/Atomic/Layout/MainMenu/MainMenu.js +59 -34
- package/dist/Atomic/Layout/Spinner/Spinner.js +6 -7
- package/dist/Atomic/UI/Accordion/Accordion.js +31 -17
- package/dist/Atomic/UI/Accordion/AccordionItem.js +41 -30
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +81 -50
- package/dist/Atomic/UI/AccordionText/AccordionText.js +39 -20
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +74 -46
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +37 -21
- package/dist/Atomic/UI/Alert/Alert.js +36 -23
- package/dist/Atomic/UI/Arrow/Arrow.js +21 -14
- package/dist/Atomic/UI/Box/Box.js +12 -11
- package/dist/Atomic/UI/Button/Button.js +26 -26
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +21 -21
- package/dist/Atomic/UI/Chart/Chart.js +60 -44
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +13 -11
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +10 -12
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +82 -60
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +124 -116
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +30 -18
- package/dist/Atomic/UI/Chart/partial/utils.js +30 -16
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +31 -21
- package/dist/Atomic/UI/DateTime/DateTime.js +29 -25
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +23 -11
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +12 -4
- package/dist/Atomic/UI/DoubleString/DoubleString.js +53 -36
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +55 -14
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +114 -54
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +88 -53
- package/dist/Atomic/UI/Hint/Hint.js +87 -58
- package/dist/Atomic/UI/Hint/partials/_utils.js +10 -10
- package/dist/Atomic/UI/Modal/Modal.js +159 -144
- package/dist/Atomic/UI/Modal/ModalHOC.js +17 -14
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +5 -6
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +13 -16
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +118 -73
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +48 -33
- package/dist/Atomic/UI/NavLine/NavLine.js +166 -104
- package/dist/Atomic/UI/PageTitle/PageTitle.js +8 -12
- package/dist/Atomic/UI/PieChart/PieChart.js +11 -10
- package/dist/Atomic/UI/Price/Price.js +5 -7
- package/dist/Atomic/UI/PriceRange/PriceRange.js +4 -6
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +42 -27
- package/dist/Atomic/UI/Status/Status.js +22 -18
- package/dist/Atomic/UI/Table/Partials/TdCell.js +47 -28
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +5 -6
- package/dist/Atomic/UI/Table/Partials/TdRow.js +53 -29
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +28 -15
- package/dist/Atomic/UI/Table/Table.js +36 -27
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +32 -18
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +10 -8
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +2 -4
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +26 -21
- package/dist/Atomic/UI/Tag/Tag.js +72 -52
- package/dist/Atomic/UI/TagList/TagList.js +102 -65
- package/dist/Atomic/UI/UserBox/UserBox.js +13 -13
- package/dist/Atomic/UI/WizardStepper/constructor.js +6 -6
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +16 -20
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +25 -27
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +27 -22
- package/dist/Atomic/UI/WizardStepper/ui/icons.js +41 -39
- package/dist/Classes/AbortableFetch.js +393 -311
- package/dist/Classes/AnimatedHandler.js +53 -45
- package/dist/Classes/RESTAPI/index.js +431 -152
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +400 -320
- package/dist/Classes/RESTAPI/partials/ApiBase.js +59 -24
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +338 -76
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +378 -143
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +375 -159
- package/dist/Classes/RESTAPI/partials/Utils.js +128 -87
- package/dist/Classes/RESTAPI/partials/_utils.js +388 -116
- package/dist/Constants/index.constants.js +7 -7
- package/dist/Functions/Portal.js +19 -11
- package/dist/Functions/customEventListener.js +7 -5
- package/dist/Functions/fieldValueFormatters.js +131 -109
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +128 -69
- package/dist/Functions/locale/createTranslator.js +21 -11
- package/dist/Functions/operations.js +27 -23
- package/dist/Functions/presets/inputMaskPreset.js +176 -0
- package/dist/Functions/presets/inputMaskPresets.js +17 -17
- package/dist/Functions/presets/inputPresets.js +15 -15
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +3 -3
- package/dist/Functions/schemas.js +7 -5
- package/dist/Functions/useBodyScrollLock.js +3 -3
- package/dist/Functions/useClickOutside.js +3 -3
- package/dist/Functions/useDebounce.js +20 -11
- package/dist/Functions/useFieldFocus.js +51 -38
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +46 -36
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +78 -68
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +81 -54
- package/dist/Functions/useFormTools/functions/General.js +80 -71
- package/dist/Functions/useFormTools/functions/RenderFields.js +63 -45
- package/dist/Functions/useFormTools/functions/usePrevious.js +2 -2
- package/dist/Functions/useFormTools/index.js +467 -314
- package/dist/Functions/useInputHighlightError.js +42 -26
- package/dist/Functions/useIsMobile.js +29 -11
- package/dist/Functions/useKeyPress/useHandleKeyPress.js +8 -9
- package/dist/Functions/useKeyPress/useKeyPress.js +26 -17
- package/dist/Functions/useLocalStorage.js +13 -6
- package/dist/Functions/useLocationParams.js +24 -14
- package/dist/Functions/useMediaQuery.js +18 -7
- package/dist/Functions/useMetaInfo.js +40 -16
- package/dist/Functions/useMouseUpOutside.js +2 -2
- package/dist/Functions/useOnlineStatus.js +17 -6
- package/dist/Functions/usePasswordChecker.js +61 -42
- package/dist/Functions/usePrevious.js +2 -2
- package/dist/Functions/useResize.js +24 -12
- package/dist/Functions/useScrollTo.js +13 -4
- package/dist/Functions/useToggle.js +25 -9
- package/dist/Functions/utils.js +272 -147
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +27 -23
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +27 -23
- package/dist/Molecular/CustomIcons/components/AppStore.js +31 -27
- package/dist/Molecular/CustomIcons/components/Arrow.js +37 -33
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +19 -15
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +22 -18
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +22 -18
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +19 -15
- package/dist/Molecular/CustomIcons/components/Bell.js +17 -13
- package/dist/Molecular/CustomIcons/components/Button.js +17 -13
- package/dist/Molecular/CustomIcons/components/Campaigns.js +18 -14
- package/dist/Molecular/CustomIcons/components/Check.js +18 -14
- package/dist/Molecular/CustomIcons/components/Check2.js +17 -13
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +17 -13
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +17 -13
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +17 -13
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +17 -13
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +17 -13
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +32 -28
- package/dist/Molecular/CustomIcons/components/Close.js +19 -15
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +44 -40
- package/dist/Molecular/CustomIcons/components/Delete.js +18 -14
- package/dist/Molecular/CustomIcons/components/Edit.js +17 -13
- package/dist/Molecular/CustomIcons/components/Email.js +35 -31
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +25 -21
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +33 -29
- package/dist/Molecular/CustomIcons/components/Flows.js +17 -13
- package/dist/Molecular/CustomIcons/components/Gift.js +22 -18
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +31 -27
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +31 -27
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +20 -16
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +21 -17
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +20 -16
- package/dist/Molecular/CustomIcons/components/Home.js +20 -16
- package/dist/Molecular/CustomIcons/components/Home2.js +23 -19
- package/dist/Molecular/CustomIcons/components/Key.js +25 -21
- package/dist/Molecular/CustomIcons/components/Landers.js +21 -17
- package/dist/Molecular/CustomIcons/components/Lock.js +17 -13
- package/dist/Molecular/CustomIcons/components/Mail.js +25 -21
- package/dist/Molecular/CustomIcons/components/Mastercard.js +65 -61
- package/dist/Molecular/CustomIcons/components/Minus.js +30 -26
- package/dist/Molecular/CustomIcons/components/Offers.js +18 -14
- package/dist/Molecular/CustomIcons/components/Pause.js +30 -26
- package/dist/Molecular/CustomIcons/components/PayPal.js +44 -40
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +31 -27
- package/dist/Molecular/CustomIcons/components/Phone.js +32 -28
- package/dist/Molecular/CustomIcons/components/Play.js +30 -26
- package/dist/Molecular/CustomIcons/components/Plus.js +30 -26
- package/dist/Molecular/CustomIcons/components/Profile.js +22 -18
- package/dist/Molecular/CustomIcons/components/QRCode.js +32 -28
- package/dist/Molecular/CustomIcons/components/Rectangle.js +17 -13
- package/dist/Molecular/CustomIcons/components/Revert.js +20 -16
- package/dist/Molecular/CustomIcons/components/Star.js +14 -10
- package/dist/Molecular/CustomIcons/components/Star2.js +18 -14
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +20 -16
- package/dist/Molecular/CustomIcons/components/Trash.js +17 -13
- package/dist/Molecular/CustomIcons/components/TrashRed.js +17 -13
- package/dist/Molecular/CustomIcons/components/Triggers.js +17 -13
- package/dist/Molecular/CustomIcons/components/User.js +22 -18
- package/dist/Molecular/CustomIcons/components/Visa.js +33 -29
- package/dist/Molecular/CustomIcons/components/X.js +17 -13
- package/dist/Molecular/CustomIcons/index.js +61 -61
- package/dist/Molecular/FormElement/FormElement.js +17 -19
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +93 -73
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +27 -28
- package/dist/Molecular/InputAddress/InputAddress.js +213 -126
- package/dist/Molecular/InputPassword/InputPassword.js +23 -13
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -18,7 +18,7 @@ var _utils = require("./utils");
|
|
|
18
18
|
// ****************************
|
|
19
19
|
// Base utils
|
|
20
20
|
// ****************************
|
|
21
|
-
|
|
21
|
+
var getSafelyValue = function getSafelyValue(value) {
|
|
22
22
|
var _value$toString;
|
|
23
23
|
|
|
24
24
|
return value !== undefined && value !== null ? (value === null || value === void 0 ? void 0 : (_value$toString = value.toString) === null || _value$toString === void 0 ? void 0 : _value$toString.call(value)) || "" : "";
|
|
@@ -27,31 +27,26 @@ const getSafelyValue = value => {
|
|
|
27
27
|
|
|
28
28
|
exports.getSafelyValue = getSafelyValue;
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
var intlNumbersFormatter = function intlNumbersFormatter(inputValue) {
|
|
31
|
+
var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
32
|
+
var safelyInputValue = getSafelyValue(inputValue);
|
|
33
|
+
var previousValue = safelyInputValue.slice(0, -1);
|
|
34
|
+
var lastSym = safelyInputValue.slice(-1);
|
|
35
|
+
var value = lastSym === "." ? previousValue : safelyInputValue;
|
|
36
36
|
if (Number.isNaN(Number(value)) || !getSafelyValue(value)) return "";
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const {
|
|
51
|
-
currencyType = "USD",
|
|
52
|
-
currencyDisplay: inputCurrencyDisplay
|
|
53
|
-
} = currency;
|
|
54
|
-
let currencyDisplay;
|
|
37
|
+
var _settings$locale = settings.locale,
|
|
38
|
+
locale = _settings$locale === void 0 ? "en-US" : _settings$locale,
|
|
39
|
+
withSymbol = settings.withSymbol,
|
|
40
|
+
_settings$useGrouping = settings.useGrouping,
|
|
41
|
+
useGrouping = _settings$useGrouping === void 0 ? true : _settings$useGrouping,
|
|
42
|
+
_settings$currency = settings.currency,
|
|
43
|
+
currency = _settings$currency === void 0 ? {} : _settings$currency,
|
|
44
|
+
_settings$fractionDig = settings.fractionDigits,
|
|
45
|
+
fractionDigits = _settings$fractionDig === void 0 ? {} : _settings$fractionDig;
|
|
46
|
+
var _currency$currencyTyp = currency.currencyType,
|
|
47
|
+
currencyType = _currency$currencyTyp === void 0 ? "USD" : _currency$currencyTyp,
|
|
48
|
+
inputCurrencyDisplay = currency.currencyDisplay;
|
|
49
|
+
var currencyDisplay;
|
|
55
50
|
|
|
56
51
|
switch (inputCurrencyDisplay) {
|
|
57
52
|
case "name":
|
|
@@ -70,7 +65,7 @@ const intlNumbersFormatter = function (inputValue) {
|
|
|
70
65
|
currencyDisplay = "symbol";
|
|
71
66
|
}
|
|
72
67
|
|
|
73
|
-
|
|
68
|
+
var numberStyle;
|
|
74
69
|
|
|
75
70
|
switch (withSymbol) {
|
|
76
71
|
case "percent":
|
|
@@ -86,17 +81,16 @@ const intlNumbersFormatter = function (inputValue) {
|
|
|
86
81
|
break;
|
|
87
82
|
}
|
|
88
83
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
const minimumFractionDigits = (() => {
|
|
84
|
+
var quantity = fractionDigits.quantity,
|
|
85
|
+
_fractionDigits$isRen = fractionDigits.isRenderAlways,
|
|
86
|
+
isRenderAlways = _fractionDigits$isRen === void 0 ? false : _fractionDigits$isRen,
|
|
87
|
+
inputMinimumFractionDigits = fractionDigits.minimumFractionDigits,
|
|
88
|
+
inputMaximumFractionDigits = fractionDigits.maximumFractionDigits,
|
|
89
|
+
conditionallyMinimumFractionDigits = fractionDigits.conditionallyMinimumFractionDigits;
|
|
90
|
+
var dotIndex = safelyInputValue === null || safelyInputValue === void 0 ? void 0 : safelyInputValue.indexOf(".");
|
|
91
|
+
var afterDot = dotIndex !== -1 ? safelyInputValue.slice(dotIndex + 1) : "";
|
|
92
|
+
|
|
93
|
+
var minimumFractionDigits = function () {
|
|
100
94
|
//? Безусловное минимальное количество. Всегда отрендерит дробную часть, в количестве символов сколько указано
|
|
101
95
|
if (typeof inputMinimumFractionDigits === "number") return inputMinimumFractionDigits; //? Условное минимальное количество. Если есть дробная часть, то отрендерит дробных символов сколько указано
|
|
102
96
|
|
|
@@ -107,25 +101,25 @@ const intlNumbersFormatter = function (inputValue) {
|
|
|
107
101
|
|
|
108
102
|
|
|
109
103
|
return afterDot && lastSym !== "." ? safelyInputValue.slice(dotIndex).length - 1 : isRenderAlways ? quantity : 0;
|
|
110
|
-
}
|
|
104
|
+
}();
|
|
111
105
|
|
|
112
|
-
|
|
113
|
-
useGrouping,
|
|
106
|
+
var priceSettings = {
|
|
107
|
+
useGrouping: useGrouping,
|
|
114
108
|
//группировка разрядов
|
|
115
109
|
style: numberStyle,
|
|
116
110
|
//тип форматирования (валюта или число). decimal - без знака валюты
|
|
117
111
|
currency: currencyType,
|
|
118
112
|
//валюта
|
|
119
|
-
currencyDisplay,
|
|
113
|
+
currencyDisplay: currencyDisplay,
|
|
120
114
|
//валюта в виде символа
|
|
121
115
|
//минимально не надо отображать центы, если их нет, иначе всегда будет .00
|
|
122
|
-
minimumFractionDigits,
|
|
116
|
+
minimumFractionDigits: minimumFractionDigits,
|
|
123
117
|
//! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
|
|
124
118
|
//! чем указано в (inputMaximumFractionDigits ?? quantity) - округлит по правилам округления
|
|
125
119
|
//максимально отображать 2 цифры после запятой, если центы всё же есть
|
|
126
120
|
maximumFractionDigits: inputMaximumFractionDigits !== null && inputMaximumFractionDigits !== void 0 ? inputMaximumFractionDigits : quantity
|
|
127
121
|
};
|
|
128
|
-
|
|
122
|
+
var output;
|
|
129
123
|
|
|
130
124
|
try {
|
|
131
125
|
output = new Intl.NumberFormat(locale, priceSettings).format(value);
|
|
@@ -143,25 +137,31 @@ const intlNumbersFormatter = function (inputValue) {
|
|
|
143
137
|
|
|
144
138
|
exports.intlNumbersFormatter = intlNumbersFormatter;
|
|
145
139
|
|
|
146
|
-
|
|
140
|
+
var formatOnlyNumbers = function formatOnlyNumbers(value) {
|
|
141
|
+
return getSafelyValue(value).replace(/\D/g, "");
|
|
142
|
+
};
|
|
147
143
|
|
|
148
144
|
exports.formatOnlyNumbers = formatOnlyNumbers;
|
|
149
145
|
|
|
150
|
-
|
|
146
|
+
var formatToRemoveComa = function formatToRemoveComa(value) {
|
|
147
|
+
return getSafelyValue(value).replace(/,/g, "");
|
|
148
|
+
};
|
|
151
149
|
|
|
152
150
|
exports.formatToRemoveComa = formatToRemoveComa;
|
|
153
151
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
152
|
+
var formatToAddBitDepthPoints = function formatToAddBitDepthPoints(value, settings) {
|
|
153
|
+
return intlNumbersFormatter(getSafelyValue(value), {
|
|
154
|
+
fractionDigits: {
|
|
155
|
+
quantity: (settings === null || settings === void 0 ? void 0 : settings.type) === "int" ? 0 : settings === null || settings === void 0 ? void 0 : settings.decimalPlaces
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}; //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
|
|
159
159
|
//! чем указано в quantity - округлит по правилам округления
|
|
160
160
|
|
|
161
161
|
|
|
162
162
|
exports.formatToAddBitDepthPoints = formatToAddBitDepthPoints;
|
|
163
163
|
|
|
164
|
-
|
|
164
|
+
var formatToPriceWithUSD = function formatToPriceWithUSD(value) {
|
|
165
165
|
if (isNaN(Number(value))) return value;
|
|
166
166
|
return intlNumbersFormatter(getSafelyValue(value), {
|
|
167
167
|
withSymbol: "currency",
|
|
@@ -180,8 +180,8 @@ const formatToPriceWithUSD = value => {
|
|
|
180
180
|
|
|
181
181
|
exports.formatToPriceWithUSD = formatToPriceWithUSD;
|
|
182
182
|
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
var formatToPriceWithCurrency = function formatToPriceWithCurrency(value, currencyCode) {
|
|
184
|
+
var symbolPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "before";
|
|
185
185
|
if (isNaN(Number(value))) return value;
|
|
186
186
|
return intlNumbersFormatter(getSafelyValue(value), {
|
|
187
187
|
withSymbol: "currency",
|
|
@@ -210,19 +210,25 @@ const formatToPriceWithCurrency = function (value, currencyCode) {
|
|
|
210
210
|
|
|
211
211
|
exports.formatToPriceWithCurrency = formatToPriceWithCurrency;
|
|
212
212
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
213
|
+
var formatAsPercentage = function formatAsPercentage(value, settings) {
|
|
214
|
+
var _ref = (0, _utils.getIsOnlyAnObject)(settings) ? settings : {},
|
|
215
|
+
_ref$isCommonPercenta = _ref.isCommonPercentageSymbol,
|
|
216
|
+
isCommonPercentageSymbol = _ref$isCommonPercenta === void 0 ? true : _ref$isCommonPercenta,
|
|
217
|
+
_ref$decimalPlaces = _ref.decimalPlaces,
|
|
218
|
+
decimalPlaces = _ref$decimalPlaces === void 0 ? 2 : _ref$decimalPlaces,
|
|
219
|
+
_ref$beforeValueSymbo = _ref.beforeValueSymbol,
|
|
220
|
+
beforeValueSymbol = _ref$beforeValueSymbo === void 0 ? "" : _ref$beforeValueSymbo,
|
|
221
|
+
_ref$afterValueSymbol = _ref.afterValueSymbol,
|
|
222
|
+
afterValueSymbol = _ref$afterValueSymbol === void 0 ? "" : _ref$afterValueSymbol;
|
|
223
|
+
|
|
224
|
+
var safelyInputValue;
|
|
225
|
+
|
|
226
|
+
var checkValue = function checkValue(value) {
|
|
227
|
+
return getSafelyValue(value) || "0";
|
|
228
|
+
};
|
|
223
229
|
|
|
224
|
-
|
|
225
|
-
|
|
230
|
+
var transform = function transform(valueAsSting) {
|
|
231
|
+
var processedValue = valueAsSting.replace(/,/g, ".");
|
|
226
232
|
if (Number.isNaN(Number(processedValue))) return processedValue;
|
|
227
233
|
return "".concat(intlNumbersFormatter(getSafelyValue(Number(processedValue)), {
|
|
228
234
|
fractionDigits: {
|
|
@@ -241,7 +247,9 @@ const formatAsPercentage = (value, settings) => {
|
|
|
241
247
|
safelyInputValue = checkValue(value);
|
|
242
248
|
|
|
243
249
|
if (safelyInputValue.includes(" - ")) {
|
|
244
|
-
|
|
250
|
+
var valuesArr = safelyInputValue.split(" - ").map(function (partOfValue) {
|
|
251
|
+
return partOfValue.trim();
|
|
252
|
+
});
|
|
245
253
|
safelyInputValue = {
|
|
246
254
|
from: checkValue(valuesArr[0]),
|
|
247
255
|
to: checkValue(valuesArr[1])
|
|
@@ -257,25 +265,32 @@ const formatAsPercentage = (value, settings) => {
|
|
|
257
265
|
|
|
258
266
|
exports.formatAsPercentage = formatAsPercentage;
|
|
259
267
|
|
|
260
|
-
|
|
268
|
+
var formatToOnlyASCIICodeText = function formatToOnlyASCIICodeText(text) {
|
|
269
|
+
return getSafelyValue(text).replace(/[^\x00-\x7F]+/g, "");
|
|
270
|
+
}; // eslint-disable-next-line default-param-last
|
|
261
271
|
|
|
262
272
|
|
|
263
273
|
exports.formatToOnlyASCIICodeText = formatToOnlyASCIICodeText;
|
|
264
274
|
|
|
265
|
-
|
|
266
|
-
|
|
275
|
+
var formatNumberValueToMask = function formatNumberValueToMask(inputValue, settings) {
|
|
276
|
+
var safelyInputValue = getSafelyValue(inputValue); // default valueSymbol === 'n', default mask === 'nnn-nnn-nnnn'
|
|
277
|
+
|
|
278
|
+
var _ref2 = settings || {},
|
|
279
|
+
_ref2$mask = _ref2.mask,
|
|
280
|
+
mask = _ref2$mask === void 0 ? "XXX-XXX-XXXX" : _ref2$mask,
|
|
281
|
+
_ref2$valueSymbol = _ref2.valueSymbol,
|
|
282
|
+
valueSymbol = _ref2$valueSymbol === void 0 ? "X" : _ref2$valueSymbol,
|
|
283
|
+
_ref2$isReturnAdvance = _ref2.isReturnAdvanced,
|
|
284
|
+
isReturnAdvanced = _ref2$isReturnAdvance === void 0 ? false : _ref2$isReturnAdvance;
|
|
267
285
|
|
|
268
|
-
|
|
269
|
-
mask = "XXX-XXX-XXXX",
|
|
270
|
-
valueSymbol = "X",
|
|
271
|
-
isReturnAdvanced = false
|
|
272
|
-
} = settings || {};
|
|
273
|
-
const processing = mask.split("").reduce((acc, item) => {
|
|
286
|
+
var processing = mask.split("").reduce(function (acc, item) {
|
|
274
287
|
if (acc.value.length) ++acc.cursorPosition;
|
|
275
288
|
acc.newValue.push(item === valueSymbol && acc.value.length ? acc.value.shift() : item);
|
|
276
289
|
return acc;
|
|
277
290
|
}, {
|
|
278
|
-
value: safelyInputValue.split("").filter(
|
|
291
|
+
value: safelyInputValue.split("").filter(function (sym) {
|
|
292
|
+
return /[0-9]/g.test(sym);
|
|
293
|
+
}),
|
|
279
294
|
newValue: [],
|
|
280
295
|
cursorPosition: 0
|
|
281
296
|
});
|
|
@@ -287,19 +302,17 @@ const formatNumberValueToMask = (inputValue, settings) => {
|
|
|
287
302
|
|
|
288
303
|
exports.formatNumberValueToMask = formatNumberValueToMask;
|
|
289
304
|
|
|
290
|
-
|
|
291
|
-
|
|
305
|
+
var formatToLimitLength = function formatToLimitLength(inputValue, limit) {
|
|
306
|
+
var value = getSafelyValue(inputValue);
|
|
292
307
|
return limit && typeof limit === "number" && !Number.isNaN(limit) && (value === null || value === void 0 ? void 0 : value.length) > limit ? value.substr(0, limit) : value;
|
|
293
308
|
};
|
|
294
309
|
|
|
295
310
|
exports.formatToLimitLength = formatToLimitLength;
|
|
296
311
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
} = _ref;
|
|
302
|
-
const value = getSafelyValue(inputValue);
|
|
312
|
+
var formatToHex = function formatToHex(_ref3) {
|
|
313
|
+
var inputValue = _ref3.inputValue,
|
|
314
|
+
withSharp = _ref3.withSharp;
|
|
315
|
+
var value = getSafelyValue(inputValue);
|
|
303
316
|
if (withSharp) return "#".concat(value.replace(/[^a-f0-9]/gi, ""));
|
|
304
317
|
return "".concat(value.replace(/[^#a-f0-9]/gi, ""));
|
|
305
318
|
};
|
|
@@ -307,7 +320,7 @@ const formatToHex = _ref => {
|
|
|
307
320
|
exports.formatToHex = formatToHex;
|
|
308
321
|
|
|
309
322
|
function formatToReplaceAllWhiteSpace(str) {
|
|
310
|
-
|
|
323
|
+
var value = getSafelyValue(str);
|
|
311
324
|
return value.replace(/\s+/g, "");
|
|
312
325
|
} // ****************************
|
|
313
326
|
// transform
|
|
@@ -338,22 +351,22 @@ function formatToReplaceAllWhiteSpace(str) {
|
|
|
338
351
|
// };
|
|
339
352
|
|
|
340
353
|
|
|
341
|
-
|
|
354
|
+
var filterFloat = function filterFloat(inputValue) {
|
|
342
355
|
var _output, _output2, _output3, _output4;
|
|
343
356
|
|
|
344
|
-
|
|
345
|
-
|
|
357
|
+
var decimalPlaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
358
|
+
var value = getSafelyValue(inputValue);
|
|
346
359
|
|
|
347
|
-
|
|
360
|
+
var replacer = function replacer(input) {
|
|
348
361
|
var _String;
|
|
349
362
|
|
|
350
363
|
return (_String = String(input)) === null || _String === void 0 ? void 0 : _String.replace(/[^\.\d,]/g, "");
|
|
351
364
|
};
|
|
352
365
|
|
|
353
366
|
if (value.length === 1 && (value[0] === "." || value[0] === ",")) return "0.";
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
367
|
+
var output = value;
|
|
368
|
+
var previousValue = String((_output = output) === null || _output === void 0 ? void 0 : _output.slice(0, -1));
|
|
369
|
+
var lastSym = String((_output2 = output) === null || _output2 === void 0 ? void 0 : _output2.slice(-1));
|
|
357
370
|
|
|
358
371
|
if (decimalPlaces && typeof decimalPlaces === "number" && previousValue !== null && previousValue !== void 0 && previousValue.includes(".") && (previousValue === null || previousValue === void 0 ? void 0 : previousValue.indexOf(".")) + 1 + decimalPlaces === (previousValue === null || previousValue === void 0 ? void 0 : previousValue.length)) {
|
|
359
372
|
return replacer(previousValue);
|
|
@@ -370,34 +383,43 @@ const filterFloat = function (inputValue) {
|
|
|
370
383
|
|
|
371
384
|
exports.filterFloat = filterFloat;
|
|
372
385
|
|
|
373
|
-
|
|
386
|
+
var filterNumeric = function filterNumeric(value, settings) {
|
|
374
387
|
var _getSafelyValue;
|
|
375
388
|
|
|
376
389
|
value = (_getSafelyValue = getSafelyValue(value)) === null || _getSafelyValue === void 0 ? void 0 : _getSafelyValue.replace(/,/g, "");
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
390
|
+
|
|
391
|
+
var _ref4 = settings || {},
|
|
392
|
+
_ref4$type = _ref4.type,
|
|
393
|
+
type = _ref4$type === void 0 ? "float" : _ref4$type,
|
|
394
|
+
decimalPlaces = _ref4.decimalPlaces;
|
|
395
|
+
|
|
396
|
+
var executor = type === "float" ? filterFloat : formatOnlyNumbers;
|
|
382
397
|
return executor(getSafelyValue(value), decimalPlaces);
|
|
383
398
|
};
|
|
384
399
|
|
|
385
400
|
exports.filterNumeric = filterNumeric;
|
|
386
401
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
402
|
+
var formatToHideValuePartially = function formatToHideValuePartially(value, settings) {
|
|
403
|
+
var _ref5 = settings || {},
|
|
404
|
+
_ref5$showSymbolsCoun = _ref5.showSymbolsCount,
|
|
405
|
+
showSymbolsCount = _ref5$showSymbolsCoun === void 0 ? 4 : _ref5$showSymbolsCoun,
|
|
406
|
+
_ref5$isVisibleFromFr = _ref5.isVisibleFromFront,
|
|
407
|
+
isVisibleFromFront = _ref5$isVisibleFromFr === void 0 ? false : _ref5$isVisibleFromFr,
|
|
408
|
+
_ref5$isCutOutWhiteSp = _ref5.isCutOutWhiteSpaces,
|
|
409
|
+
isCutOutWhiteSpaces = _ref5$isCutOutWhiteSp === void 0 ? true : _ref5$isCutOutWhiteSp;
|
|
410
|
+
|
|
411
|
+
var safelyValue = getSafelyValue(value);
|
|
412
|
+
var newValue = isCutOutWhiteSpaces ? safelyValue.replace(/\s/g, "") : safelyValue;
|
|
395
413
|
if (newValue.length <= showSymbolsCount) return newValue;
|
|
396
414
|
|
|
397
|
-
|
|
415
|
+
var hide = function hide(val) {
|
|
416
|
+
return val.split("").map(function () {
|
|
417
|
+
return "*";
|
|
418
|
+
}).join("");
|
|
419
|
+
};
|
|
398
420
|
|
|
399
|
-
|
|
400
|
-
|
|
421
|
+
var visiblePart = isVisibleFromFront ? newValue.slice(0, showSymbolsCount) : newValue.slice(-1 * showSymbolsCount);
|
|
422
|
+
var hiddenPart = isVisibleFromFront ? newValue.slice(showSymbolsCount) : newValue.slice(0, -1 * showSymbolsCount);
|
|
401
423
|
return isVisibleFromFront ? "".concat(visiblePart).concat(hide(hiddenPart)) : "".concat(hide(hiddenPart)).concat(visiblePart);
|
|
402
424
|
};
|
|
403
425
|
|
|
@@ -1,40 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
3
7
|
Object.defineProperty(exports, "__esModule", {
|
|
4
8
|
value: true
|
|
5
9
|
});
|
|
6
10
|
exports.default = void 0;
|
|
7
11
|
|
|
12
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
+
|
|
18
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
|
+
|
|
8
20
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
21
|
|
|
10
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
22
|
+
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); }
|
|
11
23
|
|
|
12
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
|
|
13
25
|
|
|
14
|
-
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
+
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
+
|
|
30
|
+
var timeouts = {
|
|
15
31
|
timeoutId: null
|
|
16
32
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} = settings || {}; //? Пробовал ставить просто useEffect по formChangesRef.current,
|
|
33
|
+
var formChanges = []; // ? validateField - должен возвращать структуру { field, isValid }
|
|
34
|
+
|
|
35
|
+
var useFormFieldsChangesManager = function useFormFieldsChangesManager(_ref) {
|
|
36
|
+
var form = _ref.form,
|
|
37
|
+
setForm = _ref.setForm,
|
|
38
|
+
callback = _ref.callback,
|
|
39
|
+
validateField = _ref.validateField,
|
|
40
|
+
settings = _ref.settings;
|
|
41
|
+
|
|
42
|
+
var _ref2 = settings || {},
|
|
43
|
+
isNotSetForm = _ref2.isNotSetForm,
|
|
44
|
+
_ref2$isUseValidation = _ref2.isUseValidation,
|
|
45
|
+
isUseValidation = _ref2$isUseValidation === void 0 ? false : _ref2$isUseValidation; //? Пробовал ставить просто useEffect по formChangesRef.current,
|
|
31
46
|
//? но по какой-то причине после изменении рефки не заходило в useEffect.
|
|
32
47
|
//? Однако если срабатывал useEffect по какой-нибудь другой переменной,
|
|
33
48
|
//? то и в useEffect по formChangesRef.current тоже заходило.
|
|
34
49
|
//? Поэтому тут нужен этот стейт,
|
|
35
50
|
//? хотя по итогу в конечной реализации с ним даже неплохо получилось (но вообще очень странная ерунда...)
|
|
36
51
|
|
|
37
|
-
|
|
52
|
+
|
|
53
|
+
var _useState = (0, _react.useState)(false),
|
|
54
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
55
|
+
isFormMustBeChanget = _useState2[0],
|
|
56
|
+
setIsFormMustBeChanget = _useState2[1]; //? Ф-я является ф-ей - постановщиком изменений формы в очередь.
|
|
38
57
|
//? Ф-я получается самовызывающимся геттером.
|
|
39
58
|
//? Cуть ф-ии:
|
|
40
59
|
//? Для того чтоб не спамить изменениями, если их назначается много в рамках одной итерации,
|
|
@@ -44,67 +63,107 @@ const useFormFieldsChangesManager = _ref => {
|
|
|
44
63
|
//? откладываю переназначение этого стейта до приостановки непрерывных вызовов assignChangesToField,
|
|
45
64
|
//? но при этом при каждом ее вызове продолжаю добавлять изменения в массив
|
|
46
65
|
|
|
47
|
-
|
|
48
|
-
|
|
66
|
+
|
|
67
|
+
var assignChangesToField = function () {
|
|
68
|
+
return function (data, key) {
|
|
49
69
|
clearTimeout(timeouts.timeoutId);
|
|
50
70
|
formChanges.push({
|
|
51
|
-
key,
|
|
52
|
-
data
|
|
71
|
+
key: key,
|
|
72
|
+
data: data
|
|
53
73
|
});
|
|
54
74
|
setIsFormMustBeChanget(false);
|
|
55
|
-
timeouts.timeoutId = setTimeout(
|
|
75
|
+
timeouts.timeoutId = setTimeout(function () {
|
|
76
|
+
return setIsFormMustBeChanget(true);
|
|
77
|
+
}, 1);
|
|
56
78
|
return formChanges;
|
|
57
79
|
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
var
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
80
|
+
}(); //? Ф-я применяет "накопленные" изменения
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
var changeForm = /*#__PURE__*/function () {
|
|
84
|
+
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
85
|
+
var _modifiedFormFromOuts;
|
|
86
|
+
|
|
87
|
+
var modifiedFormFromOutside, errorsFromChanges, newForm, validatedForm;
|
|
88
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
89
|
+
while (1) {
|
|
90
|
+
switch (_context.prev = _context.next) {
|
|
91
|
+
case 0:
|
|
92
|
+
errorsFromChanges = {};
|
|
93
|
+
newForm = formChanges.reduce(function (acc, change) {
|
|
94
|
+
var data = change.data,
|
|
95
|
+
key = change.key;
|
|
96
|
+
|
|
97
|
+
var _ref4 = data || {},
|
|
98
|
+
error = _ref4.error;
|
|
99
|
+
|
|
100
|
+
var field = acc.find(function (field) {
|
|
101
|
+
return field.key === key;
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
if (field) {
|
|
105
|
+
acc = acc.map(function (field) {
|
|
106
|
+
return field.key === key ? _objectSpread(_objectSpread({}, field), data) : field;
|
|
107
|
+
});
|
|
108
|
+
if (error || error !== undefined) errorsFromChanges[key] = error;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return acc;
|
|
112
|
+
}, form); // ToDo - порефакторить, не прогонять валидацию всех полей, а только измененных
|
|
113
|
+
|
|
114
|
+
validatedForm = isUseValidation && typeof validateField === "function" ? newForm.map(function (field) {
|
|
115
|
+
var _validateField, _validateField$field;
|
|
116
|
+
|
|
117
|
+
return _objectSpread(_objectSpread({}, field), {}, {
|
|
118
|
+
error: ((_validateField = validateField(_objectSpread({}, field), newForm)) === null || _validateField === void 0 ? void 0 : (_validateField$field = _validateField.field) === null || _validateField$field === void 0 ? void 0 : _validateField$field.error) || errorsFromChanges[field.key] || ""
|
|
119
|
+
});
|
|
120
|
+
}) : newForm;
|
|
121
|
+
|
|
122
|
+
if (!(callback && typeof callback === "function")) {
|
|
123
|
+
_context.next = 7;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
_context.next = 6;
|
|
128
|
+
return callback(validatedForm);
|
|
129
|
+
|
|
130
|
+
case 6:
|
|
131
|
+
modifiedFormFromOutside = _context.sent;
|
|
132
|
+
|
|
133
|
+
case 7:
|
|
134
|
+
if (isNotSetForm) {
|
|
135
|
+
_context.next = 10;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
_context.next = 10;
|
|
140
|
+
return setForm((_modifiedFormFromOuts = modifiedFormFromOutside) !== null && _modifiedFormFromOuts !== void 0 ? _modifiedFormFromOuts : validatedForm);
|
|
141
|
+
|
|
142
|
+
case 10:
|
|
143
|
+
formChanges.length = 0;
|
|
144
|
+
setIsFormMustBeChanget(false);
|
|
145
|
+
|
|
146
|
+
case 12:
|
|
147
|
+
case "end":
|
|
148
|
+
return _context.stop();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}, _callee);
|
|
152
|
+
}));
|
|
153
|
+
|
|
154
|
+
return function changeForm() {
|
|
155
|
+
return _ref3.apply(this, arguments);
|
|
156
|
+
};
|
|
157
|
+
}();
|
|
99
158
|
|
|
100
|
-
(0, _react.useEffect)(()
|
|
159
|
+
(0, _react.useEffect)(function () {
|
|
101
160
|
if (isFormMustBeChanget) changeForm();
|
|
102
161
|
}, [isFormMustBeChanget]);
|
|
103
162
|
return {
|
|
104
|
-
assignChangesToField,
|
|
105
|
-
isFormMustBeChanget,
|
|
106
|
-
setIsFormMustBeChanget,
|
|
107
|
-
changesArray: [
|
|
163
|
+
assignChangesToField: assignChangesToField,
|
|
164
|
+
isFormMustBeChanget: isFormMustBeChanget,
|
|
165
|
+
setIsFormMustBeChanget: setIsFormMustBeChanget,
|
|
166
|
+
changesArray: [].concat(formChanges)
|
|
108
167
|
};
|
|
109
168
|
};
|
|
110
169
|
|