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,193 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import cn from "classnames";
|
|
4
|
-
import { Info } from "react-feather";
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
clone,
|
|
8
|
-
getBase64,
|
|
9
|
-
getUniqueFileExtensions,
|
|
10
|
-
} from "../../../Functions/utils";
|
|
11
|
-
import Alert from "../../UI/Alert/Alert";
|
|
12
|
-
import FileLoaderLocal from "../FileLoaderLocal/FileLoaderLocal";
|
|
13
|
-
|
|
14
|
-
import "./FileLoaderLocalGroup.scss";
|
|
15
|
-
|
|
16
|
-
const DEFAULT_LABEL_PREFIX = "Please attach";
|
|
17
|
-
const MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
18
|
-
|
|
19
|
-
const FileLoaderLocalGroup = ({
|
|
20
|
-
className,
|
|
21
|
-
groupsArray = [],
|
|
22
|
-
isSingleGroup,
|
|
23
|
-
onChange,
|
|
24
|
-
labelPrefix = DEFAULT_LABEL_PREFIX,
|
|
25
|
-
testId = "file-loader-local-group",
|
|
26
|
-
alertText,
|
|
27
|
-
}) => {
|
|
28
|
-
const [groups, setGroups] = useState(clone(groupsArray));
|
|
29
|
-
|
|
30
|
-
const getNewFile = (group) => {
|
|
31
|
-
return {
|
|
32
|
-
id: isNaN(group.files?.at(-1).id + 1) ? 1 : group.files?.at(-1).id + 1,
|
|
33
|
-
value: "",
|
|
34
|
-
base64: "",
|
|
35
|
-
error: "",
|
|
36
|
-
accept: group.accept || ".jpg, .jpeg, .png, .pdf",
|
|
37
|
-
maxItemSizeBytes: group.maxItemSizeBytes ?? MAX_FILE_SIZE,
|
|
38
|
-
isRequired: group?.isRequired || false,
|
|
39
|
-
fieldKey: isNaN(group.files?.at(-1).id + 1) ? 1 : group.files?.at(-1).id + 1,
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const generateUniqueFileName = (files, name) => {
|
|
44
|
-
let fileName = name;
|
|
45
|
-
const [nameWithoutExtension, extension] = name.split(/(?=\.[^.]+$)/);
|
|
46
|
-
let count = 1;
|
|
47
|
-
|
|
48
|
-
while (files.some(file => file.value === fileName)) {
|
|
49
|
-
fileName = `${nameWithoutExtension}(${count})${extension}`;
|
|
50
|
-
count += 1;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
return fileName;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
const mergedGroups = groupsArray?.map((group) => {
|
|
58
|
-
return {
|
|
59
|
-
...group,
|
|
60
|
-
files: [getNewFile(group)],
|
|
61
|
-
};
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
setGroups(mergedGroups);
|
|
65
|
-
}, []);
|
|
66
|
-
|
|
67
|
-
const handle = {
|
|
68
|
-
change: ({ e, groupId, name, id, error, valueExtension, file }) => {
|
|
69
|
-
const currentGroup = groups?.find(
|
|
70
|
-
(group) => group.groupId === groupId.toString(),
|
|
71
|
-
);
|
|
72
|
-
const files = currentGroup?.files;
|
|
73
|
-
const changedField = files.find((item) => Number(item.id) === Number(id));
|
|
74
|
-
|
|
75
|
-
if (error) {
|
|
76
|
-
changedField.value = name;
|
|
77
|
-
changedField.error = error;
|
|
78
|
-
setGroups([...groups]);
|
|
79
|
-
onChange(groups);
|
|
80
|
-
} else if (name && !error) {
|
|
81
|
-
const uniqueFileName = generateUniqueFileName(files, name);
|
|
82
|
-
getBase64(file)
|
|
83
|
-
.then((result) => {
|
|
84
|
-
changedField.value = uniqueFileName;
|
|
85
|
-
changedField.base64 = result;
|
|
86
|
-
changedField.error = "";
|
|
87
|
-
|
|
88
|
-
const oldDataWithNewFile = groups?.map((group) => {
|
|
89
|
-
if (group?.groupId === groupId.toString() && isSingleGroup) {
|
|
90
|
-
return {
|
|
91
|
-
...group,
|
|
92
|
-
files: [...group.files],
|
|
93
|
-
};
|
|
94
|
-
} else if (
|
|
95
|
-
group?.groupId === groupId.toString() &&
|
|
96
|
-
group.files.length < 10 &&
|
|
97
|
-
!isSingleGroup
|
|
98
|
-
) {
|
|
99
|
-
return {
|
|
100
|
-
...group,
|
|
101
|
-
files: [
|
|
102
|
-
...group.files,
|
|
103
|
-
{
|
|
104
|
-
...getNewFile(group),
|
|
105
|
-
isRequired: group.files.length > 1,
|
|
106
|
-
},
|
|
107
|
-
],
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
return group;
|
|
111
|
-
});
|
|
112
|
-
setGroups([...oldDataWithNewFile]);
|
|
113
|
-
onChange(oldDataWithNewFile);
|
|
114
|
-
})
|
|
115
|
-
.catch((e) => console.error(e));
|
|
116
|
-
} else {
|
|
117
|
-
const oldDataWithRemovedFile = groups?.map((group) => {
|
|
118
|
-
if (isSingleGroup && group?.groupId === groupId.toString()) {
|
|
119
|
-
return {
|
|
120
|
-
...group,
|
|
121
|
-
files: [{ ...getNewFile(group), value: "", base64: "" }],
|
|
122
|
-
};
|
|
123
|
-
} else if (group?.groupId === groupId.toString() && !isSingleGroup) {
|
|
124
|
-
return {
|
|
125
|
-
...group,
|
|
126
|
-
files: group.files.filter((item) => item.id !== id),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
return group;
|
|
130
|
-
});
|
|
131
|
-
setGroups([...oldDataWithRemovedFile]);
|
|
132
|
-
onChange(oldDataWithRemovedFile);
|
|
133
|
-
}
|
|
134
|
-
},
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
const getUniqueExts = (acceptExts) =>
|
|
138
|
-
getUniqueFileExtensions(acceptExts?.replace(/\./g, ""));
|
|
139
|
-
|
|
140
|
-
return groups?.map((group) => {
|
|
141
|
-
return (
|
|
142
|
-
<div
|
|
143
|
-
data-testid={testId}
|
|
144
|
-
key={group.groupId}
|
|
145
|
-
className={cn("file-loader-local-groups", className)}
|
|
146
|
-
>
|
|
147
|
-
<span className="file-loader-local-groups__label">
|
|
148
|
-
<div className="file-loader-local-groups__label-text">
|
|
149
|
-
{labelPrefix} {group?.groupTitleDescription}{" "}
|
|
150
|
-
<span className="file-loader-local-groups__label-extension">
|
|
151
|
-
({getUniqueExts(group?.accept)}):
|
|
152
|
-
</span>
|
|
153
|
-
</div>
|
|
154
|
-
</span>
|
|
155
|
-
|
|
156
|
-
{group?.alertText && (
|
|
157
|
-
<Alert
|
|
158
|
-
className="file-loader-local-groups__alert"
|
|
159
|
-
noDismiss
|
|
160
|
-
icon={<Info />}
|
|
161
|
-
message={group?.alertText}
|
|
162
|
-
/>
|
|
163
|
-
)}
|
|
164
|
-
<div className="file-loader-local-groups__item">
|
|
165
|
-
{group?.files?.map((file, index) => {
|
|
166
|
-
return (
|
|
167
|
-
<FileLoaderLocal
|
|
168
|
-
groupId={group?.groupId}
|
|
169
|
-
fieldKey={
|
|
170
|
-
file?.fieldKey
|
|
171
|
-
? `${file.fieldKey}:${group?.groupId}:${Math.random().toString().slice(-4)}`
|
|
172
|
-
: file?.id
|
|
173
|
-
}
|
|
174
|
-
key={file?.id || index}
|
|
175
|
-
id={file?.id || index}
|
|
176
|
-
error={file?.error}
|
|
177
|
-
label="Upload document"
|
|
178
|
-
accept={file?.accept}
|
|
179
|
-
value={file?.value}
|
|
180
|
-
maxItemSizeBytes={file?.maxItemSizeBytes}
|
|
181
|
-
onChange={(value) => handle.change(value, file?.id)}
|
|
182
|
-
isRequired={group.files?.length <= 1 || false}
|
|
183
|
-
isNoTrashIcon={group.files?.length <= 1 && !isSingleGroup}
|
|
184
|
-
/>
|
|
185
|
-
);
|
|
186
|
-
})}
|
|
187
|
-
</div>
|
|
188
|
-
</div>
|
|
189
|
-
);
|
|
190
|
-
});
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
export default FileLoaderLocalGroup;
|
|
1
|
+
function e(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function r(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}function t(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function n(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t,n,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var o=[],i=!0,a=!1;try{for(l=l.call(e);!(i=(t=l.next()).done)&&(o.push(t.value),!r||o.length!==r);i=!0);}catch(e){a=!0,n=e}finally{try{i||null==l.return||l.return()}finally{if(a)throw n}}return o}}(e,r)||o(e,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(r){return function(r){if(Array.isArray(r))return e(r)}(r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(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(r,t){if(r){if("string"==typeof r)return e(r,t);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 e(r,t)}}import{jsx as i,jsxs as a}from"react/jsx-runtime";import{useEffect as u,useState as c}from"react";import s from"classnames";import{Info as d}from"react-feather";import{clone as f,getBase64 as p,getUniqueFileExtensions as v}from"../../../Functions/utils";import m from"../../UI/Alert/Alert";import g from"../FileLoaderLocal/FileLoaderLocal";import"./FileLoaderLocalGroup.scss";export default function(e){var o=e.className,y=e.groupsArray,b=void 0===y?[]:y,h=e.isSingleGroup,O=e.onChange,j=e.labelPrefix,S=void 0===j?"Please attach":j,I=e.testId,x=void 0===I?"file-loader-local-group":I;e.alertText;var N=n(c(f(b)),2),P=N[0],w=N[1],A=function(e){var r,t,n,l,o;return{id:isNaN((null==(r=e.files)?void 0:r.at(-1).id)+1)?1:(null==(t=e.files)?void 0:t.at(-1).id)+1,value:"",base64:"",error:"",accept:e.accept||".jpg, .jpeg, .png, .pdf",maxItemSizeBytes:null!=(o=e.maxItemSizeBytes)?o:0xa00000,isRequired:(null==e?void 0:e.isRequired)||!1,fieldKey:isNaN((null==(n=e.files)?void 0:n.at(-1).id)+1)?1:(null==(l=e.files)?void 0:l.at(-1).id)+1}},_=function(e,r){for(var t=r,l=n(r.split(/(?=\.[^.]+$)/),2),o=l[0],i=l[1],a=1;e.some(function(e){return e.value===t});)t="".concat(o,"(").concat(a,")").concat(i),a+=1;return t};u(function(){w(null==b?void 0:b.map(function(e){return t(r({},e),{files:[A(e)]})}))},[]);var T={change:function(e){e.e;var n=e.groupId,o=e.name,i=e.id,a=e.error,u=(e.valueExtension,e.file),c=null==P?void 0:P.find(function(e){return e.groupId===n.toString()}),s=null==c?void 0:c.files,d=s.find(function(e){return Number(e.id)===Number(i)});if(a)d.value=o,d.error=a,w(l(P)),O(P);else if(o&&!a){var f=_(s,o);p(u).then(function(e){d.value=f,d.base64=e,d.error="";var o=null==P?void 0:P.map(function(e){return(null==e?void 0:e.groupId)===n.toString()&&h?t(r({},e),{files:l(e.files)}):(null==e?void 0:e.groupId)===n.toString()&&e.files.length<10&&!h?t(r({},e),{files:l(e.files).concat([t(r({},A(e)),{isRequired:e.files.length>1})])}):e});w(l(o)),O(o)}).catch(function(e){})}else{var v=null==P?void 0:P.map(function(e){return h&&(null==e?void 0:e.groupId)===n.toString()?t(r({},e),{files:[t(r({},A(e)),{value:"",base64:""})]}):(null==e?void 0:e.groupId)!==n.toString()||h?e:t(r({},e),{files:e.files.filter(function(e){return e.id!==i})})});w(l(v)),O(v)}}};return null==P?void 0:P.map(function(e){var r,t;return a("div",{"data-testid":x,className:s("file-loader-local-groups",o),children:[i("span",{className:"file-loader-local-groups__label",children:a("div",{className:"file-loader-local-groups__label-text",children:[S," ",null==e?void 0:e.groupTitleDescription," ",a("span",{className:"file-loader-local-groups__label-extension",children:["(",v(null==(t=null==e?void 0:e.accept)?void 0:t.replace(/\./g,"")),"):"]})]})}),(null==e?void 0:e.alertText)&&i(m,{className:"file-loader-local-groups__alert",noDismiss:!0,icon:i(d,{}),message:null==e?void 0:e.alertText}),i("div",{className:"file-loader-local-groups__item",children:null==e||null==(r=e.files)?void 0:r.map(function(r,t){var n,l;return i(g,{groupId:null==e?void 0:e.groupId,fieldKey:(null==r?void 0:r.fieldKey)?"".concat(r.fieldKey,":").concat(null==e?void 0:e.groupId,":").concat(Math.random().toString().slice(-4)):null==r?void 0:r.id,id:(null==r?void 0:r.id)||t,error:null==r?void 0:r.error,label:"Upload document",accept:null==r?void 0:r.accept,value:null==r?void 0:r.value,maxItemSizeBytes:null==r?void 0:r.maxItemSizeBytes,onChange:function(e){return T.change(e,null==r?void 0:r.id)},isRequired:(null==(n=e.files)?void 0:n.length)<=1,isNoTrashIcon:(null==(l=e.files)?void 0:l.length)<=1&&!h},(null==r?void 0:r.id)||t)})})]},e.groupId)})}
|
|
@@ -1,135 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import { Eye, EyeOff } from "react-feather";
|
|
4
|
-
|
|
5
|
-
import { getLimitedMask, setCarretToEnd } from "../../../Functions/utils";
|
|
6
|
-
import InputMask3 from "../InputMask3/InputMask3";
|
|
7
|
-
|
|
8
|
-
import "./FormattedRawSSN.scss";
|
|
9
|
-
|
|
10
|
-
const DEFAULT_SSN_MASK = "DDD-DD-DDDD";
|
|
11
|
-
const SIGNIFICANT_CHARACTERS = ["D"];
|
|
12
|
-
|
|
13
|
-
const FormattedRawSSN = ({
|
|
14
|
-
value = "",
|
|
15
|
-
onChange: onChangeProp = () => {},
|
|
16
|
-
testId = "formatted-raw-ssn",
|
|
17
|
-
|
|
18
|
-
// ! ВСЕ "пляшет" от fullSnnMask и significantChars
|
|
19
|
-
// Маска для полного snn (технически ограничений нет, НО нужно передавать то, что понимает InputMask3)
|
|
20
|
-
fullSnnMask = DEFAULT_SSN_MASK,
|
|
21
|
-
// Значащие символы в fullSnnMask
|
|
22
|
-
// Технически ограничений нет, НО нужно передавать
|
|
23
|
-
// - массив ОДИНОЧНЫХ символов
|
|
24
|
-
// - массив тех символов, которые правильно трактуются в InputMask3 (смотри InputMask3/config)
|
|
25
|
-
significantChars = SIGNIFICANT_CHARACTERS,
|
|
26
|
-
// Символ для маскировки
|
|
27
|
-
maskChar = "*",
|
|
28
|
-
// Инициализационное значение (сразу скрывать или нет)
|
|
29
|
-
isHiddenDefault = true,
|
|
30
|
-
// Максимальное значение ВВОДИМЫХ цифр
|
|
31
|
-
maxLen = 9, // ? Речь о значащих символах
|
|
32
|
-
// Сколько из ПЕРВЫХ вводимых нужно прятать при включении мода маскировки
|
|
33
|
-
countOfFirstDigitsToHide = 5, // ? Речь о значащих символах
|
|
34
|
-
// Статическая часть
|
|
35
|
-
postfix = "",
|
|
36
|
-
|
|
37
|
-
...args
|
|
38
|
-
}) => {
|
|
39
|
-
// ? Будем пользоваться своим (верхним относительно InputMask3) стейтом
|
|
40
|
-
// ? Это потребует отрисовки триггера "поверх" InputMask3.
|
|
41
|
-
const [isHidden, setIsHidden] = useState(isHiddenDefault);
|
|
42
|
-
const wrapperRef = useRef(null);
|
|
43
|
-
|
|
44
|
-
const onChange = (value) => {
|
|
45
|
-
const newValue = !value && value !== "" ? "" : value?.toString();
|
|
46
|
-
onChangeProp(newValue);
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// ? Пересчитываем маску с учетом переданного maxLen.
|
|
50
|
-
// ? Если maxLen меньше количества значащих символов в fullSnnMask, то маска корректно обрежется.
|
|
51
|
-
// ? Передаем опцию isOnlyMask: false, чтобы получить НЕ только новую маску, а еще и статистику.
|
|
52
|
-
// ? В этом случае приходит объект формата: { mask, countOfSignificantChars, countOfNotSignificantChars }
|
|
53
|
-
const infoAboutMask = getLimitedMask({
|
|
54
|
-
mask: fullSnnMask,
|
|
55
|
-
significantChars: significantChars,
|
|
56
|
-
limit: maxLen,
|
|
57
|
-
isOnlyMask: false,
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
// ? Расчитываем ИНДЕКС крайнего символа части маски, которая подлежит скрытию,
|
|
61
|
-
// ? исходя из countOfFirstDigitsToHide
|
|
62
|
-
const maxHiddenIndex = (() => {
|
|
63
|
-
// если не приводится к числу или ноль (передавать ноль лишено смысла)
|
|
64
|
-
if (
|
|
65
|
-
isNaN(Number(countOfFirstDigitsToHide)) ||
|
|
66
|
-
!Number(countOfFirstDigitsToHide)
|
|
67
|
-
)
|
|
68
|
-
return -1;
|
|
69
|
-
// если больше чем значимых символов
|
|
70
|
-
if (countOfFirstDigitsToHide > infoAboutMask.countOfSignificantChars)
|
|
71
|
-
return infoAboutMask.mask.length;
|
|
72
|
-
|
|
73
|
-
// ? Для расчетов получаем дополнительно корректно "обрезанную" маску (до уровня скрываемой части)
|
|
74
|
-
// ? на основе ранее полученной "обрезанной" по maxLen. Нам нужна НЕ сама маска, а статистика по ней.
|
|
75
|
-
// ? В частности - количество "незначащих" символов содержащихся в скрываемой части
|
|
76
|
-
const infoAboutMaskOfHidden = getLimitedMask({
|
|
77
|
-
mask: infoAboutMask.mask,
|
|
78
|
-
significantChars: significantChars,
|
|
79
|
-
limit: countOfFirstDigitsToHide,
|
|
80
|
-
isOnlyMask: false,
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
// ? Для InputMask3 maxHiddenIndex должен быть передан относительно длины ВСЕЙ применяемой маски (наша "обрезанная" по maxLen).
|
|
84
|
-
// ? Поэтому к количеству "скрываемых" символов добавляем количество "незначащих", входящих в скрываемую часть маски.
|
|
85
|
-
// ? Т.к. расчитываем НЕ длинну, а индекс - отнимаем 1
|
|
86
|
-
return (
|
|
87
|
-
countOfFirstDigitsToHide +
|
|
88
|
-
infoAboutMaskOfHidden.countOfNotSignificantChars -
|
|
89
|
-
1
|
|
90
|
-
);
|
|
91
|
-
})();
|
|
92
|
-
|
|
93
|
-
return (
|
|
94
|
-
<div data-testid={testId} className="formatted-raw-ssn" ref={wrapperRef}>
|
|
95
|
-
<InputMask3
|
|
96
|
-
{...args}
|
|
97
|
-
value={value}
|
|
98
|
-
onChange={onChange}
|
|
99
|
-
testId={`formattedRawSNN--input--key-${testId}`}
|
|
100
|
-
maskPattern={infoAboutMask.mask}
|
|
101
|
-
maskPlaceholder="X"
|
|
102
|
-
focusSelector="input"
|
|
103
|
-
isNumericMobileKeyboard={true}
|
|
104
|
-
blinkErrors={true}
|
|
105
|
-
showErrors={false}
|
|
106
|
-
withHiddenMode={true}
|
|
107
|
-
isValueHiddenDefault={isHiddenDefault}
|
|
108
|
-
hiddenChar={maskChar}
|
|
109
|
-
maxHiddenIndex={maxHiddenIndex}
|
|
110
|
-
isHide={isHidden}
|
|
111
|
-
/>
|
|
112
|
-
{postfix && (
|
|
113
|
-
<span
|
|
114
|
-
className="formatted-raw-ssn-postfix"
|
|
115
|
-
onClick={() => wrapperRef?.current?.querySelector("input")?.focus()}
|
|
116
|
-
>
|
|
117
|
-
{postfix}
|
|
118
|
-
</span>
|
|
119
|
-
)}
|
|
120
|
-
<span
|
|
121
|
-
className="formatted-raw-ssn-eye-holder"
|
|
122
|
-
onClick={() => setIsHidden(!isHidden)}
|
|
123
|
-
>
|
|
124
|
-
{" "}
|
|
125
|
-
{isHidden ? (
|
|
126
|
-
<Eye strokeWidth={1} className="password-icon" />
|
|
127
|
-
) : (
|
|
128
|
-
<EyeOff strokeWidth={1} className="password-icon" />
|
|
129
|
-
)}
|
|
130
|
-
</span>
|
|
131
|
-
</div>
|
|
132
|
-
);
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
export default FormattedRawSSN;
|
|
1
|
+
function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useRef as n,useState as i}from"react";import{Eye as o,EyeOff as a}from"react-feather";import{getLimitedMask as s}from"../../../Functions/utils";import l from"../InputMask3/InputMask3";import"./FormattedRawSSN.scss";var c=["D"];export default function(u){var f,d,m,p=u.value,y=u.onChange,b=void 0===y?function(){}:y,h=u.testId,O=void 0===h?"formatted-raw-ssn":h,v=u.fullSnnMask,g=u.significantChars,j=void 0===g?c:g,k=u.maskChar,w=u.isHiddenDefault,S=void 0===w||w,D=u.maxLen,C=u.countOfFirstDigitsToHide,P=void 0===C?5:C,x=u.postfix,N=void 0===x?"":x,I=function(t,r){if(null==t)return{};var e,n,i=function(t,r){if(null==t)return{};var e,n,i={},o=Object.keys(t);for(n=0;n<o.length;n++)e=o[n],r.indexOf(e)>=0||(i[e]=t[e]);return i}(t,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n<o.length;n++)e=o[n],!(r.indexOf(e)>=0)&&Object.prototype.propertyIsEnumerable.call(t,e)&&(i[e]=t[e])}return i}(u,["value","onChange","testId","fullSnnMask","significantChars","maskChar","isHiddenDefault","maxLen","countOfFirstDigitsToHide","postfix"]),M=(f=i(S),function(t){if(Array.isArray(t))return t}(f)||function(t,r){var e,n,i=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=i){var o=[],a=!0,s=!1;try{for(i=i.call(t);!(a=(e=i.next()).done)&&(o.push(e.value),o.length!==r);a=!0);}catch(t){s=!0,n=t}finally{try{a||null==i.return||i.return()}finally{if(s)throw n}}return o}}(f,2)||function(r,e){if(r){if("string"==typeof r)return t(r,2);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,e)}}(f,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.")}()),H=M[0],A=M[1],E=n(null),F=s({mask:void 0===v?"DDD-DD-DDDD":v,significantChars:j,limit:void 0===D?9:D,isOnlyMask:!1}),T=function(){if(isNaN(Number(P))||!Number(P))return -1;if(P>F.countOfSignificantChars)return F.mask.length;var t=s({mask:F.mask,significantChars:j,limit:P,isOnlyMask:!1});return P+t.countOfNotSignificantChars-1}();return e("div",{"data-testid":O,className:"formatted-raw-ssn",ref:E,children:[r(l,(d=function(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{},n=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.forEach(function(r){var n;n=e[r],r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n})}return t}({},I),m=m={value:void 0===p?"":p,onChange:function(t){b(t||""===t?null==t?void 0:t.toString():"")},testId:"formattedRawSNN--input--key-".concat(O),maskPattern:F.mask,maskPlaceholder:"X",focusSelector:"input",isNumericMobileKeyboard:!0,blinkErrors:!0,showErrors:!1,withHiddenMode:!0,isValueHiddenDefault:S,hiddenChar:void 0===k?"*":k,maxHiddenIndex:T,isHide:H},Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(m)):(function(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e})(Object(m)).forEach(function(t){Object.defineProperty(d,t,Object.getOwnPropertyDescriptor(m,t))}),d)),N&&r("span",{className:"formatted-raw-ssn-postfix",onClick:function(){var t,r;return null==E||null==(r=E.current)||null==(t=r.querySelector("input"))?void 0:t.focus()},children:N}),e("span",{className:"formatted-raw-ssn-eye-holder",onClick:function(){return A(!H)},children:[" ",H?r(o,{strokeWidth:1,className:"password-icon"}):r(a,{strokeWidth:1,className:"password-icon"})]})]})}
|
|
@@ -1,116 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Eye, EyeOff } from "react-feather";
|
|
4
|
-
|
|
5
|
-
import { setCarretToEnd } from "../../../Functions/utils";
|
|
6
|
-
import Input from "../Input/Input";
|
|
7
|
-
|
|
8
|
-
import "./FormattedRawSSN.scss";
|
|
9
|
-
|
|
10
|
-
const FormattedRawSSN = ({
|
|
11
|
-
value = "",
|
|
12
|
-
postfix = "",
|
|
13
|
-
onChange: onChangeProp = () => {},
|
|
14
|
-
maskChar = "*",
|
|
15
|
-
testId = "formatted-raw-ssn",
|
|
16
|
-
isHiddenDefault = true,
|
|
17
|
-
maxLen = 9,
|
|
18
|
-
...args
|
|
19
|
-
}) => {
|
|
20
|
-
const [SSN, setSSN] = useState(value?.substring(0, maxLen) ?? "");
|
|
21
|
-
const [isHidden, setIsHidden] = useState(isHiddenDefault);
|
|
22
|
-
const wrapperRef = useRef(null);
|
|
23
|
-
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
setSSN(value?.toString()?.substring(0, maxLen) ?? "");
|
|
26
|
-
}, [value]);
|
|
27
|
-
|
|
28
|
-
const onChange = (value) => {
|
|
29
|
-
if (!value && value !== "") return "";
|
|
30
|
-
|
|
31
|
-
if (value.replace(/-/g, "").length < SSN.length) {
|
|
32
|
-
const last = SSN.length - 1;
|
|
33
|
-
setSSN(SSN.slice(0, last));
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const numValue = value.replace(/\D/g, "");
|
|
38
|
-
let newSSN = "";
|
|
39
|
-
|
|
40
|
-
if (isHidden) {
|
|
41
|
-
if (SSN.length > 5) {
|
|
42
|
-
newSSN = SSN.slice(0, 5) + numValue;
|
|
43
|
-
} else {
|
|
44
|
-
newSSN = SSN + numValue;
|
|
45
|
-
}
|
|
46
|
-
} else {
|
|
47
|
-
newSSN = numValue;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (newSSN.length > maxLen) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
setSSN(newSSN);
|
|
54
|
-
};
|
|
55
|
-
const switchView = () => {
|
|
56
|
-
const input = wrapperRef?.current?.querySelector("input");
|
|
57
|
-
input?.focus();
|
|
58
|
-
setCarretToEnd(input);
|
|
59
|
-
setIsHidden(!isHidden);
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
const getFormatedValue = (v) => {
|
|
63
|
-
if (!v) return "";
|
|
64
|
-
|
|
65
|
-
v = v.slice(0, 11).replace(/-/g, "");
|
|
66
|
-
if (v.length <= 3) {
|
|
67
|
-
return v;
|
|
68
|
-
}
|
|
69
|
-
if (v.length > 3 && v.length <= 5) {
|
|
70
|
-
return `${v.slice(0, 3)}-${v.slice(3)}`;
|
|
71
|
-
}
|
|
72
|
-
if (v.length > 5) {
|
|
73
|
-
return `${v.slice(0, 3)}-${v.slice(3, 5)}-${v.slice(5)}`;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
const getMaskedValue = (v) => {
|
|
77
|
-
return isHidden
|
|
78
|
-
? v.slice(0, 7).replace(/[0-9]/g, maskChar).concat(v.slice(7))
|
|
79
|
-
: v;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
useEffect(() => {
|
|
83
|
-
if (SSN)
|
|
84
|
-
onChangeProp?.(
|
|
85
|
-
SSN.concat(SSN.length === maxLen ? postfix : "").replace(/-/g, ""),
|
|
86
|
-
);
|
|
87
|
-
}, [SSN]);
|
|
88
|
-
|
|
89
|
-
return (
|
|
90
|
-
<div data-testid={testId} className="formatted-raw-ssn" ref={wrapperRef}>
|
|
91
|
-
<Input
|
|
92
|
-
{...args}
|
|
93
|
-
value={getMaskedValue(getFormatedValue(SSN))}
|
|
94
|
-
onChange={onChange}
|
|
95
|
-
/>
|
|
96
|
-
{postfix && (
|
|
97
|
-
<span
|
|
98
|
-
className="formatted-raw-ssn-postfix"
|
|
99
|
-
onClick={() => wrapperRef?.current?.querySelector("input")?.focus()}
|
|
100
|
-
>
|
|
101
|
-
{postfix}
|
|
102
|
-
</span>
|
|
103
|
-
)}
|
|
104
|
-
<span className="formatted-raw-ssn-eye-holder" onClick={switchView}>
|
|
105
|
-
{" "}
|
|
106
|
-
{isHidden ? (
|
|
107
|
-
<Eye strokeWidth={1} className="password-icon" />
|
|
108
|
-
) : (
|
|
109
|
-
<EyeOff strokeWidth={1} className="password-icon" />
|
|
110
|
-
)}
|
|
111
|
-
</span>
|
|
112
|
-
</div>
|
|
113
|
-
);
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
export default FormattedRawSSN;
|
|
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(e,r){return function(t){if(Array.isArray(t))return t}(e)||function(t,e){var r,n,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var l=[],i=!0,c=!1;try{for(o=o.call(t);!(i=(r=o.next()).done)&&(l.push(r.value),!e||l.length!==e);i=!0);}catch(t){c=!0,n=t}finally{try{i||null==o.return||o.return()}finally{if(c)throw n}}return l}}(e,r)||function(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)}}(e,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}import{jsx as r,jsxs as n}from"react/jsx-runtime";import{useEffect as o,useRef as l,useState as i}from"react";import{Eye as c,EyeOff as a}from"react-feather";import{setCarretToEnd as u}from"../../../Functions/utils";import s from"../Input/Input";import"./FormattedRawSSN.scss";export default function(t){var f,p,d,m,y,g=t.value,b=void 0===g?"":g,v=t.postfix,h=void 0===v?"":v,O=t.onChange,j=void 0===O?function(){}:O,w=t.maskChar,S=t.testId,P=t.isHiddenDefault,x=t.maxLen,k=void 0===x?9:x,C=function(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},l=Object.keys(t);for(n=0;n<l.length;n++)r=l[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n<l.length;n++)r=l[n],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}(t,["value","postfix","onChange","maskChar","testId","isHiddenDefault","maxLen"]),I=e(i(null!=(y=null==b?void 0:b.substring(0,k))?y:""),2),D=I[0],A=I[1],N=e(i(void 0===P||P),2),E=N[0],q=N[1],F=l(null);return o(function(){var t,e;A(null!=(e=null==b||null==(t=b.toString())?void 0:t.substring(0,k))?e:"")},[b]),o(function(){D&&(null==j||j(D.concat(D.length===k?h:"").replace(/-/g,"")))},[D]),n("div",{"data-testid":void 0===S?"formatted-raw-ssn":S,className:"formatted-raw-ssn",ref:F,children:[r(s,(d=function(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}({},C),m=m={value:(p=(f=D)?(f=f.slice(0,11).replace(/-/g,"")).length<=3?f:f.length>3&&f.length<=5?"".concat(f.slice(0,3),"-").concat(f.slice(3)):f.length>5?"".concat(f.slice(0,3),"-").concat(f.slice(3,5),"-").concat(f.slice(5)):void 0:"",E?p.slice(0,7).replace(/[0-9]/g,void 0===w?"*":w).concat(p.slice(7)):p),onChange:function(t){if(!t&&""!==t)return"";if(t.replace(/-/g,"").length<D.length){var e=D.length-1;A(D.slice(0,e));return}var r=t.replace(/\D/g,""),n="";(n=E?D.length>5?D.slice(0,5)+r:D+r:r).length>k||A(n)}},Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(m)):(function(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r.push.apply(r,n)}return r})(Object(m)).forEach(function(t){Object.defineProperty(d,t,Object.getOwnPropertyDescriptor(m,t))}),d)),h&&r("span",{className:"formatted-raw-ssn-postfix",onClick:function(){var t,e;return null==F||null==(e=F.current)||null==(t=e.querySelector("input"))?void 0:t.focus()},children:h}),n("span",{className:"formatted-raw-ssn-eye-holder",onClick:function(){var t,e=null==F||null==(t=F.current)?void 0:t.querySelector("input");null==e||e.focus(),u(e),q(!E)},children:[" ",E?r(c,{strokeWidth:1,className:"password-icon"}):r(a,{strokeWidth:1,className:"password-icon"})]})]})}
|