intelicoreact 1.6.20 → 1.6.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +1 -102
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +1 -89
- package/dist/Atomic/FormElements/Calendar/Calendar.js +1 -232
- package/dist/Atomic/FormElements/Calendar/Calendar.props.js +1 -3
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +1 -101
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +1 -70
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +1 -350
- package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +1 -3
- package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +1 -177
- package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +1 -3
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +1 -561
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -20
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +1 -405
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +1 -94
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +1 -105
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +1 -67
- package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +1 -247
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +1 -160
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +1 -193
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +1 -135
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +1 -116
- package/dist/Atomic/FormElements/Input/Input.js +1 -467
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +1 -161
- package/dist/Atomic/FormElements/InputColor/InputColor.js +1 -64
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +1 -166
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +1 -354
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +1 -71
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +1 -693
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +1 -254
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -32
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +1 -200
- package/dist/Atomic/FormElements/InputLink/InputLink.js +1 -99
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +1 -37
- package/dist/Atomic/FormElements/InputMask/InputMask.js +1 -1214
- package/dist/Atomic/FormElements/InputMask/config.js +1 -15
- package/dist/Atomic/FormElements/InputMask/functions.js +1 -58
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +1 -674
- package/dist/Atomic/FormElements/InputMask2/config.js +1 -15
- package/dist/Atomic/FormElements/InputMask2/functions.js +1 -58
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +1 -766
- package/dist/Atomic/FormElements/InputMask3/config.js +1 -15
- package/dist/Atomic/FormElements/InputMask3/functions.js +1 -58
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +1 -114
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +1 -140
- package/dist/Atomic/FormElements/Label/Label.js +1 -82
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -506
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +1 -45
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -331
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +1 -66
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +1 -80
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +1 -64
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +1 -54
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +1 -183
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +1 -209
- package/dist/Atomic/FormElements/RangeList/RangeList.js +1 -175
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +1 -43
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +1 -443
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +1 -858
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +1 -39
- package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -59
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +1 -50
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +1 -47
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +1 -96
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +1 -40
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +1 -64
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +1 -170
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +1 -202
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +1 -67
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +1 -115
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -826
- package/dist/Atomic/FormElements/Text/Text.js +1 -125
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +1 -45
- package/dist/Atomic/FormElements/Textarea/Textarea.js +1 -80
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +1 -176
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +1 -62
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -127
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +1 -220
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +1 -83
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +1 -82
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +1 -101
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +1 -29
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +1 -113
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +1 -30
- package/dist/Atomic/Layout/Header/Header.js +1 -85
- package/dist/Atomic/Layout/Spinner/Spinner.js +1 -39
- package/dist/Atomic/UI/Accordion/Accordion.js +1 -118
- package/dist/Atomic/UI/Accordion/AccordionItem.js +1 -181
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +1 -238
- package/dist/Atomic/UI/AccordionText/AccordionText.js +1 -69
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +1 -207
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +1 -56
- package/dist/Atomic/UI/Alert/Alert.js +1 -72
- package/dist/Atomic/UI/Arrow/Arrow.js +1 -132
- package/dist/Atomic/UI/Box/Box.js +1 -52
- package/dist/Atomic/UI/Button/Button.js +1 -89
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +1 -72
- package/dist/Atomic/UI/Chart/Chart.js +1 -172
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +1 -95
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +1 -80
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +1 -188
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +1 -335
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +1 -43
- package/dist/Atomic/UI/Chart/partial/utils.js +1 -60
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +1 -109
- package/dist/Atomic/UI/DateTime/DateTime.js +1 -57
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +1 -44
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +1 -15
- package/dist/Atomic/UI/DoubleString/DoubleString.js +1 -102
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +1 -226
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +1 -221
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +1 -106
- package/dist/Atomic/UI/Hint/Hint.js +1 -193
- package/dist/Atomic/UI/Hint/partials/_utils.js +1 -51
- package/dist/Atomic/UI/Modal/Modal.js +1 -188
- package/dist/Atomic/UI/Modal/ModalHOC.js +1 -72
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +1 -46
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +1 -83
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +1 -200
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +1 -75
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +1 -80
- package/dist/Atomic/UI/NavLine/NavLine.js +1 -293
- package/dist/Atomic/UI/PageTitle/PageTitle.js +1 -75
- package/dist/Atomic/UI/PieChart/PieChart.js +1 -42
- package/dist/Atomic/UI/Price/Price.js +1 -22
- package/dist/Atomic/UI/PriceRange/PriceRange.js +1 -36
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +1 -71
- package/dist/Atomic/UI/Status/Status.js +1 -59
- package/dist/Atomic/UI/Table/Partials/TdCell.js +1 -87
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +1 -38
- package/dist/Atomic/UI/Table/Partials/TdRow.js +1 -99
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +1 -52
- package/dist/Atomic/UI/Table/Table.js +1 -63
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +1 -80
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +1 -28
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +1 -13
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +1 -53
- package/dist/Atomic/UI/Tag/Tag.js +1 -160
- package/dist/Atomic/UI/TagList/TagList.js +1 -251
- package/dist/Atomic/UI/UserBox/UserBox.js +1 -73
- package/dist/Atomic/UI/WizardStepper/constructor.js +1 -84
- package/dist/Atomic/UI/WizardStepper/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +1 -37
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +1 -61
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +1 -39
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/icons.js +1 -49
- package/dist/Atomic/UI/WizardStepper/ui/index.js +1 -3
- package/dist/Classes/AbortableFetch.js +1 -454
- package/dist/Classes/AnimatedHandler.js +1 -47
- package/dist/Classes/RESTAPI/index.js +1 -228
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +1 -457
- package/dist/Classes/RESTAPI/partials/ApiBase.js +1 -48
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +1 -112
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +1 -189
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +1 -252
- package/dist/Classes/RESTAPI/partials/Utils.js +1 -92
- package/dist/Classes/RESTAPI/partials/_outerDependencies.js +1 -3
- package/dist/Classes/RESTAPI/partials/_utils.js +1 -197
- package/dist/Constants/index.constants.js +1 -78
- package/dist/Functions/Portal.js +1 -22
- package/dist/Functions/customEventListener.js +1 -96
- package/dist/Functions/dateTime.js +1 -149
- package/dist/Functions/fieldValueFormatters.js +1 -405
- package/dist/Functions/guards/assertions.js +1 -66
- package/dist/Functions/guards/safeValue.js +1 -30
- package/dist/Functions/guards/typeGuards.js +1 -116
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +1 -95
- package/dist/Functions/locale/createTranslator.js +1 -32
- package/dist/Functions/operations.js +1 -130
- package/dist/Functions/presets/inputMaskPresets.js +1 -170
- package/dist/Functions/presets/inputPresets.js +1 -60
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +1 -45
- package/dist/Functions/schemas.js +1 -31
- package/dist/Functions/useBodyScrollLock.js +1 -17
- package/dist/Functions/useClickOutside.js +1 -15
- package/dist/Functions/useDebounce.js +1 -17
- package/dist/Functions/useFieldFocus.js +1 -84
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +1 -39
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +1 -159
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +1 -78
- package/dist/Functions/useFormTools/functions/General.js +1 -134
- package/dist/Functions/useFormTools/functions/RenderFields.js +1 -111
- package/dist/Functions/useFormTools/functions/usePrevious.js +1 -12
- package/dist/Functions/useFormTools/index.js +1 -778
- package/dist/Functions/useInputHighlightError.js +1 -67
- package/dist/Functions/useIsMobile/useIsMobile.js +1 -53
- package/dist/Functions/useKeyPress/useHandleKeyPress.js +1 -21
- package/dist/Functions/useKeyPress/useKeyPress.js +1 -75
- package/dist/Functions/useLocalStorage.js +1 -34
- package/dist/Functions/useLocationParams.js +1 -27
- package/dist/Functions/useMediaQuery.js +1 -17
- package/dist/Functions/useMetaInfo.js +1 -43
- package/dist/Functions/useMouseUpOutside.js +1 -16
- package/dist/Functions/useOnlineStatus.js +1 -29
- package/dist/Functions/usePasswordChecker.js +1 -110
- package/dist/Functions/usePrevious.js +1 -12
- package/dist/Functions/useResize.js +1 -31
- package/dist/Functions/useScrollTo.js +1 -17
- package/dist/Functions/useToggle.js +1 -17
- package/dist/Functions/utils.js +1 -522
- package/dist/Langs.js +1 -168
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +1 -21
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +1 -23
- package/dist/Molecular/CustomIcons/components/AppStore.js +1 -29
- package/dist/Molecular/CustomIcons/components/Arrow.js +1 -32
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +1 -17
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +1 -22
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +1 -22
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +1 -17
- package/dist/Molecular/CustomIcons/components/Bell.js +1 -15
- package/dist/Molecular/CustomIcons/components/Button.js +1 -12
- package/dist/Molecular/CustomIcons/components/Campaigns.js +1 -16
- package/dist/Molecular/CustomIcons/components/Check.js +1 -14
- package/dist/Molecular/CustomIcons/components/Check2.js +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +1 -27
- package/dist/Molecular/CustomIcons/components/Close.js +1 -14
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +1 -17
- package/dist/Molecular/CustomIcons/components/Delete.js +1 -16
- package/dist/Molecular/CustomIcons/components/Edit.js +1 -15
- package/dist/Molecular/CustomIcons/components/Email.js +1 -31
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +1 -18
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +1 -35
- package/dist/Molecular/CustomIcons/components/Flows.js +1 -15
- package/dist/Molecular/CustomIcons/components/Gift.js +1 -25
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +1 -29
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +1 -29
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +1 -19
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +1 -20
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +1 -19
- package/dist/Molecular/CustomIcons/components/Home.js +1 -16
- package/dist/Molecular/CustomIcons/components/Home2.js +1 -22
- package/dist/Molecular/CustomIcons/components/Key.js +1 -23
- package/dist/Molecular/CustomIcons/components/Landers.js +1 -20
- package/dist/Molecular/CustomIcons/components/Lock.js +1 -15
- package/dist/Molecular/CustomIcons/components/Mail.js +1 -26
- package/dist/Molecular/CustomIcons/components/Mastercard.js +1 -73
- package/dist/Molecular/CustomIcons/components/Minus.js +1 -25
- package/dist/Molecular/CustomIcons/components/Offers.js +1 -16
- package/dist/Molecular/CustomIcons/components/Pause.js +1 -28
- package/dist/Molecular/CustomIcons/components/PayPal.js +1 -41
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +1 -28
- package/dist/Molecular/CustomIcons/components/Phone.js +1 -30
- package/dist/Molecular/CustomIcons/components/Play.js +1 -25
- package/dist/Molecular/CustomIcons/components/Plus.js +1 -25
- package/dist/Molecular/CustomIcons/components/Profile.js +1 -16
- package/dist/Molecular/CustomIcons/components/QRCode.js +1 -29
- package/dist/Molecular/CustomIcons/components/Rectangle.js +1 -12
- package/dist/Molecular/CustomIcons/components/Revert.js +1 -13
- package/dist/Molecular/CustomIcons/components/Star.js +1 -14
- package/dist/Molecular/CustomIcons/components/Star2.js +1 -16
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +1 -14
- package/dist/Molecular/CustomIcons/components/Trash.js +1 -15
- package/dist/Molecular/CustomIcons/components/TrashRed.js +1 -15
- package/dist/Molecular/CustomIcons/components/Triggers.js +1 -15
- package/dist/Molecular/CustomIcons/components/User.js +1 -25
- package/dist/Molecular/CustomIcons/components/Visa.js +1 -31
- package/dist/Molecular/CustomIcons/components/X.js +1 -12
- package/dist/Molecular/CustomIcons/index.js +1 -61
- package/dist/Molecular/FormElement/FormElement.js +1 -54
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +1 -184
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +1 -53
- package/dist/Molecular/InputAddress/InputAddress.js +1 -620
- package/dist/Molecular/InputPassword/InputPassword.js +1 -48
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,95 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const timeouts = { timeoutId: null };
|
|
4
|
-
const formChanges = [];
|
|
5
|
-
|
|
6
|
-
// ? validateField - должен возвращать структуру { field, isValid }
|
|
7
|
-
const useFormFieldsChangesManager = ({
|
|
8
|
-
form,
|
|
9
|
-
setForm,
|
|
10
|
-
callback,
|
|
11
|
-
validateField,
|
|
12
|
-
settings,
|
|
13
|
-
}) => {
|
|
14
|
-
const { isNotSetForm, isUseValidation = false } = settings || {};
|
|
15
|
-
|
|
16
|
-
//? Пробовал ставить просто useEffect по formChangesRef.current,
|
|
17
|
-
//? но по какой-то причине после изменении рефки не заходило в useEffect.
|
|
18
|
-
//? Однако если срабатывал useEffect по какой-нибудь другой переменной,
|
|
19
|
-
//? то и в useEffect по formChangesRef.current тоже заходило.
|
|
20
|
-
//? Поэтому тут нужен этот стейт,
|
|
21
|
-
//? хотя по итогу в конечной реализации с ним даже неплохо получилось (но вообще очень странная ерунда...)
|
|
22
|
-
const [isFormMustBeChanget, setIsFormMustBeChanget] = useState(false);
|
|
23
|
-
|
|
24
|
-
//? Ф-я является ф-ей - постановщиком изменений формы в очередь.
|
|
25
|
-
//? Ф-я получается самовызывающимся геттером.
|
|
26
|
-
//? Cуть ф-ии:
|
|
27
|
-
//? Для того чтоб не спамить изменениями, если их назначается много в рамках одной итерации,
|
|
28
|
-
//? ипользую прием с переназначением setTimeout
|
|
29
|
-
|
|
30
|
-
//? Чтобы преждевременно не спровацировать сработку useEffect
|
|
31
|
-
//? по стейту фиксирующему "отмашку" к началу изменений (isFormMustBeChanget)
|
|
32
|
-
//? откладываю переназначение этого стейта до приостановки непрерывных вызовов assignChangesToField,
|
|
33
|
-
//? но при этом при каждом ее вызове продолжаю добавлять изменения в массив
|
|
34
|
-
const assignChangesToField = (() => {
|
|
35
|
-
return (data, key) => {
|
|
36
|
-
clearTimeout(timeouts.timeoutId);
|
|
37
|
-
formChanges.push({ key, data });
|
|
38
|
-
setIsFormMustBeChanget(false);
|
|
39
|
-
timeouts.timeoutId = setTimeout(() => setIsFormMustBeChanget(true), 1);
|
|
40
|
-
return formChanges;
|
|
41
|
-
};
|
|
42
|
-
})();
|
|
43
|
-
|
|
44
|
-
//? Ф-я применяет "накопленные" изменения
|
|
45
|
-
const changeForm = async () => {
|
|
46
|
-
let modifiedFormFromOutside;
|
|
47
|
-
const errorsFromChanges = {};
|
|
48
|
-
|
|
49
|
-
const newForm = formChanges.reduce((acc, change) => {
|
|
50
|
-
const { data, key } = change;
|
|
51
|
-
const { error } = data || {};
|
|
52
|
-
const field = acc.find((field) => field.key === key);
|
|
53
|
-
|
|
54
|
-
if (field) {
|
|
55
|
-
acc = acc.map((field) =>
|
|
56
|
-
field.key === key ? { ...field, ...data } : field,
|
|
57
|
-
);
|
|
58
|
-
if (error || error !== undefined) errorsFromChanges[key] = error;
|
|
59
|
-
}
|
|
60
|
-
return acc;
|
|
61
|
-
}, form);
|
|
62
|
-
|
|
63
|
-
// ToDo - порефакторить, не прогонять валидацию всех полей, а только измененных
|
|
64
|
-
const validatedForm =
|
|
65
|
-
isUseValidation && typeof validateField === "function"
|
|
66
|
-
? newForm.map((field) => ({
|
|
67
|
-
...field,
|
|
68
|
-
error:
|
|
69
|
-
validateField({ ...field }, newForm)?.field?.error ||
|
|
70
|
-
errorsFromChanges[field.key] ||
|
|
71
|
-
"",
|
|
72
|
-
}))
|
|
73
|
-
: newForm;
|
|
74
|
-
|
|
75
|
-
if (callback && typeof callback === "function")
|
|
76
|
-
modifiedFormFromOutside = await callback(validatedForm);
|
|
77
|
-
if (!isNotSetForm) await setForm(modifiedFormFromOutside ?? validatedForm);
|
|
78
|
-
|
|
79
|
-
formChanges.length = 0;
|
|
80
|
-
setIsFormMustBeChanget(false);
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
useEffect(() => {
|
|
84
|
-
if (isFormMustBeChanget) changeForm();
|
|
85
|
-
}, [isFormMustBeChanget]);
|
|
86
|
-
|
|
87
|
-
return {
|
|
88
|
-
assignChangesToField,
|
|
89
|
-
isFormMustBeChanget,
|
|
90
|
-
setIsFormMustBeChanget,
|
|
91
|
-
changesArray: [...formChanges],
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
export default useFormFieldsChangesManager;
|
|
1
|
+
function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function e(t,e,r,n,o,a,i){try{var u=t[a](i),l=u.value}catch(t){r(t);return}u.done?e(l):Promise.resolve(l).then(n,o)}function r(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){var n;n=r[e],e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n})}return t}function n(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(e,r)}}import{useEffect as o,useState as a}from"react";var i={timeoutId:null},u=[];export default function(l){var c,f,s,y=l.form,p=l.setForm,b=l.callback,d=l.validateField,m=l.settings||{},h=m.isNotSetForm,v=m.isUseValidation,g=void 0!==v&&v,O=(c=a(!1),function(t){if(Array.isArray(t))return t}(c)||function(t,e){var r,n,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a=[],i=!0,u=!1;try{for(o=o.call(t);!(i=(r=o.next()).done)&&(a.push(r.value),a.length!==e);i=!0);}catch(t){u=!0,n=t}finally{try{i||null==o.return||o.return()}finally{if(u)throw n}}return a}}(c,2)||n(c,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=O[0],j=O[1],S=(f=function(){var t,e,n,o;return function(t,e){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=u(0),i.throw=u(1),i.return=u(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(u){return function(l){var c=[u,l];if(r)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=e.call(t,a)}catch(t){c=[6,t],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(a){switch(a.label){case 0:if(e={},n=u.reduce(function(t,n){var o=n.data,a=n.key,i=(o||{}).error;return t.find(function(t){return t.key===a})&&(t=t.map(function(t){return t.key===a?r({},t,o):t}),(i||void 0!==i)&&(e[a]=i)),t},y),o=g&&"function"==typeof d?n.map(function(t){var o,a,i,u;return i=r({},t),u=u={error:(null==(a=d(r({},t),n))||null==(o=a.field)?void 0:o.error)||e[t.key]||""},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(u)):(function(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r.push.apply(r,n)}return r})(Object(u)).forEach(function(t){Object.defineProperty(i,t,Object.getOwnPropertyDescriptor(u,t))}),i}):n,!(b&&"function"==typeof b))return[3,2];return[4,b(o)];case 1:t=a.sent(),a.label=2;case 2:if(h)return[3,4];return[4,p(null!=t?t:o)];case 3:a.sent(),a.label=4;case 4:return u.length=0,j(!1),[2]}})},s=function(){var t=this,r=arguments;return new Promise(function(n,o){var a=f.apply(t,r);function i(t){e(a,n,o,i,u,"next",t)}function u(t){e(a,n,o,i,u,"throw",t)}i(void 0)})},function(){return s.apply(this,arguments)});return o(function(){w&&S()},[w]),{assignChangesToField:function(t,e){return clearTimeout(i.timeoutId),u.push({key:e,data:t}),j(!1),i.timeoutId=setTimeout(function(){return j(!0)},1),u},isFormMustBeChanget:w,setIsFormMustBeChanget:j,changesArray:function(e){if(Array.isArray(e))return t(e)}(u)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(u)||n(u)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}}
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const DEFAULT_CODE = "en";
|
|
4
|
-
|
|
5
|
-
export default function createTranslator({ ...langCatalogs }) {
|
|
6
|
-
const loc = {
|
|
7
|
-
...langCatalogs,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
let code = window.localStorage.getItem("lng");
|
|
11
|
-
if (!code)
|
|
12
|
-
code = window.navigator
|
|
13
|
-
? window.navigator.language.split("-")[0]
|
|
14
|
-
: DEFAULT_CODE;
|
|
15
|
-
if (!loc[code]) code = DEFAULT_CODE;
|
|
16
|
-
|
|
17
|
-
return function (text, values) {
|
|
18
|
-
const safelyValues = values ?? {};
|
|
19
|
-
const safelyText = getSafelyValue(text);
|
|
20
|
-
let translatedText =
|
|
21
|
-
loc[code] && loc[code][safelyText] ? loc[code][safelyText] : safelyText;
|
|
22
|
-
|
|
23
|
-
if (Object?.keys(safelyValues)?.length) {
|
|
24
|
-
for (const key in values) {
|
|
25
|
-
const regex = new RegExp(`%${key}%`, "g");
|
|
26
|
-
translatedText = translatedText?.replace(regex, values[key]);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return translatedText;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
1
|
+
function r(){return(r=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(r[t]=n[t])}return r}).apply(this,arguments)}import{getSafelyValue as e}from"./../fieldValueFormatters";export default function n(n){var t=function(r){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(r){return Object.getOwnPropertyDescriptor(n,r).enumerable}))),t.forEach(function(e){var t;t=n[e],e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t})}return r}({},r({},function(r){if(null==r)throw TypeError("Cannot destructure "+r);return r}(n))),o=window.localStorage.getItem("lng");return o||(o=window.navigator?window.navigator.language.split("-")[0]:"en"),t[o]||(o="en"),function(r,n){var a,l,i=null!=n?n:{},u=e(r),c=t[o]&&t[o][u]?t[o][u]:u;if(null==(l=Object)||null==(a=l.keys(i))?void 0:a.length)for(var f in n){var g=RegExp("%".concat(f,"%"),"g");c=null==c?void 0:c.replace(g,n[f])}return c}}
|
|
@@ -1,130 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// При импорте любой ф-и из этого файла отработает самовызывающаяся ф-я и расширит
|
|
3
|
-
// объект Math 3-мя ф-ми: round10, floor10, ceil10
|
|
4
|
-
(function () {
|
|
5
|
-
/**
|
|
6
|
-
* Корректировка округления десятичных дробей.
|
|
7
|
-
*
|
|
8
|
-
* @param {String} type Тип корректировки.
|
|
9
|
-
* @param {Number} value Число.
|
|
10
|
-
* @param {Integer} exp Показатель степени (десятичный логарифм основания корректировки).
|
|
11
|
-
* @returns {Number} Скорректированное значение.
|
|
12
|
-
*/
|
|
13
|
-
function decimalAdjust(type, value, exp) {
|
|
14
|
-
// Если степень не определена, либо равна нулю...
|
|
15
|
-
if (typeof exp === "undefined" || Number(exp) === 0) {
|
|
16
|
-
return Math[type](value);
|
|
17
|
-
}
|
|
18
|
-
value = Number(value);
|
|
19
|
-
exp = Number(exp);
|
|
20
|
-
// Если значение не является числом, либо степень не является целым числом...
|
|
21
|
-
if (isNaN(value) || !(typeof exp === "number" && exp % 1 === 0)) {
|
|
22
|
-
return NaN;
|
|
23
|
-
}
|
|
24
|
-
// Сдвиг разрядов
|
|
25
|
-
value = value.toString().split("e");
|
|
26
|
-
value = Math[type](
|
|
27
|
-
Number(value[0] + "e" + (value[1] ? Number(value[1]) - exp : -exp)),
|
|
28
|
-
);
|
|
29
|
-
// Обратный сдвиг
|
|
30
|
-
value = value.toString().split("e");
|
|
31
|
-
return Number(value[0] + "e" + (value[1] ? Number(value[1]) + exp : exp));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Десятичное округление к ближайшему
|
|
35
|
-
if (!Math.round10) {
|
|
36
|
-
Math.round10 = function (value, exp) {
|
|
37
|
-
return decimalAdjust("round", value, exp);
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
// Десятичное округление вниз
|
|
41
|
-
if (!Math.floor10) {
|
|
42
|
-
Math.floor10 = function (value, exp) {
|
|
43
|
-
return decimalAdjust("floor", value, exp);
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
// Десятичное округление вверх
|
|
47
|
-
if (!Math.ceil10) {
|
|
48
|
-
Math.ceil10 = function (value, exp) {
|
|
49
|
-
return decimalAdjust("ceil", value, exp);
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
})();
|
|
53
|
-
|
|
54
|
-
export const addRangeDefault = (from, to, currentValues, decimalPlaces) => {
|
|
55
|
-
if (!currentValues?.length) return [{ from, to }];
|
|
56
|
-
const step = decimalPlaces ? Math.pow(10, -1 * decimalPlaces) : 1;
|
|
57
|
-
|
|
58
|
-
const resultOfProcessAddingRange = currentValues.reduce(
|
|
59
|
-
(acc, range) => {
|
|
60
|
-
const isIncludesFrom =
|
|
61
|
-
Boolean(acc.from) && range.from < acc.from && range.to >= acc.from;
|
|
62
|
-
const isIncludesTo =
|
|
63
|
-
Boolean(acc.to) && range.from <= acc.to && range.to > acc.to;
|
|
64
|
-
const isRangeMustBeIncludet =
|
|
65
|
-
Boolean(acc.from) &&
|
|
66
|
-
Boolean(acc.to) &&
|
|
67
|
-
acc.from <= range.from &&
|
|
68
|
-
acc.to >= range.to;
|
|
69
|
-
|
|
70
|
-
const processTo = () => {
|
|
71
|
-
const lastAccRange = acc.result[acc.result.length - 1];
|
|
72
|
-
|
|
73
|
-
if (acc.to < range.from) {
|
|
74
|
-
lastAccRange.to = acc.to;
|
|
75
|
-
acc.to = null;
|
|
76
|
-
acc.result = [...acc.result, range];
|
|
77
|
-
} else if (isIncludesTo) {
|
|
78
|
-
lastAccRange.to = acc.to;
|
|
79
|
-
acc.result = [
|
|
80
|
-
...acc.result,
|
|
81
|
-
{
|
|
82
|
-
from: Math.round10(acc.to + step, -1 * decimalPlaces),
|
|
83
|
-
to: range.to,
|
|
84
|
-
},
|
|
85
|
-
];
|
|
86
|
-
acc.to = null;
|
|
87
|
-
} else if (acc.to === range.to) {
|
|
88
|
-
lastAccRange.to = acc.to;
|
|
89
|
-
acc.to = null;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
if (!acc.from && !acc.to) acc.result = [...acc.result, range];
|
|
94
|
-
else if (!acc.from && acc.to) processTo();
|
|
95
|
-
else if (acc.from && acc.to) {
|
|
96
|
-
if (acc.from <= range.from) {
|
|
97
|
-
acc.result = [...acc.result, { from: acc.from }];
|
|
98
|
-
acc.from = null;
|
|
99
|
-
processTo();
|
|
100
|
-
} else if (isIncludesFrom) {
|
|
101
|
-
acc.result = [
|
|
102
|
-
...acc.result,
|
|
103
|
-
{
|
|
104
|
-
from: range.from,
|
|
105
|
-
to: Math.round10(acc.from - step, -1 * decimalPlaces),
|
|
106
|
-
},
|
|
107
|
-
{ from: acc.from },
|
|
108
|
-
];
|
|
109
|
-
acc.from = null;
|
|
110
|
-
processTo();
|
|
111
|
-
} else {
|
|
112
|
-
acc.result = [
|
|
113
|
-
...acc.result,
|
|
114
|
-
...(!isRangeMustBeIncludet ? [range] : []),
|
|
115
|
-
{
|
|
116
|
-
from: Math.round10(acc.from, -1 * decimalPlaces),
|
|
117
|
-
to: Math.round10(acc.to, -1 * decimalPlaces),
|
|
118
|
-
},
|
|
119
|
-
];
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return acc;
|
|
123
|
-
},
|
|
124
|
-
{ from, to, result: [] },
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
const result = resultOfProcessAddingRange.result;
|
|
128
|
-
if (!result[result.length - 1].to) result[result.length - 1].to = to;
|
|
129
|
-
return result;
|
|
130
|
-
};
|
|
1
|
+
function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,n=Array(r);o<r;o++)n[o]=t[o];return n}function r(r){return function(r){if(Array.isArray(r))return t(r)}(r)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||function(r,o){if(r){if("string"==typeof r)return t(r,void 0);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(r,o)}}(r)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,r,o){return void 0===o||0===Number(o)?Math[t](r):(r=Number(r),o=Number(o),isNaN(r)||"number"!=typeof o||o%1!=0)?NaN:Number((r=(r=Math[t](Number((r=r.toString().split("e"))[0]+"e"+(r[1]?Number(r[1])-o:-o)))).toString().split("e"))[0]+"e"+(r[1]?Number(r[1])+o:o))}Math.round10||(Math.round10=function(t,r){return o("round",t,r)}),Math.floor10||(Math.floor10=function(t,r){return o("floor",t,r)}),Math.ceil10||(Math.ceil10=function(t,r){return o("ceil",t,r)});export var addRangeDefault=function(t,o,n,e){if(!(null==n?void 0:n.length))return[{from:t,to:o}];var u=e?Math.pow(10,-1*e):1,f=n.reduce(function(t,o){var n=!!t.from&&o.from<t.from&&o.to>=t.from,f=!!t.to&&o.from<=t.to&&o.to>t.to,l=!!t.from&&!!t.to&&t.from<=o.from&&t.to>=o.to,a=function(){var n=t.result[t.result.length-1];t.to<o.from?(n.to=t.to,t.to=null,t.result=r(t.result).concat([o])):f?(n.to=t.to,t.result=r(t.result).concat([{from:Math.round10(t.to+u,-1*e),to:o.to}]),t.to=null):t.to===o.to&&(n.to=t.to,t.to=null)};return t.from||t.to?!t.from&&t.to?a():t.from&&t.to&&(t.from<=o.from?(t.result=r(t.result).concat([{from:t.from}]),t.from=null,a()):n?(t.result=r(t.result).concat([{from:o.from,to:Math.round10(t.from-u,-1*e)},{from:t.from}]),t.from=null,a()):t.result=r(t.result).concat(r(l?[]:[o]),[{from:Math.round10(t.from,-1*e),to:Math.round10(t.to,-1*e)}])):t.result=r(t.result).concat([o]),t},{from:t,to:o,result:[]}).result;return f[f.length-1].to||(f[f.length-1].to=o),f};
|
|
@@ -1,170 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* @param type: 'inputMask',
|
|
3
|
-
* @param maskPattern: 'DD.DD.DDDD',
|
|
4
|
-
* @param maskPatternPlaceholder: 'MM.DD.YYYY',
|
|
5
|
-
* @param usePatternPlaceholder: true,
|
|
6
|
-
* @param isNumericMobileKeyboard: true,
|
|
7
|
-
* @param blinkErrors: true,
|
|
8
|
-
* @param showErrors: false,
|
|
9
|
-
* @param autocomplete: 'bday',
|
|
10
|
-
* @param focusSelector: 'input',
|
|
11
|
-
*/
|
|
12
|
-
const DATE_PRESET = {
|
|
13
|
-
type: "inputMask",
|
|
14
|
-
maskPattern: "DD.DD.DDDD",
|
|
15
|
-
maskPatternPlaceholder: "MM.DD.YYYY",
|
|
16
|
-
usePatternPlaceholder: true,
|
|
17
|
-
isNumericMobileKeyboard: true,
|
|
18
|
-
blinkErrors: true,
|
|
19
|
-
showErrors: false,
|
|
20
|
-
autocomplete: "bday",
|
|
21
|
-
focusSelector: "input",
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @param type: 'inputMask',
|
|
26
|
-
* @param maskPattern: 'DDDDD',
|
|
27
|
-
* @param maskPlaceholder: 'X',
|
|
28
|
-
* @param isNumericMobileKeyboard: true,
|
|
29
|
-
* @param blinkErrors: true,
|
|
30
|
-
* @param showErrors: false,
|
|
31
|
-
* @param focusSelector: 'input',
|
|
32
|
-
* @param autocomplete: 'postal-code',
|
|
33
|
-
* @param rules: 'fieldZip'
|
|
34
|
-
*/
|
|
35
|
-
const ZIP_PRESET = {
|
|
36
|
-
type: "inputMask",
|
|
37
|
-
focusSelector: "input",
|
|
38
|
-
maskPattern: "DDDDD",
|
|
39
|
-
maskPlaceholder: "X",
|
|
40
|
-
isNumericMobileKeyboard: true,
|
|
41
|
-
blinkErrors: true,
|
|
42
|
-
showErrors: false,
|
|
43
|
-
autocomplete: "postal-code",
|
|
44
|
-
rules: "fieldZip",
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* @param type: 'inputMask',
|
|
49
|
-
* @param maskPattern: 'DDDDDDDDD',
|
|
50
|
-
* @param maskPlaceholder: 'X',
|
|
51
|
-
* @param isNumericMobileKeyboard: true,
|
|
52
|
-
* @param blinkErrors: true,
|
|
53
|
-
* @param showErrors: false,
|
|
54
|
-
* @param focusSelector: 'input',
|
|
55
|
-
*/
|
|
56
|
-
const SSN_PRESET = {
|
|
57
|
-
type: "inputMask",
|
|
58
|
-
maskPattern: "DDDDDDDDD",
|
|
59
|
-
maskPlaceholder: "X",
|
|
60
|
-
focusSelector: "input",
|
|
61
|
-
isNumericMobileKeyboard: true,
|
|
62
|
-
blinkErrors: true,
|
|
63
|
-
showErrors: false,
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* @param type: 'inputMask',
|
|
68
|
-
* @param maskPattern: 'DDD-DDD-DDDD',
|
|
69
|
-
* @param maskPlaceholder: 'X',
|
|
70
|
-
* @param isNumericMobileKeyboard: true,
|
|
71
|
-
* @param blinkErrors: true,
|
|
72
|
-
* @param showErrors: false,
|
|
73
|
-
* @param focusSelector: 'input',
|
|
74
|
-
* @param autocomplete: 'tel-national',
|
|
75
|
-
*/
|
|
76
|
-
const MOBILE_PHONE_PRESET = {
|
|
77
|
-
type: "inputMask",
|
|
78
|
-
// maskPattern: 'DDD-DDD-DDDD',
|
|
79
|
-
maskPattern: "(DDD) DDD-DDDD",
|
|
80
|
-
maskPlaceholder: "X",
|
|
81
|
-
focusSelector: "input",
|
|
82
|
-
isNumericMobileKeyboard: true,
|
|
83
|
-
blinkErrors: true,
|
|
84
|
-
showErrors: false,
|
|
85
|
-
autocomplete: "tel-national",
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* @param type: 'inputMask3',
|
|
90
|
-
* @param maskPattern: 'DDDD',
|
|
91
|
-
* @param maskPlaceholder: 'X',
|
|
92
|
-
* @param isNumericMobileKeyboard: true,
|
|
93
|
-
* @param blinkErrors: true,
|
|
94
|
-
* @param showErrors: false,
|
|
95
|
-
*/
|
|
96
|
-
const SHORT_SSN_PRESET = {
|
|
97
|
-
type: "inputMask3",
|
|
98
|
-
maskPattern: "DDDD",
|
|
99
|
-
maskPlaceholder: "X",
|
|
100
|
-
focusSelector: "input",
|
|
101
|
-
isNumericMobileKeyboard: true,
|
|
102
|
-
blinkErrors: true,
|
|
103
|
-
showErrors: false,
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* @param type: 'inputMask',
|
|
108
|
-
* @param maskPattern: 'DDDDDDDDD',
|
|
109
|
-
* @param maskPlaceholder: 'X',
|
|
110
|
-
* @param isNumericMobileKeyboard: true,
|
|
111
|
-
* @param blinkErrors: true,
|
|
112
|
-
* @param showErrors: false,
|
|
113
|
-
*/
|
|
114
|
-
const ABA_PRESET = {
|
|
115
|
-
type: "inputMask",
|
|
116
|
-
maskPattern: "DDDDDDDDD",
|
|
117
|
-
maskPlaceholder: "X",
|
|
118
|
-
isNumericMobileKeyboard: true,
|
|
119
|
-
blinkErrors: true,
|
|
120
|
-
showErrors: false,
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* @param type: 'inputMask',
|
|
125
|
-
* @param maskPattern: 'MM/YY',
|
|
126
|
-
* @param maskPatternPlaceholder: 'MM/YY',
|
|
127
|
-
* @param usePatternPlaceholder: true,
|
|
128
|
-
* @param isNumericMobileKeyboard: true,
|
|
129
|
-
* @param blinkErrors: true,
|
|
130
|
-
* @param showErrors: false,
|
|
131
|
-
* @param focusSelector: 'input',
|
|
132
|
-
*/
|
|
133
|
-
const CC_EXPIRATION_DATE = {
|
|
134
|
-
type: "inputMask",
|
|
135
|
-
maskPattern: "MM/YY",
|
|
136
|
-
maskPatternPlaceholder: "MM/YY",
|
|
137
|
-
usePatternPlaceholder: true,
|
|
138
|
-
isNumericMobileKeyboard: true,
|
|
139
|
-
blinkErrors: true,
|
|
140
|
-
showErrors: false,
|
|
141
|
-
focusSelector: "input",
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* @param type: 'inputMask',
|
|
146
|
-
* @param maskPattern: 'DDDDDDDDDD',
|
|
147
|
-
* @param maskPlaceholder: 'X',
|
|
148
|
-
* @param isNumericMobileKeyboard: true,
|
|
149
|
-
* @param blinkErrors: true,
|
|
150
|
-
* @param showErrors: false,
|
|
151
|
-
*/
|
|
152
|
-
const BANK_ACCOUNT = {
|
|
153
|
-
type: "inputMask",
|
|
154
|
-
maskPattern: "DDDDDDDDDD",
|
|
155
|
-
maskPlaceholder: "X",
|
|
156
|
-
isNumericMobileKeyboard: true,
|
|
157
|
-
blinkErrors: true,
|
|
158
|
-
showErrors: false,
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
export const MASK_PRESETS = {
|
|
162
|
-
BANK_ACCOUNT,
|
|
163
|
-
CC_EXPIRATION_DATE,
|
|
164
|
-
DATE_PRESET,
|
|
165
|
-
ZIP_PRESET,
|
|
166
|
-
SSN_PRESET,
|
|
167
|
-
MOBILE_PHONE_PRESET,
|
|
168
|
-
SHORT_SSN_PRESET,
|
|
169
|
-
ABA_PRESET,
|
|
170
|
-
};
|
|
1
|
+
export var MASK_PRESETS={BANK_ACCOUNT:{type:"inputMask",maskPattern:"DDDDDDDDDD",maskPlaceholder:"X",isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1},CC_EXPIRATION_DATE:{type:"inputMask",maskPattern:"MM/YY",maskPatternPlaceholder:"MM/YY",usePatternPlaceholder:!0,isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1,focusSelector:"input"},DATE_PRESET:{type:"inputMask",maskPattern:"DD.DD.DDDD",maskPatternPlaceholder:"MM.DD.YYYY",usePatternPlaceholder:!0,isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1,autocomplete:"bday",focusSelector:"input"},ZIP_PRESET:{type:"inputMask",focusSelector:"input",maskPattern:"DDDDD",maskPlaceholder:"X",isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1,autocomplete:"postal-code",rules:"fieldZip"},SSN_PRESET:{type:"inputMask",maskPattern:"DDDDDDDDD",maskPlaceholder:"X",focusSelector:"input",isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1},MOBILE_PHONE_PRESET:{type:"inputMask",maskPattern:"(DDD) DDD-DDDD",maskPlaceholder:"X",focusSelector:"input",isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1,autocomplete:"tel-national"},SHORT_SSN_PRESET:{type:"inputMask3",maskPattern:"DDDD",maskPlaceholder:"X",focusSelector:"input",isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1},ABA_PRESET:{type:"inputMask",maskPattern:"DDDDDDDDD",maskPlaceholder:"X",isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1}};
|
|
@@ -1,60 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export const NAME_SYMBOLS_EXCLUDER = {
|
|
4
|
-
/**
|
|
5
|
-
* @name fieldChangesMiddleware
|
|
6
|
-
* @description Обрабатывает входящую строку, удаляет все символы, которые не являются
|
|
7
|
-
* алфавитными, дефисами, апострофами или пробелами. Не дает ввести дубли символов дефиса или апострофа.
|
|
8
|
-
* Режет спецсимволы, если после них не идет буква.
|
|
9
|
-
*
|
|
10
|
-
* @param {string} value - Входная строка для обработки.
|
|
11
|
-
* @returns {string} - Обработанная строка.
|
|
12
|
-
*/
|
|
13
|
-
fieldChangesMiddleware: (value) => {
|
|
14
|
-
// remove invalid characters
|
|
15
|
-
const invalidCharacters = new RegExp(/[^a-zA-Z-\s']/g);
|
|
16
|
-
// handle any two '-' or ''' should not be side by side
|
|
17
|
-
const sideBySideHyphenOrApostrophe = new RegExp(/['-]{2,}/g);
|
|
18
|
-
// replace sequence of spaces with single space
|
|
19
|
-
const multipleSpaces = new RegExp(/\s{2,}/g);
|
|
20
|
-
// remove '-' or ''' if they are followed by a space
|
|
21
|
-
const beforeSpace = new RegExp(/['-](?=\s)/g);
|
|
22
|
-
|
|
23
|
-
const sanitizedValue = getSafelyValue(value)
|
|
24
|
-
.replace(invalidCharacters, "")
|
|
25
|
-
.replace(sideBySideHyphenOrApostrophe, "")
|
|
26
|
-
.replace(multipleSpaces, " ")
|
|
27
|
-
.replace(beforeSpace, "");
|
|
28
|
-
|
|
29
|
-
return sanitizedValue;
|
|
30
|
-
},
|
|
31
|
-
blurTrim: {
|
|
32
|
-
trimStart: true,
|
|
33
|
-
trimEnd: true,
|
|
34
|
-
characters: ["-", "'", " "],
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export const ONLY_STRING_AND_DASH = {
|
|
39
|
-
/**
|
|
40
|
-
* @name fieldChangesMiddleware
|
|
41
|
-
* @description Обрабатывает входную строку, удаляет все неалфавитные символы, заменяет двойные дефисы на одинарные
|
|
42
|
-
* и удаляет все дефисы в начале или конце строки.
|
|
43
|
-
* @param {string} value - входная строка для обработки
|
|
44
|
-
* @returns {string} обработанная строка
|
|
45
|
-
*/
|
|
46
|
-
fieldChangesMiddleware: (value) => {
|
|
47
|
-
const nonAlphabeticAndNotSingleDash = new RegExp(/[^a-zA-Z-]|--/gi);
|
|
48
|
-
const consecutiveDashes = new RegExp(/-+/g);
|
|
49
|
-
|
|
50
|
-
const sanitizedInput = getSafelyValue(value);
|
|
51
|
-
|
|
52
|
-
return sanitizedInput
|
|
53
|
-
.replace(nonAlphabeticAndNotSingleDash, "")
|
|
54
|
-
.replace(consecutiveDashes, "-");
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
export const INPUT_PRESETS = {
|
|
58
|
-
NAME_SYMBOLS_EXCLUDER,
|
|
59
|
-
ONLY_STRING_AND_DASH,
|
|
60
|
-
};
|
|
1
|
+
import{getSafelyValue as e}from"../fieldValueFormatters";export var NAME_SYMBOLS_EXCLUDER={fieldChangesMiddleware:function(r){var a=new RegExp(/[^a-zA-Z-\s']/g),E=new RegExp(/['-]{2,}/g),p=new RegExp(/\s{2,}/g),_=new RegExp(/['-](?=\s)/g);return e(r).replace(a,"").replace(E,"").replace(p," ").replace(_,"")},blurTrim:{trimStart:!0,trimEnd:!0,characters:["-","'"," "]}};export var ONLY_STRING_AND_DASH={fieldChangesMiddleware:function(r){var a=new RegExp(/[^a-zA-Z-]|--/gi),E=new RegExp(/-+/g);return e(r).replace(a,"").replace(E,"-")}};export var INPUT_PRESETS={NAME_SYMBOLS_EXCLUDER:NAME_SYMBOLS_EXCLUDER,ONLY_STRING_AND_DASH:ONLY_STRING_AND_DASH};
|
|
@@ -1,45 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export const ALL_KEYBOARD_TYPES = {
|
|
3
|
-
numeric: { inputMode: "decimal" },
|
|
4
|
-
email: { inputMode: "email" },
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
//? Например:
|
|
8
|
-
/*
|
|
9
|
-
const constructor = [
|
|
10
|
-
...
|
|
11
|
-
{
|
|
12
|
-
key: 'someField',
|
|
13
|
-
...
|
|
14
|
-
attributesOfNativeInput: {
|
|
15
|
-
'data-testId': `someFieldTestId-${someId}`,
|
|
16
|
-
...ALL_KEYBOARD_TYPES.numeric
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
...
|
|
20
|
-
];
|
|
21
|
-
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
// *****************************
|
|
25
|
-
//? Удобно использовать для расширения объекта филда, если в филде более не добавляются другие атрибуты
|
|
26
|
-
//? Например:
|
|
27
|
-
/*
|
|
28
|
-
const constructor = [
|
|
29
|
-
...
|
|
30
|
-
{
|
|
31
|
-
key: 'someField',
|
|
32
|
-
...NUMERIC_KEYBOARD
|
|
33
|
-
...
|
|
34
|
-
}
|
|
35
|
-
...
|
|
36
|
-
];
|
|
37
|
-
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
export const NUMERIC_KEYBOARD = {
|
|
41
|
-
attributesOfNativeInput: ALL_KEYBOARD_TYPES.numeric,
|
|
42
|
-
};
|
|
43
|
-
export const EMAIL_KEYBOARD = {
|
|
44
|
-
attributesOfNativeInput: ALL_KEYBOARD_TYPES.email,
|
|
45
|
-
};
|
|
1
|
+
export var ALL_KEYBOARD_TYPES={numeric:{inputMode:"decimal"},email:{inputMode:"email"}};export var NUMERIC_KEYBOARD={attributesOfNativeInput:ALL_KEYBOARD_TYPES.numeric};export var EMAIL_KEYBOARD={attributesOfNativeInput:ALL_KEYBOARD_TYPES.email};
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export const forgotSchema = yup.object().shape({
|
|
4
|
-
email: yup.string().email("Invalid email").required("E-mail is required"),
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
export const loginSchema = yup.object().shape({
|
|
8
|
-
email: yup.string().email("Invalid email").required("E-mail is required"),
|
|
9
|
-
password: yup
|
|
10
|
-
.string()
|
|
11
|
-
.required("No password provided")
|
|
12
|
-
.min(8, "Password is too short - should be 8 chars minimum")
|
|
13
|
-
.matches(/[a-zA-Z]/, "Password can only contain Latin letters"),
|
|
14
|
-
remember: yup.bool(),
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
export const registerSchema = yup.object().shape({
|
|
18
|
-
name: yup.string().required("Name is required"),
|
|
19
|
-
email: yup.string().email("Invalid email").required("E-mail is required"),
|
|
20
|
-
password: yup
|
|
21
|
-
.string()
|
|
22
|
-
.required("No password provided")
|
|
23
|
-
.min(8, "Password is too short - should be 8 chars minimum")
|
|
24
|
-
.matches(/[a-zA-Z]/, "Password can only contain Latin letters"),
|
|
25
|
-
confirmPassword: yup
|
|
26
|
-
.string()
|
|
27
|
-
.required("Confirm password")
|
|
28
|
-
.oneOf([yup.ref("password")], "Passwords must match"),
|
|
29
|
-
promo: yup.string(),
|
|
30
|
-
recaptcha: yup.bool().oneOf([true], "Field must be checked"),
|
|
31
|
-
});
|
|
1
|
+
import*as e from"yup";export var forgotSchema=e.object().shape({email:e.string().email("Invalid email").required("E-mail is required")});export var loginSchema=e.object().shape({email:e.string().email("Invalid email").required("E-mail is required"),password:e.string().required("No password provided").min(8,"Password is too short - should be 8 chars minimum").matches(/[a-zA-Z]/,"Password can only contain Latin letters"),remember:e.bool()});export var registerSchema=e.object().shape({name:e.string().required("Name is required"),email:e.string().email("Invalid email").required("E-mail is required"),password:e.string().required("No password provided").min(8,"Password is too short - should be 8 chars minimum").matches(/[a-zA-Z]/,"Password can only contain Latin letters"),confirmPassword:e.string().required("Confirm password").oneOf([e.ref("password")],"Passwords must match"),promo:e.string(),recaptcha:e.bool().oneOf([!0],"Field must be checked")});
|
|
@@ -1,17 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
const useBodyScrollLock = (isScrollBodyLocked) => {
|
|
4
|
-
useEffect(() => {
|
|
5
|
-
if (isScrollBodyLocked) {
|
|
6
|
-
document.body.style.overflow = "hidden";
|
|
7
|
-
} else {
|
|
8
|
-
document.body.style.overflow = "auto";
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
return () => {
|
|
12
|
-
document.body.style.overflow = "auto";
|
|
13
|
-
};
|
|
14
|
-
}, [isScrollBodyLocked]);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export default useBodyScrollLock;
|
|
1
|
+
import{useEffect as o}from"react";export default function(t){o(function(){return t?document.body.style.overflow="hidden":document.body.style.overflow="auto",function(){document.body.style.overflow="auto"}},[t])}
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export const useClickOutside = (ref, setOut, open) => {
|
|
4
|
-
function handleClickOutside(event) {
|
|
5
|
-
if (ref.current && !ref.current.contains(event.target)) {
|
|
6
|
-
setOut(open);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
document.addEventListener("mousedown", handleClickOutside);
|
|
11
|
-
return () => {
|
|
12
|
-
document.removeEventListener("mousedown", handleClickOutside);
|
|
13
|
-
};
|
|
14
|
-
}, [ref]);
|
|
15
|
-
};
|
|
1
|
+
import{useEffect as n}from"react";export var useClickOutside=function(e,t,r){var o=function(n){e.current&&!e.current.contains(n.target)&&t(r)};n(function(){return document.addEventListener("mousedown",o),function(){document.removeEventListener("mousedown",o)}},[e])};
|
|
@@ -1,17 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export const useDebounce = ({ searchValue, delay }) => {
|
|
4
|
-
const [debouncedValue, setDebouncedValue] = useState(searchValue);
|
|
5
|
-
|
|
6
|
-
useEffect(() => {
|
|
7
|
-
const handler = setTimeout(() => {
|
|
8
|
-
setDebouncedValue(searchValue);
|
|
9
|
-
}, delay);
|
|
10
|
-
|
|
11
|
-
return () => {
|
|
12
|
-
clearTimeout(handler);
|
|
13
|
-
};
|
|
14
|
-
}, [searchValue, delay]);
|
|
15
|
-
|
|
16
|
-
return debouncedValue;
|
|
17
|
-
};
|
|
1
|
+
function r(r,t){(null==t||t>r.length)&&(t=r.length);for(var n=0,e=Array(t);n<t;n++)e[n]=r[n];return e}import{useEffect as t,useState as n}from"react";export var useDebounce=function(e){var o,a=e.searchValue,u=e.delay,i=(o=n(a),function(r){if(Array.isArray(r))return r}(o)||function(r,t){var n,e,o=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=o){var a=[],u=!0,i=!1;try{for(o=o.call(r);!(u=(n=o.next()).done)&&(a.push(n.value),a.length!==t);u=!0);}catch(r){i=!0,e=r}finally{try{u||null==o.return||o.return()}finally{if(i)throw e}}return a}}(o,2)||function(t,n){if(t){if("string"==typeof t)return r(t,2);var e=Object.prototype.toString.call(t).slice(8,-1);if("Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return r(t,n)}}(o,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=i[0],c=i[1];return t(function(){var r=setTimeout(function(){c(a)},u);return function(){clearTimeout(r)}},[a,u]),l};
|