intelicoreact 1.6.19 → 1.6.20

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.
Files changed (272) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +102 -1
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +89 -1
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +232 -1
  4. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +3 -1
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +101 -1
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +70 -1
  7. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +350 -1
  8. package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +3 -1
  9. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +177 -1
  10. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +3 -1
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +561 -1
  12. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +20 -1
  13. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +405 -1
  14. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +94 -1
  15. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +105 -1
  16. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +67 -1
  17. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +247 -1
  18. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +160 -1
  19. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +193 -1
  20. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +135 -1
  21. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +116 -1
  22. package/dist/Atomic/FormElements/Input/Input.js +467 -1
  23. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +161 -1
  24. package/dist/Atomic/FormElements/InputColor/InputColor.js +64 -1
  25. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +166 -1
  26. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +354 -1
  27. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +71 -1
  28. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +693 -1
  29. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +254 -1
  30. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +32 -1
  31. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +200 -1
  32. package/dist/Atomic/FormElements/InputLink/InputLink.js +99 -1
  33. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +37 -1
  34. package/dist/Atomic/FormElements/InputMask/InputMask.js +1214 -1
  35. package/dist/Atomic/FormElements/InputMask/config.js +15 -1
  36. package/dist/Atomic/FormElements/InputMask/functions.js +58 -1
  37. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +674 -1
  38. package/dist/Atomic/FormElements/InputMask2/config.js +15 -1
  39. package/dist/Atomic/FormElements/InputMask2/functions.js +58 -1
  40. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +766 -1
  41. package/dist/Atomic/FormElements/InputMask3/config.js +15 -1
  42. package/dist/Atomic/FormElements/InputMask3/functions.js +58 -1
  43. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +114 -1
  44. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +140 -1
  45. package/dist/Atomic/FormElements/Label/Label.js +82 -1
  46. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +506 -1
  47. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +45 -1
  48. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +331 -1
  49. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +66 -1
  50. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +80 -1
  51. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +64 -1
  52. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +54 -1
  53. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +183 -1
  54. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +209 -1
  55. package/dist/Atomic/FormElements/RangeList/RangeList.js +175 -1
  56. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +43 -1
  57. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +443 -1
  58. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +858 -1
  59. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +39 -1
  60. package/dist/Atomic/FormElements/Switcher/Switcher.js +59 -1
  61. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +50 -1
  62. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +47 -1
  63. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +96 -1
  64. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +40 -1
  65. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +64 -1
  66. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +170 -1
  67. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +202 -1
  68. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +67 -1
  69. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +115 -1
  70. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +826 -1
  71. package/dist/Atomic/FormElements/Text/Text.js +125 -1
  72. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +45 -1
  73. package/dist/Atomic/FormElements/Textarea/Textarea.js +80 -1
  74. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +176 -1
  75. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +62 -1
  76. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +127 -1
  77. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +220 -1
  78. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +83 -1
  79. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +82 -1
  80. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +101 -1
  81. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +29 -1
  82. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +113 -1
  83. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +30 -1
  84. package/dist/Atomic/Layout/Header/Header.js +85 -1
  85. package/dist/Atomic/Layout/Spinner/Spinner.js +39 -1
  86. package/dist/Atomic/UI/Accordion/Accordion.js +118 -1
  87. package/dist/Atomic/UI/Accordion/AccordionItem.js +181 -1
  88. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +238 -1
  89. package/dist/Atomic/UI/AccordionText/AccordionText.js +69 -1
  90. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +207 -1
  91. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +56 -1
  92. package/dist/Atomic/UI/Alert/Alert.js +72 -1
  93. package/dist/Atomic/UI/Arrow/Arrow.js +132 -1
  94. package/dist/Atomic/UI/Box/Box.js +52 -1
  95. package/dist/Atomic/UI/Button/Button.js +89 -1
  96. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +72 -1
  97. package/dist/Atomic/UI/Chart/Chart.js +172 -1
  98. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +95 -1
  99. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +80 -1
  100. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +188 -1
  101. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +335 -1
  102. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +43 -1
  103. package/dist/Atomic/UI/Chart/partial/utils.js +60 -1
  104. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +109 -1
  105. package/dist/Atomic/UI/DateTime/DateTime.js +57 -1
  106. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +44 -1
  107. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +15 -1
  108. package/dist/Atomic/UI/DoubleString/DoubleString.js +102 -1
  109. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +226 -1
  110. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +221 -1
  111. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +106 -1
  112. package/dist/Atomic/UI/Hint/Hint.js +193 -1
  113. package/dist/Atomic/UI/Hint/partials/_utils.js +51 -1
  114. package/dist/Atomic/UI/Modal/Modal.js +188 -1
  115. package/dist/Atomic/UI/Modal/ModalHOC.js +72 -1
  116. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +46 -1
  117. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +83 -1
  118. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +200 -1
  119. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +75 -1
  120. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +80 -1
  121. package/dist/Atomic/UI/NavLine/NavLine.js +293 -1
  122. package/dist/Atomic/UI/PageTitle/PageTitle.js +75 -1
  123. package/dist/Atomic/UI/PieChart/PieChart.js +42 -1
  124. package/dist/Atomic/UI/Price/Price.js +22 -1
  125. package/dist/Atomic/UI/PriceRange/PriceRange.js +36 -1
  126. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +71 -1
  127. package/dist/Atomic/UI/Status/Status.js +59 -1
  128. package/dist/Atomic/UI/Table/Partials/TdCell.js +87 -1
  129. package/dist/Atomic/UI/Table/Partials/TdHeader.js +38 -1
  130. package/dist/Atomic/UI/Table/Partials/TdRow.js +99 -1
  131. package/dist/Atomic/UI/Table/Partials/TdTitle.js +52 -1
  132. package/dist/Atomic/UI/Table/Table.js +63 -1
  133. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +80 -1
  134. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +28 -1
  135. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +13 -1
  136. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +53 -1
  137. package/dist/Atomic/UI/Tag/Tag.js +160 -1
  138. package/dist/Atomic/UI/TagList/TagList.js +251 -1
  139. package/dist/Atomic/UI/UserBox/UserBox.js +73 -1
  140. package/dist/Atomic/UI/WizardStepper/constructor.js +84 -1
  141. package/dist/Atomic/UI/WizardStepper/index.js +3 -1
  142. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +37 -1
  143. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +3 -1
  144. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +61 -1
  145. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +3 -1
  146. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +39 -1
  147. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +3 -1
  148. package/dist/Atomic/UI/WizardStepper/ui/icons.js +49 -1
  149. package/dist/Atomic/UI/WizardStepper/ui/index.js +3 -1
  150. package/dist/Classes/AbortableFetch.js +454 -1
  151. package/dist/Classes/AnimatedHandler.js +47 -1
  152. package/dist/Classes/RESTAPI/index.js +228 -1
  153. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +457 -1
  154. package/dist/Classes/RESTAPI/partials/ApiBase.js +48 -1
  155. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +112 -1
  156. package/dist/Classes/RESTAPI/partials/ApiUtils.js +189 -1
  157. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +252 -1
  158. package/dist/Classes/RESTAPI/partials/Utils.js +92 -1
  159. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +3 -1
  160. package/dist/Classes/RESTAPI/partials/_utils.js +197 -1
  161. package/dist/Constants/index.constants.js +78 -1
  162. package/dist/Functions/Portal.js +22 -1
  163. package/dist/Functions/customEventListener.js +96 -1
  164. package/dist/Functions/dateTime.js +149 -1
  165. package/dist/Functions/fieldValueFormatters.js +405 -1
  166. package/dist/Functions/guards/assertions.js +66 -1
  167. package/dist/Functions/guards/safeValue.js +30 -1
  168. package/dist/Functions/guards/typeGuards.js +116 -1
  169. package/dist/Functions/hooks/useFormFieldsChangesManager.js +95 -1
  170. package/dist/Functions/locale/createTranslator.js +32 -1
  171. package/dist/Functions/operations.js +130 -1
  172. package/dist/Functions/presets/inputMaskPresets.js +170 -1
  173. package/dist/Functions/presets/inputPresets.js +60 -1
  174. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +45 -1
  175. package/dist/Functions/schemas.js +31 -1
  176. package/dist/Functions/useBodyScrollLock.js +17 -1
  177. package/dist/Functions/useClickOutside.js +15 -1
  178. package/dist/Functions/useDebounce.js +17 -1
  179. package/dist/Functions/useFieldFocus.js +84 -1
  180. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +39 -1
  181. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +159 -1
  182. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +78 -1
  183. package/dist/Functions/useFormTools/functions/General.js +134 -1
  184. package/dist/Functions/useFormTools/functions/RenderFields.js +111 -1
  185. package/dist/Functions/useFormTools/functions/usePrevious.js +12 -1
  186. package/dist/Functions/useFormTools/index.js +778 -1
  187. package/dist/Functions/useInputHighlightError.js +67 -1
  188. package/dist/Functions/useIsMobile/useIsMobile.js +53 -1
  189. package/dist/Functions/useKeyPress/useHandleKeyPress.js +21 -1
  190. package/dist/Functions/useKeyPress/useKeyPress.js +75 -1
  191. package/dist/Functions/useLocalStorage.js +34 -1
  192. package/dist/Functions/useLocationParams.js +27 -1
  193. package/dist/Functions/useMediaQuery.js +17 -1
  194. package/dist/Functions/useMetaInfo.js +43 -1
  195. package/dist/Functions/useMouseUpOutside.js +16 -1
  196. package/dist/Functions/useOnlineStatus.js +29 -1
  197. package/dist/Functions/usePasswordChecker.js +110 -1
  198. package/dist/Functions/usePrevious.js +12 -1
  199. package/dist/Functions/useResize.js +31 -1
  200. package/dist/Functions/useScrollTo.js +17 -1
  201. package/dist/Functions/useToggle.js +17 -1
  202. package/dist/Functions/utils.js +522 -1
  203. package/dist/Langs.js +168 -1
  204. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +21 -1
  205. package/dist/Molecular/CustomIcons/components/AlertCircle.js +23 -1
  206. package/dist/Molecular/CustomIcons/components/AppStore.js +29 -1
  207. package/dist/Molecular/CustomIcons/components/Arrow.js +32 -1
  208. package/dist/Molecular/CustomIcons/components/ArrowDown.js +17 -1
  209. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +22 -1
  210. package/dist/Molecular/CustomIcons/components/ArrowRight.js +22 -1
  211. package/dist/Molecular/CustomIcons/components/ArrowUp.js +17 -1
  212. package/dist/Molecular/CustomIcons/components/Bell.js +15 -1
  213. package/dist/Molecular/CustomIcons/components/Button.js +12 -1
  214. package/dist/Molecular/CustomIcons/components/Campaigns.js +16 -1
  215. package/dist/Molecular/CustomIcons/components/Check.js +14 -1
  216. package/dist/Molecular/CustomIcons/components/Check2.js +12 -1
  217. package/dist/Molecular/CustomIcons/components/ChevronDown.js +12 -1
  218. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +11 -1
  219. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +11 -1
  220. package/dist/Molecular/CustomIcons/components/ChevronRight.js +11 -1
  221. package/dist/Molecular/CustomIcons/components/ChevronUp.js +11 -1
  222. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +27 -1
  223. package/dist/Molecular/CustomIcons/components/Close.js +14 -1
  224. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +17 -1
  225. package/dist/Molecular/CustomIcons/components/Delete.js +16 -1
  226. package/dist/Molecular/CustomIcons/components/Edit.js +15 -1
  227. package/dist/Molecular/CustomIcons/components/Email.js +31 -1
  228. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +18 -1
  229. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +35 -1
  230. package/dist/Molecular/CustomIcons/components/Flows.js +15 -1
  231. package/dist/Molecular/CustomIcons/components/Gift.js +25 -1
  232. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +29 -1
  233. package/dist/Molecular/CustomIcons/components/GooglePlay.js +29 -1
  234. package/dist/Molecular/CustomIcons/components/HelpCircle.js +19 -1
  235. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +20 -1
  236. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +19 -1
  237. package/dist/Molecular/CustomIcons/components/Home.js +16 -1
  238. package/dist/Molecular/CustomIcons/components/Home2.js +22 -1
  239. package/dist/Molecular/CustomIcons/components/Key.js +23 -1
  240. package/dist/Molecular/CustomIcons/components/Landers.js +20 -1
  241. package/dist/Molecular/CustomIcons/components/Lock.js +15 -1
  242. package/dist/Molecular/CustomIcons/components/Mail.js +26 -1
  243. package/dist/Molecular/CustomIcons/components/Mastercard.js +73 -1
  244. package/dist/Molecular/CustomIcons/components/Minus.js +25 -1
  245. package/dist/Molecular/CustomIcons/components/Offers.js +16 -1
  246. package/dist/Molecular/CustomIcons/components/Pause.js +28 -1
  247. package/dist/Molecular/CustomIcons/components/PayPal.js +41 -1
  248. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +28 -1
  249. package/dist/Molecular/CustomIcons/components/Phone.js +30 -1
  250. package/dist/Molecular/CustomIcons/components/Play.js +25 -1
  251. package/dist/Molecular/CustomIcons/components/Plus.js +25 -1
  252. package/dist/Molecular/CustomIcons/components/Profile.js +16 -1
  253. package/dist/Molecular/CustomIcons/components/QRCode.js +29 -1
  254. package/dist/Molecular/CustomIcons/components/Rectangle.js +12 -1
  255. package/dist/Molecular/CustomIcons/components/Revert.js +13 -1
  256. package/dist/Molecular/CustomIcons/components/Star.js +14 -1
  257. package/dist/Molecular/CustomIcons/components/Star2.js +16 -1
  258. package/dist/Molecular/CustomIcons/components/TrafficSources.js +14 -1
  259. package/dist/Molecular/CustomIcons/components/Trash.js +15 -1
  260. package/dist/Molecular/CustomIcons/components/TrashRed.js +15 -1
  261. package/dist/Molecular/CustomIcons/components/Triggers.js +15 -1
  262. package/dist/Molecular/CustomIcons/components/User.js +25 -1
  263. package/dist/Molecular/CustomIcons/components/Visa.js +31 -1
  264. package/dist/Molecular/CustomIcons/components/X.js +12 -1
  265. package/dist/Molecular/CustomIcons/index.js +61 -1
  266. package/dist/Molecular/FormElement/FormElement.js +54 -1
  267. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +184 -1
  268. package/dist/Molecular/FormWithDependOn/partials/_utils.js +53 -1
  269. package/dist/Molecular/InputAddress/InputAddress.js +620 -1
  270. package/dist/Molecular/InputPassword/InputPassword.js +48 -1
  271. package/dist/index.js +1 -1
  272. package/package.json +1 -1
@@ -1 +1,193 @@
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
+ import React, { useEffect, useState } from "react";
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 +1,135 @@
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
+ import React, { useRef, useState } from "react";
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 +1,116 @@
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"})]})]})}
1
+ import React, { useEffect, useRef, useState } from "react";
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;