intelicoreact 1.5.41 → 1.6.0

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 (521) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.interface.js +4 -0
  2. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +93 -44
  3. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.scss +23 -13
  4. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.stories.js +89 -0
  5. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.test.js +130 -0
  6. package/dist/Atomic/FormElements/ActionAlert/index.js +17 -0
  7. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.interface.js +4 -0
  8. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +43 -38
  9. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.scss +20 -10
  10. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.stories.js +81 -0
  11. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.test.js +104 -0
  12. package/dist/Atomic/FormElements/AdvancedStatus/index.js +17 -0
  13. package/dist/Atomic/FormElements/Calendar/Calendar.js +243 -164
  14. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +4 -0
  15. package/dist/Atomic/FormElements/Calendar/Calendar.scss +1 -0
  16. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +108 -0
  17. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.interface.js +4 -0
  18. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +60 -51
  19. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +21 -11
  20. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +100 -0
  21. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.test.js +143 -0
  22. package/dist/Atomic/FormElements/CheckboxInput/index.js +17 -0
  23. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.interface.js +4 -0
  24. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +47 -39
  25. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.scss +5 -2
  26. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.stories.js +94 -0
  27. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.test.js +177 -0
  28. package/dist/Atomic/FormElements/CheckboxesLine/index.js +17 -0
  29. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +410 -308
  30. package/dist/Atomic/FormElements/Datepicker/Datepicker.stories.js +51 -0
  31. package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +169 -109
  32. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +680 -527
  33. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +58 -56
  34. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +596 -0
  35. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +28 -15
  36. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +498 -378
  37. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.scss +33 -29
  38. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.stories.js +272 -0
  39. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +103 -70
  40. package/dist/Atomic/FormElements/FileLoader/FileLoader.scss +0 -2
  41. package/dist/Atomic/FormElements/FileLoader/FileLoader.stories.js +182 -0
  42. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +138 -91
  43. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +109 -55
  44. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +254 -193
  45. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.scss +19 -16
  46. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.stories.js +327 -0
  47. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +156 -140
  48. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.scss +8 -4
  49. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.stories.js +186 -0
  50. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +222 -156
  51. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.stories.js +84 -0
  52. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +158 -114
  53. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.stories.js +107 -0
  54. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +151 -92
  55. package/dist/Atomic/FormElements/Input/Input.js +340 -330
  56. package/dist/Atomic/FormElements/Input/Input.stories.js +251 -0
  57. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +156 -110
  58. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +115 -0
  59. package/dist/Atomic/FormElements/InputColor/InputColor.js +57 -58
  60. package/dist/Atomic/FormElements/InputColor/InputColor.stories.js +119 -0
  61. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.interface.js +4 -0
  62. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +189 -145
  63. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.stories.js +178 -0
  64. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.test.js +129 -0
  65. package/dist/Atomic/FormElements/InputCurrency/index.js +16 -0
  66. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +294 -228
  67. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +123 -0
  68. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +55 -56
  69. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +645 -536
  70. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +220 -190
  71. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +33 -31
  72. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +247 -169
  73. package/dist/Atomic/FormElements/InputLink/InputLink.js +118 -71
  74. package/dist/Atomic/FormElements/InputLink/InputLink.stories.js +140 -0
  75. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +47 -38
  76. package/dist/Atomic/FormElements/InputMask/InputMask.js +938 -1053
  77. package/dist/Atomic/FormElements/InputMask/InputMask.stories.js +303 -0
  78. package/dist/Atomic/FormElements/InputMask/config.js +16 -15
  79. package/dist/Atomic/FormElements/InputMask/functions.js +77 -51
  80. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +569 -592
  81. package/dist/Atomic/FormElements/InputMask2/InputMask2.stories.js +314 -0
  82. package/dist/Atomic/FormElements/InputMask2/config.js +16 -15
  83. package/dist/Atomic/FormElements/InputMask2/functions.js +77 -51
  84. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +651 -679
  85. package/dist/Atomic/FormElements/InputMask3/InputMask3.stories.js +335 -0
  86. package/dist/Atomic/FormElements/InputMask3/config.js +16 -15
  87. package/dist/Atomic/FormElements/InputMask3/functions.js +77 -51
  88. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +127 -88
  89. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.stories.js +276 -0
  90. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +182 -111
  91. package/dist/Atomic/FormElements/InputsRow/InputsRow.stories.js +56 -0
  92. package/dist/Atomic/FormElements/Label/Label.interface.js +4 -0
  93. package/dist/Atomic/FormElements/Label/Label.js +82 -55
  94. package/dist/Atomic/FormElements/Label/Label.scss +18 -8
  95. package/dist/Atomic/FormElements/Label/Label.stories.js +47 -0
  96. package/dist/Atomic/FormElements/Label/Label.test.js +167 -0
  97. package/dist/Atomic/FormElements/Label/index.js +17 -0
  98. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +437 -382
  99. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +172 -0
  100. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +88 -50
  101. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +121 -0
  102. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +314 -264
  103. package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +184 -0
  104. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +93 -51
  105. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.stories.js +79 -0
  106. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +69 -55
  107. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.stories.js +151 -0
  108. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +51 -45
  109. package/dist/Atomic/FormElements/RadioInput/RadioInput.scss +4 -4
  110. package/dist/Atomic/FormElements/RadioInput/RadioInput.stories.js +67 -0
  111. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +53 -40
  112. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.stories.js +116 -0
  113. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +169 -120
  114. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +107 -0
  115. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +195 -141
  116. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +92 -0
  117. package/dist/Atomic/FormElements/RangeList/RangeList.js +199 -140
  118. package/dist/Atomic/FormElements/RangeList/RangeList.scss +2 -2
  119. package/dist/Atomic/FormElements/RangeList/RangeList.stories.js +169 -0
  120. package/dist/Atomic/FormElements/RangeList/partial/AnyOuterClass.scss +0 -3
  121. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +57 -44
  122. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +463 -377
  123. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.stories.js +401 -0
  124. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +760 -759
  125. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.stories.js +314 -0
  126. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +36 -31
  127. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.scss +0 -2
  128. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.stories.js +137 -0
  129. package/dist/Atomic/FormElements/Switcher/Switcher.js +52 -44
  130. package/dist/Atomic/FormElements/Switcher/Switcher.scss +3 -3
  131. package/dist/Atomic/FormElements/Switcher/Switcher.stories.js +91 -0
  132. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +43 -44
  133. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.scss +0 -2
  134. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.stories.js +104 -0
  135. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +37 -36
  136. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.scss +0 -2
  137. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.stories.js +96 -0
  138. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +93 -56
  139. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.scss +0 -2
  140. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.stories.js +140 -0
  141. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +86 -53
  142. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.scss +0 -2
  143. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.stories.js +112 -0
  144. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +46 -54
  145. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.stories.js +145 -0
  146. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +172 -102
  147. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.scss +4 -6
  148. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.stories.js +158 -0
  149. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +209 -154
  150. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +59 -56
  151. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.scss +2 -2
  152. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.stories.js +101 -0
  153. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +140 -112
  154. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.stories.js +131 -0
  155. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1035 -919
  156. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +153 -116
  157. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +357 -0
  158. package/dist/Atomic/FormElements/Text/Text.js +88 -97
  159. package/dist/Atomic/FormElements/Text/Text.stories.js +80 -0
  160. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +44 -35
  161. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +8 -8
  162. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +106 -0
  163. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.test.js +93 -0
  164. package/dist/Atomic/FormElements/Textarea/Textarea.js +102 -64
  165. package/dist/Atomic/FormElements/Textarea/Textarea.scss +4 -8
  166. package/dist/Atomic/FormElements/Textarea/Textarea.stories.js +103 -0
  167. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +172 -133
  168. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +174 -0
  169. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +48 -49
  170. package/dist/Atomic/FormElements/TimeRange/TimeRange.interface.js +4 -0
  171. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +114 -63
  172. package/dist/Atomic/FormElements/TimeRange/TimeRange.scss +9 -3
  173. package/dist/Atomic/FormElements/TimeRange/TimeRange.stories.js +40 -0
  174. package/dist/Atomic/FormElements/TimeRange/TimeRange.test.js +163 -0
  175. package/dist/Atomic/FormElements/TimeRange/index.js +17 -0
  176. package/dist/Atomic/FormElements/UserContacts/UserContact.test.js +381 -0
  177. package/dist/Atomic/FormElements/UserContacts/UserContacts.interface.js +4 -0
  178. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +179 -122
  179. package/dist/Atomic/FormElements/UserContacts/UserContacts.scss +10 -5
  180. package/dist/Atomic/FormElements/UserContacts/UserContacts.stories.js +74 -0
  181. package/dist/Atomic/FormElements/UserContacts/index.js +17 -0
  182. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +101 -65
  183. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.stories.js +193 -0
  184. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +80 -71
  185. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +79 -64
  186. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.scss +0 -2
  187. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.stories.js +147 -0
  188. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +42 -34
  189. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +102 -83
  190. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.scss +0 -2
  191. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.stories.js +151 -0
  192. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +42 -35
  193. package/dist/Atomic/Layout/Header/Header.js +148 -80
  194. package/dist/Atomic/Layout/Header/Header.stories.js +71 -0
  195. package/dist/Atomic/Layout/MainMenu/MainMenu.js +213 -133
  196. package/dist/Atomic/Layout/MainMenu/MainMenu.scss +7 -7
  197. package/dist/Atomic/Layout/MainMenu/MainMenu.stories.js +115 -0
  198. package/dist/Atomic/Layout/Spinner/Spinner.interface.js +4 -0
  199. package/dist/Atomic/Layout/Spinner/Spinner.js +39 -22
  200. package/dist/Atomic/Layout/Spinner/Spinner.scss +36 -16
  201. package/dist/Atomic/Layout/Spinner/Spinner.stories.js +46 -0
  202. package/dist/Atomic/Layout/Spinner/Spinner.test.js +54 -0
  203. package/dist/Atomic/Layout/Spinner/index.js +17 -0
  204. package/dist/Atomic/UI/Accordion/Accordion.interface.js +4 -0
  205. package/dist/Atomic/UI/Accordion/Accordion.js +102 -53
  206. package/dist/Atomic/UI/Accordion/Accordion.scss +25 -14
  207. package/dist/Atomic/UI/Accordion/Accordion.stories.js +168 -0
  208. package/dist/Atomic/UI/Accordion/Accordion.test.js +54 -0
  209. package/dist/Atomic/UI/Accordion/AccordionItem.js +170 -102
  210. package/dist/Atomic/UI/Accordion/AccordionItem.test.js +50 -0
  211. package/dist/Atomic/UI/Accordion/index.js +17 -0
  212. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +251 -167
  213. package/dist/Atomic/UI/AccordionTable/AccordionTable.stories.js +268 -0
  214. package/dist/Atomic/UI/AccordionText/AccordionText.js +105 -54
  215. package/dist/Atomic/UI/AccordionText/AccordionText.scss +22 -9
  216. package/dist/Atomic/UI/AccordionText/AccordionText.stories.js +125 -0
  217. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +207 -135
  218. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +100 -46
  219. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +115 -0
  220. package/dist/Atomic/UI/Alert/Alert.js +116 -63
  221. package/dist/Atomic/UI/Alert/Alert.scss +2 -2
  222. package/dist/Atomic/UI/Alert/Alert.stories.js +81 -0
  223. package/dist/Atomic/UI/Arrow/Arrow.js +163 -110
  224. package/dist/Atomic/UI/Arrow/Arrow.stories.js +62 -0
  225. package/dist/Atomic/UI/Box/Box.js +37 -37
  226. package/dist/Atomic/UI/Box/Box.scss +11 -11
  227. package/dist/Atomic/UI/Box/Box.stories.js +114 -0
  228. package/dist/Atomic/UI/Button/Button.js +43 -41
  229. package/dist/Atomic/UI/Button/Button.stories.js +105 -0
  230. package/dist/Atomic/UI/Button/Button.test.js +147 -0
  231. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +61 -67
  232. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.stories.js +129 -0
  233. package/dist/Atomic/UI/Chart/Chart.js +170 -96
  234. package/dist/Atomic/UI/Chart/Chart.stories.js +93 -0
  235. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +142 -74
  236. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +91 -77
  237. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +120 -117
  238. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +314 -292
  239. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +54 -39
  240. package/dist/Atomic/UI/Chart/partial/utils.js +56 -33
  241. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +145 -88
  242. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.stories.js +85 -0
  243. package/dist/Atomic/UI/DateTime/DateTime.js +89 -37
  244. package/dist/Atomic/UI/DateTime/DateTime.scss +2 -2
  245. package/dist/Atomic/UI/DateTime/DateTime.stories.js +50 -0
  246. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +93 -31
  247. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +66 -18
  248. package/dist/Atomic/UI/DoubleString/DoubleString.js +134 -77
  249. package/dist/Atomic/UI/DoubleString/DoubleString.scss +6 -4
  250. package/dist/Atomic/UI/DoubleString/DoubleString.stories.js +79 -0
  251. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.interface.js +4 -0
  252. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +65 -22
  253. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.stories.js +98 -0
  254. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.test.js +51 -0
  255. package/dist/Atomic/UI/DynamicIcon/index.js +17 -0
  256. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +251 -170
  257. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.stories.js +98 -0
  258. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +109 -84
  259. package/dist/Atomic/UI/Hint/Hint.interface.js +4 -0
  260. package/dist/Atomic/UI/Hint/Hint.js +247 -204
  261. package/dist/Atomic/UI/Hint/Hint.scss +4 -2
  262. package/dist/Atomic/UI/Hint/Hint.stories.js +106 -0
  263. package/dist/Atomic/UI/Hint/Hint.test.js +96 -0
  264. package/dist/Atomic/UI/Hint/index.js +17 -0
  265. package/dist/Atomic/UI/Hint/partials/_utils.js +60 -46
  266. package/dist/Atomic/UI/Modal/Modal.interface.js +4 -0
  267. package/dist/Atomic/UI/Modal/Modal.js +171 -172
  268. package/dist/Atomic/UI/Modal/Modal.scss +91 -65
  269. package/dist/Atomic/UI/Modal/Modal.stories.js +370 -0
  270. package/dist/Atomic/UI/Modal/ModalHOC.js +92 -38
  271. package/dist/Atomic/UI/Modal/ModalHOC.stories.js +191 -0
  272. package/dist/Atomic/UI/Modal/ModalHOC.test.js +187 -0
  273. package/dist/Atomic/UI/Modal/ModalMobile.scss +26 -14
  274. package/dist/Atomic/UI/Modal/index.js +26 -0
  275. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +68 -18
  276. package/dist/Atomic/UI/Modal/partials/ModalFooter.test.js +118 -0
  277. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +107 -38
  278. package/dist/Atomic/UI/Modal/partials/ModalTitle.test.js +126 -0
  279. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +130 -153
  280. package/dist/Atomic/UI/Modal/partials/useMobileModal.test.js +133 -0
  281. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.interface.js +4 -0
  282. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +118 -62
  283. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.scss +172 -25
  284. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.stories.js +513 -0
  285. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.test.js +84 -0
  286. package/dist/Atomic/UI/MonoAccordion/index.js +17 -0
  287. package/dist/Atomic/UI/NavLine/NavLine.interface.js +4 -0
  288. package/dist/Atomic/UI/NavLine/NavLine.js +306 -273
  289. package/dist/Atomic/UI/NavLine/NavLine.scss +202 -155
  290. package/dist/Atomic/UI/NavLine/NavLine.stories.js +434 -0
  291. package/dist/Atomic/UI/NavLine/NavLine.test.js +311 -0
  292. package/dist/Atomic/UI/NavLine/index.js +17 -0
  293. package/dist/Atomic/UI/PageTitle/PageTitle.interface.js +4 -0
  294. package/dist/Atomic/UI/PageTitle/PageTitle.js +73 -52
  295. package/dist/Atomic/UI/PageTitle/PageTitle.scss +52 -14
  296. package/dist/Atomic/UI/PageTitle/PageTitle.stories.js +62 -0
  297. package/dist/Atomic/UI/PageTitle/PageTitle.test.js +181 -0
  298. package/dist/Atomic/UI/PageTitle/index.js +17 -0
  299. package/dist/Atomic/UI/PieChart/PieChar.interface.js +4 -0
  300. package/dist/Atomic/UI/PieChart/PieChart.js +105 -42
  301. package/dist/Atomic/UI/PieChart/PieChart.scss +87 -11
  302. package/dist/Atomic/UI/PieChart/PieChart.stories.js +82 -0
  303. package/dist/Atomic/UI/PieChart/PieChart.test.js +142 -0
  304. package/dist/Atomic/UI/PieChart/index.js +26 -0
  305. package/dist/Atomic/UI/Price/Price.interface.js +4 -0
  306. package/dist/Atomic/UI/Price/Price.js +27 -20
  307. package/dist/Atomic/UI/Price/Price.stories.js +52 -0
  308. package/dist/Atomic/UI/Price/Price.test.js +83 -0
  309. package/dist/Atomic/UI/Price/index.js +17 -0
  310. package/dist/Atomic/UI/PriceRange/PriceRange.interface.js +4 -0
  311. package/dist/Atomic/UI/PriceRange/PriceRange.js +40 -18
  312. package/dist/Atomic/UI/PriceRange/PriceRange.stories.js +51 -0
  313. package/dist/Atomic/UI/PriceRange/PriceRange.test.js +72 -0
  314. package/dist/Atomic/UI/PriceRange/index.js +17 -0
  315. package/dist/Atomic/UI/ProgressLine/ProgressLine.interface.js +4 -0
  316. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +92 -73
  317. package/dist/Atomic/UI/ProgressLine/ProgressLine.scss +66 -52
  318. package/dist/Atomic/UI/ProgressLine/ProgressLine.stories.js +163 -0
  319. package/dist/Atomic/UI/ProgressLine/ProgressLine.test.js +60 -0
  320. package/dist/Atomic/UI/ProgressLine/index.js +17 -0
  321. package/dist/Atomic/UI/Status/Status.interface.js +4 -0
  322. package/dist/Atomic/UI/Status/Status.js +62 -51
  323. package/dist/Atomic/UI/Status/Status.scss +48 -29
  324. package/dist/Atomic/UI/Status/Status.stories.js +79 -0
  325. package/dist/Atomic/UI/Status/Status.test.js +103 -0
  326. package/dist/Atomic/UI/Status/index.js +17 -0
  327. package/dist/Atomic/UI/Table/Partials/TdCell.js +126 -88
  328. package/dist/Atomic/UI/Table/Partials/TdHeader.js +58 -39
  329. package/dist/Atomic/UI/Table/Partials/TdRow.js +124 -73
  330. package/dist/Atomic/UI/Table/Partials/TdTitle.js +113 -45
  331. package/dist/Atomic/UI/Table/Table.js +61 -43
  332. package/dist/Atomic/UI/Table/Table.scss +0 -3
  333. package/dist/Atomic/UI/Table/Table.stories.js +250 -0
  334. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +108 -64
  335. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +44 -31
  336. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +24 -10
  337. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +59 -48
  338. package/dist/Atomic/UI/Tag/Tag.interface.js +4 -0
  339. package/dist/Atomic/UI/Tag/Tag.js +157 -113
  340. package/dist/Atomic/UI/Tag/Tag.scss +104 -47
  341. package/dist/Atomic/UI/Tag/Tag.stories.js +108 -0
  342. package/dist/Atomic/UI/Tag/Tag.test.js +75 -0
  343. package/dist/Atomic/UI/Tag/index.js +17 -0
  344. package/dist/Atomic/UI/TagList/TagList.js +223 -179
  345. package/dist/Atomic/UI/TagList/TagList.scss +13 -9
  346. package/dist/Atomic/UI/TagList/TagList.stories.js +169 -0
  347. package/dist/Atomic/UI/UserBox/UserBox.interface.js +4 -0
  348. package/dist/Atomic/UI/UserBox/UserBox.js +80 -56
  349. package/dist/Atomic/UI/UserBox/UserBox.scss +45 -21
  350. package/dist/Atomic/UI/UserBox/UserBox.stories.js +57 -0
  351. package/dist/Atomic/UI/UserBox/UserBox.test.js +136 -0
  352. package/dist/Atomic/UI/UserBox/index.js +17 -0
  353. package/dist/Atomic/UI/WizardStepper/WizardStepper.stories.js +70 -0
  354. package/dist/Atomic/UI/WizardStepper/constructor.js +127 -89
  355. package/dist/Atomic/UI/WizardStepper/index.js +14 -6
  356. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +53 -51
  357. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.scss +11 -7
  358. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +9 -5
  359. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +84 -67
  360. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.scss +13 -7
  361. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +14 -6
  362. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +50 -45
  363. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.scss +24 -18
  364. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +14 -6
  365. package/dist/Atomic/UI/WizardStepper/ui/icons.js +138 -106
  366. package/dist/Atomic/UI/WizardStepper/ui/index.js +14 -6
  367. package/dist/Classes/AbortableFetch.js +394 -326
  368. package/dist/Classes/AnimatedHandler.js +31 -44
  369. package/dist/Classes/RESTAPI/index.js +131 -173
  370. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +399 -334
  371. package/dist/Classes/RESTAPI/partials/ApiBase.js +30 -30
  372. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +107 -88
  373. package/dist/Classes/RESTAPI/partials/ApiUtils.js +144 -166
  374. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +180 -204
  375. package/dist/Classes/RESTAPI/partials/Utils.js +80 -83
  376. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +16 -8
  377. package/dist/Classes/RESTAPI/partials/_utils.js +139 -125
  378. package/dist/Constants/index.constants.js +102 -22
  379. package/dist/Functions/Portal.js +67 -23
  380. package/dist/Functions/customEventListener.js +48 -50
  381. package/dist/Functions/dateTime.js +130 -177
  382. package/dist/Functions/fieldValueFormatters.js +275 -346
  383. package/dist/Functions/guards/assertions.js +294 -0
  384. package/dist/Functions/guards/safeValue.js +75 -0
  385. package/dist/Functions/guards/typeGuards.js +374 -0
  386. package/dist/Functions/hooks/useFormFieldsChangesManager.js +125 -96
  387. package/dist/Functions/locale/createTranslator.js +29 -27
  388. package/dist/Functions/operations.js +129 -102
  389. package/dist/Functions/presets/inputMaskPresets.js +88 -99
  390. package/dist/Functions/presets/inputPresets.js +41 -35
  391. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +30 -49
  392. package/dist/Functions/schemas.js +78 -20
  393. package/dist/Functions/useBodyScrollLock.js +21 -15
  394. package/dist/Functions/useClickOutside.js +21 -16
  395. package/dist/Functions/useDebounce.js +62 -21
  396. package/dist/Functions/useFieldFocus.js +83 -79
  397. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +39 -46
  398. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +132 -137
  399. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +63 -73
  400. package/dist/Functions/useFormTools/functions/General.js +117 -129
  401. package/dist/Functions/useFormTools/functions/RenderFields.js +75 -85
  402. package/dist/Functions/useFormTools/functions/usePrevious.js +16 -10
  403. package/dist/Functions/useFormTools/index.js +647 -709
  404. package/dist/Functions/useInputHighlightError.js +104 -53
  405. package/dist/Functions/useIsMobile/index.js +17 -0
  406. package/dist/Functions/useIsMobile/useIsMobile.js +33 -0
  407. package/dist/Functions/useIsMobile/useIsMobile.test.js +104 -0
  408. package/dist/Functions/useKeyPress/useHandleKeyPress.js +40 -33
  409. package/dist/Functions/useKeyPress/useHandleKeyPress.test.js +96 -0
  410. package/dist/Functions/useKeyPress/useKeyPress.js +48 -39
  411. package/dist/Functions/useKeyPress/useKeyPress.test.js +87 -0
  412. package/dist/Functions/useLocalStorage.js +38 -31
  413. package/dist/Functions/useLocationParams.js +31 -24
  414. package/dist/Functions/useMediaQuery.js +14 -10
  415. package/dist/Functions/useMetaInfo.js +45 -35
  416. package/dist/Functions/useMouseUpOutside.js +21 -15
  417. package/dist/Functions/useOnlineStatus.js +25 -21
  418. package/dist/Functions/usePasswordChecker.js +183 -111
  419. package/dist/Functions/usePrevious.js +16 -10
  420. package/dist/Functions/useResize.js +32 -28
  421. package/dist/Functions/useScrollTo.js +26 -16
  422. package/dist/Functions/useToggle.js +20 -16
  423. package/dist/Functions/utils.js +493 -469
  424. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +75 -28
  425. package/dist/Molecular/CustomIcons/components/AlertCircle.js +77 -28
  426. package/dist/Molecular/CustomIcons/components/AppStore.js +84 -32
  427. package/dist/Molecular/CustomIcons/components/Arrow.js +93 -38
  428. package/dist/Molecular/CustomIcons/components/ArrowDown.js +63 -20
  429. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +71 -23
  430. package/dist/Molecular/CustomIcons/components/ArrowRight.js +71 -23
  431. package/dist/Molecular/CustomIcons/components/ArrowUp.js +63 -20
  432. package/dist/Molecular/CustomIcons/components/Bell.js +61 -18
  433. package/dist/Molecular/CustomIcons/components/Button.js +61 -18
  434. package/dist/Molecular/CustomIcons/components/Campaigns.js +62 -19
  435. package/dist/Molecular/CustomIcons/components/Check.js +62 -19
  436. package/dist/Molecular/CustomIcons/components/Check2.js +61 -18
  437. package/dist/Molecular/CustomIcons/components/ChevronDown.js +61 -18
  438. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +61 -18
  439. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +61 -18
  440. package/dist/Molecular/CustomIcons/components/ChevronRight.js +61 -18
  441. package/dist/Molecular/CustomIcons/components/ChevronUp.js +61 -18
  442. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +81 -33
  443. package/dist/Molecular/CustomIcons/components/Close.js +64 -20
  444. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +95 -45
  445. package/dist/Molecular/CustomIcons/components/Delete.js +62 -19
  446. package/dist/Molecular/CustomIcons/components/Edit.js +61 -18
  447. package/dist/Molecular/CustomIcons/components/Email.js +87 -36
  448. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +82 -26
  449. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +83 -34
  450. package/dist/Molecular/CustomIcons/components/Flows.js +61 -18
  451. package/dist/Molecular/CustomIcons/components/Gift.js +71 -23
  452. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +84 -32
  453. package/dist/Molecular/CustomIcons/components/GooglePlay.js +84 -32
  454. package/dist/Molecular/CustomIcons/components/HelpCircle.js +67 -21
  455. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +68 -22
  456. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +67 -21
  457. package/dist/Molecular/CustomIcons/components/Home.js +67 -21
  458. package/dist/Molecular/CustomIcons/components/Home2.js +70 -24
  459. package/dist/Molecular/CustomIcons/components/Key.js +69 -26
  460. package/dist/Molecular/CustomIcons/components/Landers.js +68 -22
  461. package/dist/Molecular/CustomIcons/components/Lock.js +61 -18
  462. package/dist/Molecular/CustomIcons/components/Mail.js +75 -26
  463. package/dist/Molecular/CustomIcons/components/Mastercard.js +128 -68
  464. package/dist/Molecular/CustomIcons/components/Minus.js +79 -31
  465. package/dist/Molecular/CustomIcons/components/Offers.js +62 -19
  466. package/dist/Molecular/CustomIcons/components/Pause.js +79 -31
  467. package/dist/Molecular/CustomIcons/components/PayPal.js +96 -45
  468. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +81 -32
  469. package/dist/Molecular/CustomIcons/components/Phone.js +81 -33
  470. package/dist/Molecular/CustomIcons/components/Play.js +79 -31
  471. package/dist/Molecular/CustomIcons/components/Plus.js +79 -31
  472. package/dist/Molecular/CustomIcons/components/Profile.js +69 -23
  473. package/dist/Molecular/CustomIcons/components/QRCode.js +85 -33
  474. package/dist/Molecular/CustomIcons/components/Rectangle.js +61 -18
  475. package/dist/Molecular/CustomIcons/components/Revert.js +67 -21
  476. package/dist/Molecular/CustomIcons/components/Star.js +60 -17
  477. package/dist/Molecular/CustomIcons/components/Star2.js +62 -19
  478. package/dist/Molecular/CustomIcons/components/TrafficSources.js +68 -21
  479. package/dist/Molecular/CustomIcons/components/Trash.js +61 -18
  480. package/dist/Molecular/CustomIcons/components/TrashRed.js +61 -18
  481. package/dist/Molecular/CustomIcons/components/Triggers.js +61 -18
  482. package/dist/Molecular/CustomIcons/components/User.js +71 -23
  483. package/dist/Molecular/CustomIcons/components/Visa.js +88 -34
  484. package/dist/Molecular/CustomIcons/components/X.js +61 -18
  485. package/dist/Molecular/CustomIcons/index.js +76 -674
  486. package/dist/Molecular/FormElement/FormElement.js +44 -41
  487. package/dist/Molecular/FormElement/FormElement.stories.js +92 -0
  488. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +179 -161
  489. package/dist/Molecular/FormWithDependOn/FormWithDependOn.stories.js +301 -0
  490. package/dist/Molecular/FormWithDependOn/partials/_utils.js +49 -56
  491. package/dist/Molecular/InputAddress/InputAddress.js +496 -421
  492. package/dist/Molecular/InputAddress/InputAddress.scss +12 -14
  493. package/dist/Molecular/InputAddress/InputAddress.stories.js +541 -0
  494. package/dist/Molecular/InputPassword/InputPassword.js +99 -47
  495. package/dist/Molecular/InputPassword/InputPassword.stories.js +86 -0
  496. package/dist/index.js +11 -8
  497. package/dist/scss/_mixins.scss +2 -2
  498. package/dist/scss/_vars.scss +1 -2
  499. package/dist/scss/main.scss +4 -3
  500. package/dist/types/base.interface.js +4 -0
  501. package/dist/types/base.types.js +4 -0
  502. package/dist/types/declaration/ArrayElement.d.js +4 -0
  503. package/dist/types/declaration/AsyncReturnType.d.js +4 -0
  504. package/dist/types/declaration/DeepPartial.d.js +4 -0
  505. package/dist/types/declaration/DeepReadonly.d.js +4 -0
  506. package/dist/types/declaration/DeepRequired.d.js +4 -0
  507. package/dist/types/declaration/Flatten.d.js +4 -0
  508. package/dist/types/declaration/FunctionType.d.js +4 -0
  509. package/dist/types/declaration/If.d.js +4 -0
  510. package/dist/types/declaration/KeysType.d.js +4 -0
  511. package/dist/types/declaration/NonNullableType.d.js +4 -0
  512. package/dist/types/declaration/ObjectType.d.js +4 -0
  513. package/dist/types/declaration/OnlyObjectKeys.d.js +4 -0
  514. package/dist/types/declaration/PrettyPrint.d.js +31 -0
  515. package/dist/types/declaration/RequiredFields.d.js +4 -0
  516. package/dist/types/declaration/TupleType.d.js +4 -0
  517. package/dist/types/declaration/ValuesType.d.js +4 -0
  518. package/package.json +18 -21
  519. package/dist/Atomic/UI/NavLine/Tabs.js +0 -115
  520. package/dist/Functions/animatingFunctions/getAnimatedHandler.js +0 -1
  521. package/dist/Functions/useIsMobile.js +0 -26
@@ -1,1084 +1,969 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
1
+ /* eslint-disable no-return-await */ /* eslint-disable no-extra-boolean-cast */ /* eslint-disable no-unsafe-optional-chaining */ /* eslint-disable comma-dangle */ /* eslint-disable array-callback-return */ /* eslint-disable no-continue */ /* eslint-disable no-unused-expressions */ /* eslint-disable no-empty */ /* eslint-disable no-unreachable */ /* eslint-disable default-case */ /* eslint-disable no-use-before-define */ /* eslint-disable no-unused-vars */ /* eslint-disable default-param-last */ "use strict";
4
2
  Object.defineProperty(exports, "__esModule", {
5
- value: true
3
+ value: true
6
4
  });
7
- exports.default = InputMask;
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _classnames = _interopRequireDefault(require("classnames"));
10
- var _reactFeather = require("react-feather");
11
- var _Hint = _interopRequireDefault(require("../../UI/Hint/Hint"));
12
- var _indexConstants = require("./../../../Constants/index.constants.js");
13
- var _InputCarretPosition = require("./InputCarretPosition");
14
- var _config = require("./config");
15
- var _functions = require("./functions");
16
- require("./InputMask.scss");
17
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
- /* eslint-disable no-return-await */
20
- /* eslint-disable no-extra-boolean-cast */
21
- /* eslint-disable no-unsafe-optional-chaining */
22
- /* eslint-disable comma-dangle */
23
- /* eslint-disable array-callback-return */
24
- /* eslint-disable no-continue */
25
- /* eslint-disable no-unused-expressions */
26
- /* eslint-disable no-empty */
27
- /* eslint-disable no-unreachable */
28
- /* eslint-disable default-case */
29
- /* eslint-disable no-use-before-define */
30
- /* eslint-disable no-unused-vars */
31
- /* eslint-disable default-param-last */
32
-
33
- // import { KEYBOARD_SERVICE_KEYS } from './index.constants.js';
34
-
35
- function InputMask() {
36
- let {
37
- maskPattern,
38
- maskPatternPlaceholder,
39
- maskPlaceholder,
40
- maskDigitPlaceholder,
41
- maskLetterPlaceholder,
42
- usePatternPlaceholder,
43
- disabled,
44
- maskAsPlaceholder = true,
45
- maxEditableLen = -1,
46
- isFocusedDefault = false,
47
- isClearable,
48
- isCaseSensitive,
49
- adaptTextCase,
50
- isUseAutoSelect = true,
51
- icon,
52
- showIcon,
53
- isIconLeft,
54
- isIconRight,
55
- value,
56
- blinkErrors = true,
57
- blinkDuration = 100,
58
- showErrors = false,
59
- className = "",
60
- errors: customErrors = _config.DEFAULT_ERRORS,
61
- error: customError = "",
62
- ref,
63
- onChange: onChangeProp = () => {},
64
- onFocus: onFocusProp = () => {},
65
- onBlur: onBlurProp = () => {},
66
- onKeyDown: onKeyDownProp = () => {},
67
- imitateTypingOnPaste = false,
68
- imitateTypingOnPasteDelay = 100,
69
- showHint = false,
70
- hintText = "",
71
- hintClassName = "",
72
- isHintRight = true,
73
- isHintLeft = false,
74
- hintPosition = "right",
75
- hideMaskOnBlur = true,
76
- returnMaskedValue = false,
77
- name,
78
- testId = "input-mask"
79
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
80
- const errors = {
81
- ..._config.DEFAULT_ERRORS,
82
- ...customErrors
83
- };
84
- const [isMaskRendered, setMaskRendered] = (0, _react.useState)(false);
85
- const inputRef = (0, _react.useRef)(null);
86
- const [isMouseDown, setIsMouseDown] = (0, _react.useState)(false);
87
- const [isFocused, setFocused] = (0, _react.useState)(false);
88
- const [isInitValue, setIsInitValue] = (0, _react.useState)(false);
89
- const inputThrottlingTimeout = 20;
90
- const [isInputThrottled, setIsInputThrottled] = (0, _react.useState)(false);
91
-
92
- // ERRORS MANAGEMENT FUNCTIONS | START //
93
- const [isError, setError] = (0, _react.useState)(false);
94
- const [blinkError, setBlinkError] = (0, _react.useState)(false);
95
- const [errorMessage, setErrorMessage] = (0, _react.useState)(errors.default);
96
- const clearErrorMessage = () => setErrorMessage(errors.default);
97
- // ERRORS MANAGEMENT FUNCTIONS | END //
98
-
99
- // SELECTION MANAGEMENT FUNCTIONS | START //
100
- const [isSelecting, setIsSelecting] = (0, _react.useState)(false);
101
- const [selectedText, setSelectedText] = (0, _react.useState)("");
102
- const [selectionStartX, setSelectionStartX] = (0, _react.useState)(null);
103
- const [selectionEndX, setSelectionEndX] = (0, _react.useState)(null);
104
- // SELECTION MANAGEMENT FUNCTIONS | END //
105
-
106
- // SERVICE WATCHERS MANAGEMENT FUNCTIONS | START //
107
- const [serviceWatchers, setServiceWatchers] = (0, _react.useState)([]);
108
- const pushServiceWatcher = fn => setServiceWatchers(state => [...state, {
109
- fn,
110
- dt: Date.now()
111
- }]);
112
- const popServiceWatcher = () => {
113
- const [poped, ...rest] = serviceWatchers;
114
- setServiceWatchers(rest);
115
- return poped.fn || _functions.voidFn;
116
- };
117
- const serviceWatchersWorker = () => {
118
- popServiceWatcher()();
119
- };
120
- (0, _react.useEffect)(() => {
121
- if (serviceWatchers.length) serviceWatchersWorker();
122
- }, [serviceWatchers]);
123
- // SERVICE WATCHERS MANAGEMENT FUNCTIONS | END //
124
-
125
- // INNER VALUE MANAGEMENT FUNCTIONS | START //
126
- const [innerValue, setInnerValue] = (0, _react.useState)([]);
127
- const [undoValue, setUndoValue] = (0, _react.useState)("");
128
- const [redoValue, setRedoValue] = (0, _react.useState)(null);
129
- const [isUndoValueBlocked, setIsUndoValueBlocked] = (0, _react.useState)(false);
130
- const addInnerValueChar = _ref => {
131
- let {
132
- char,
133
- i = null,
134
- data = {}
135
- } = _ref;
136
- setInnerValue(state => {
137
- const stateCopy = [...state];
138
- const charObj = getCharObj(char, data);
139
- stateCopy.push(charObj);
140
- return stateCopy;
141
- });
142
- };
143
- const updateInnerValueChar = function () {
144
- let {
145
- char = null
146
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
147
- let i = arguments.length > 1 ? arguments[1] : undefined;
148
- setInnerValue(state => {
149
- if (!state[i]) return state;
150
- const stateCopy = [...state];
151
- if (!stateCopy[i].isSpecialSymbol && char !== null) stateCopy[i].char = char;
152
- return stateCopy;
153
- });
154
- };
155
- const resetInnerValue = () => {
156
- innerValue.map((v, i) => updateInnerValueChar({
157
- char: ""
158
- }, i));
159
- };
160
- // INNER VALUE MANAGEMENT FUNCTIONS | END //
161
-
162
- // CHECKERS | START //
163
- const isValidChar = _ref2 => {
164
- let {
165
- char: key,
166
- i,
167
- disableErrors = false
168
- } = _ref2;
169
- const maskChar = getMaskCharByIndex(i);
170
- switch (maskChar) {
171
- case _config.DIGIT_MASK_CHAR:
172
- if (!(0, _functions.isDigit)(key)) {
173
- if (!disableErrors) {
174
- setErrorMessage(errors.onlyDigit);
175
- }
176
- return false;
177
- }
178
- break;
179
- case _config.UPPERCASE_LETTER_MASK_CHAR:
180
- if (adaptTextCase) key = key.toUpperCase();
181
- if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
182
- if (!disableErrors) setErrorMessage(errors.onlyLetter);
183
- return false;
184
- }
185
- if (isCaseSensitive && !(0, _functions.isUpperCaseLetter)(key)) {
186
- if (!disableErrors) setErrorMessage(errors.onlyUpperCase);
187
- return false;
188
- }
189
- break;
190
- case _config.LOWERCASE_LETTER_MASK_CHAR:
191
- if (adaptTextCase) key = key.toLowerCase();
192
- if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
193
- if (!disableErrors) setErrorMessage(errors.onlyLetter);
194
- return false;
195
- }
196
- if (isCaseSensitive && !(0, _functions.isLowerCaseLetter)(key)) {
197
- if (!disableErrors) setErrorMessage(errors.onlyLowerCase);
198
- return false;
199
- }
200
- break;
201
- default:
202
- return false;
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return InputMask;
203
9
  }
204
- return true;
205
- };
206
- const isSpecialSymbolMaskChar = _ref3 => {
207
- let {
208
- char
209
- } = _ref3;
210
- return !(0, _functions.isDigitMaskChar)(char) && !(0, _functions.isLetterMaskChar)(char);
211
- };
212
- const isSpecialSymbolChar = _ref4 => {
213
- let {
214
- char
215
- } = _ref4;
216
- return !(0, _functions.isDigit)(char) && !(0, _functions.isLetter)(char);
217
- };
218
- // CHECKERS | END //
219
-
220
- // GETTERS | START //
221
- const getCharObj = function (char) {
222
- let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
223
- const isSpecialSymbol = isSpecialSymbolChar({
224
- char
225
- });
226
- const isSpecialSymbolMask = isSpecialSymbolMaskChar({
227
- char
228
- });
229
- if (char === " ") char = _config.SPACE_CHAR;
230
- return {
231
- char: isSpecialSymbolMask ? char : "",
232
- maskChar: char,
233
- isSpecialSymbol: isSpecialSymbolMask,
234
- isCharSymbol: !isSpecialSymbol && char !== "" && isSpecialSymbolMask,
235
- ref: /*#__PURE__*/(0, _react.createRef)(),
236
- ...data
10
+ });
11
+ const _jsxruntime = require("react/jsx-runtime");
12
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
+ const _classnames = /*#__PURE__*/ _interop_require_default(require("classnames"));
14
+ const _reactfeather = require("react-feather");
15
+ const _Hint = /*#__PURE__*/ _interop_require_default(require("../../UI/Hint/Hint"));
16
+ const _indexconstants = require("./../../../Constants/index.constants.js");
17
+ const _InputCarretPosition = require("./InputCarretPosition");
18
+ const _config = require("./config");
19
+ const _functions = require("./functions");
20
+ require("./InputMask.scss");
21
+ function _interop_require_default(obj) {
22
+ return obj && obj.__esModule ? obj : {
23
+ default: obj
237
24
  };
238
- };
239
- const getCharByIndex = i => {
240
- return innerValue[i] ? {
241
- ...innerValue[i]
242
- } : undefined;
243
- };
244
- const getMaskCharByIndex = i => {
245
- return innerValue[i]?.maskChar || undefined;
246
- };
247
- const getSelectStartIndex = () => {
248
- if (selectionStartX === selectionEndX) return 0;
249
- const minX = selectionStartX < selectionEndX ? selectionStartX : selectionEndX;
250
- const maxX = selectionStartX > selectionEndX ? selectionStartX : selectionEndX;
251
- const {
252
- index
253
- } = innerValue.reduce((resObj, _ref5, index) => {
254
- let {
255
- char,
256
- ref
257
- } = _ref5;
258
- if (ref?.current === null) return resObj;
259
- const {
260
- left: charX,
261
- width: charWidth
262
- } = ref?.current?.getBoundingClientRect();
263
- const charCenterX = charX + charWidth / 2;
264
-
265
- // If Char X-Coord Out Of Range
266
- if (!charX || minX > charCenterX || maxX < charCenterX) return resObj;
267
- if (resObj.index === null || minX <= charCenterX && charCenterX >= maxX && charCenterX < resObj.charX) return {
268
- index,
269
- charX: charCenterX
270
- };
271
- return resObj;
272
- }, {
273
- index: null,
274
- charX: null
275
- });
276
- return index;
277
- };
278
- const getPlaceholderCharByIndex = i => {
279
- const {
280
- maskChar
281
- } = getCharByIndex(i);
282
- if (usePatternPlaceholder) {
283
- return maskPatternPlaceholder[i] || maskPlaceholder;
284
- } else {
285
- if ((0, _functions.isDigitMaskChar)(maskChar) && maskDigitPlaceholder) return maskDigitPlaceholder;
286
- if ((0, _functions.isLetterMaskChar)(maskChar) && maskLetterPlaceholder) return maskLetterPlaceholder;
287
- return maskPlaceholder;
25
+ }
26
+ function _getRequireWildcardCache(nodeInterop) {
27
+ if (typeof WeakMap !== "function") return null;
28
+ var cacheBabelInterop = new WeakMap();
29
+ var cacheNodeInterop = new WeakMap();
30
+ return (_getRequireWildcardCache = function(nodeInterop) {
31
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
+ })(nodeInterop);
33
+ }
34
+ function _interop_require_wildcard(obj, nodeInterop) {
35
+ if (!nodeInterop && obj && obj.__esModule) {
36
+ return obj;
288
37
  }
289
- };
290
- const getInnerValueAsString = function () {
291
- let {
292
- replaceSpace = false
293
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
294
- const result = innerValue.slice(0, innerValue.length - 1).map((_ref6, i) => {
295
- let {
296
- char,
297
- maskChar
298
- } = _ref6;
299
- return char === "" ? getPlaceholderCharByIndex(i) || maskChar : char;
300
- }).join("");
301
- return replaceSpace ? result?.replace(/\u00A0/g, " ") : result;
302
- };
303
- const getClearInnerValueAsString = function () {
304
- let start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
305
- return innerValue.filter((charObj, i) => i >= start).reduce((result, _ref7, i, arr) => {
306
- let {
307
- char,
308
- maskChar,
309
- isSpecialSymbol,
310
- isCharSymbol
311
- } = _ref7;
312
- if (char !== maskChar && char !== "" || !isSpecialSymbol || isCharSymbol) result += char; // || isCharSymbol
313
- return result;
314
- }, "");
315
- };
316
- const getLastTypedIndex = () => {
317
- return innerValue.reduce((lastIndex, _ref8, i) => {
318
- let {
319
- char,
320
- isSpecialSymbol
321
- } = _ref8;
322
- if (!isSpecialSymbol && char !== _config.SPACE_CHAR && char !== "" || lastIndex === null) lastIndex = i;
323
- return lastIndex;
324
- }, -1) + 1;
325
- };
326
- // GETTERS | END //
327
-
328
- // SETTERS | START //
329
- const setFocusOnChar = (i, prevIndex) => {
330
- const charObj = getCharByIndex(i);
331
- if (!charObj) return false;
332
- const {
333
- ref,
334
- isSpecialSymbol
335
- } = charObj;
336
- if (!ref) return false;
337
- if ((maxEditableLen !== -1 ? i < maxEditableLen : true) && isSpecialSymbol && i < innerValue.length - 1) {
338
- return prevIndex > i ? onArrowLeftDown(null, i) : onArrowRightDown(null, i);
38
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
39
+ return {
40
+ default: obj
41
+ };
339
42
  }
340
- if (maxEditableLen !== -1 && i > maxEditableLen) {
341
- setFocusOnChar(maxEditableLen, i);
342
- return false;
43
+ var cache = _getRequireWildcardCache(nodeInterop);
44
+ if (cache && cache.has(obj)) {
45
+ return cache.get(obj);
343
46
  }
344
- ref.current?.focus();
345
- setTimeout(() => (0, _InputCarretPosition.setCaretPosition)(ref.current, 0), 10);
346
- return true;
347
- };
348
- // SETTERS | END //
349
-
350
- ///--- Event Handlers ---///
351
-
352
- // SERVICE KEYS HANDLERS | START //
353
- const onArrowLeftDown = (e, i) => setFocusOnChar(i - 1, i);
354
- const onArrowRightDown = (e, i) => {
355
- const key = e?.key || null;
356
- if (maskAsPlaceholder && i > getLastTypedIndex()) {
357
- return setFocusOnChar(getLastTypedIndex() + 1, i);
358
- }
359
- // If Current Index Equals LastTyped Index in MaskAsPlaceholder Mode
360
- if (maskAsPlaceholder && i === getLastTypedIndex() && key === "ArrowRight") return false;
361
- return setFocusOnChar(i + 1, i);
362
- };
363
- const onBackspaceDown = (e, i) => {
364
- if (!isUndoValueBlocked) {
365
- setUndoValue(getClearInnerValueAsString());
366
- setIsUndoValueBlocked(true);
367
- }
368
- if ((0, _functions.getSelectionText)().length) return deleteSelectedText();
369
- const prevIndex = i - 1;
370
- const charObj = getCharByIndex(prevIndex);
371
- if (!charObj) return false;
372
- const {
373
- isSpecialSymbol
374
- } = charObj;
375
- if (isSpecialSymbol) return onBackspaceDown(e, prevIndex);
376
- if (maskAsPlaceholder) {
377
- const newText = innerValue.slice(0, prevIndex).concat(innerValue.slice(i, maxEditableLen !== -1 ? maxEditableLen : innerValue.length)).reduce((text, _ref9) => {
378
- let {
379
- char
380
- } = _ref9;
381
- return text.concat(char);
382
- }, "");
383
- resetInnerValue();
384
- onPaste({
385
- text: newText
386
- }, 0);
387
- } else {
388
- updateInnerValueChar({
389
- char: ""
390
- }, prevIndex);
391
- }
392
- setFocusOnChar(prevIndex, i);
393
- return true;
394
- };
395
- const onDeleteDown = (e, i) => {
396
- if (!isUndoValueBlocked) {
397
- setUndoValue(getClearInnerValueAsString());
398
- setIsUndoValueBlocked(true);
47
+ var newObj = {
48
+ __proto__: null
49
+ };
50
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
51
+ for(var key in obj){
52
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
53
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
54
+ if (desc && (desc.get || desc.set)) {
55
+ Object.defineProperty(newObj, key, desc);
56
+ } else {
57
+ newObj[key] = obj[key];
58
+ }
59
+ }
399
60
  }
400
- if ((0, _functions.getSelectionText)().length) return deleteSelectedText();
401
- const nextIndex = i + 1;
402
- const charObj = getCharByIndex(i);
403
- if (!charObj) return false;
404
- const {
405
- char,
406
- isSpecialSymbol
407
- } = charObj;
408
- if (isSpecialSymbol) return onDeleteDown(e, i + 1);
409
- if (char === "") return false;
410
- if (maskAsPlaceholder) {
411
- const newText = innerValue.slice(0, i).concat(innerValue.slice(nextIndex, maxEditableLen !== -1 ? maxEditableLen : innerValue.length)).reduce((text, _ref10) => {
412
- let {
413
- char
414
- } = _ref10;
415
- return text.concat(char);
416
- }, "");
417
- resetInnerValue();
418
- onPaste({
419
- text: newText
420
- }, 0);
421
- setFocusOnChar(i, i);
422
- } else {
423
- updateInnerValueChar({
424
- char: ""
425
- }, i);
426
- setFocusOnChar(nextIndex, i);
61
+ newObj.default = obj;
62
+ if (cache) {
63
+ cache.set(obj, newObj);
427
64
  }
428
- return true;
429
- };
430
- const onHomeDown = (e, i) => setFocusOnChar(0, -1);
431
- const onEndDown = (e, i) => setTimeout(() => setFocusOnChar(maskAsPlaceholder ? getLastTypedIndex() : 0, 0), 10);
432
- // SERVICE KEYS HANDLERS | END //
433
-
434
- // GENERAL EVENT HANDLERS | START //
435
- const handleServiceKeyDown = (e, i) => {
436
- const {
437
- key
438
- } = e;
439
- switch (key) {
440
- case "ArrowLeft":
441
- return onArrowLeftDown(e, i);
442
- break;
443
- case "ArrowRight":
444
- return onArrowRightDown(e, i);
445
- break;
446
- case "Backspace":
447
- return onBackspaceDown(e, i);
448
- break;
449
- case "Delete":
450
- return onDeleteDown(e, i);
451
- break;
452
- case "Home":
453
- return onHomeDown(e, i);
454
- break;
455
- case "End":
456
- return onEndDown(e, i);
457
- break;
458
- default:
65
+ return newObj;
66
+ }
67
+ function InputMask({ maskPattern, maskPatternPlaceholder, maskPlaceholder, maskDigitPlaceholder, maskLetterPlaceholder, usePatternPlaceholder, disabled, maskAsPlaceholder = true, maxEditableLen = -1, isFocusedDefault = false, isClearable, isCaseSensitive, adaptTextCase, isUseAutoSelect = true, icon, showIcon, isIconLeft, isIconRight, value, blinkErrors = true, blinkDuration = 100, showErrors = false, className = "", errors: customErrors = _config.DEFAULT_ERRORS, error: customError = "", ref, onChange: onChangeProp = ()=>{}, onFocus: onFocusProp = ()=>{}, onBlur: onBlurProp = ()=>{}, onKeyDown: onKeyDownProp = ()=>{}, imitateTypingOnPaste = false, imitateTypingOnPasteDelay = 100, showHint = false, hintText = "", hintClassName = "", isHintRight = true, isHintLeft = false, hintPosition = "right", hideMaskOnBlur = true, returnMaskedValue = false, name, testId = "input-mask" } = {}) {
68
+ const errors = {
69
+ ..._config.DEFAULT_ERRORS,
70
+ ...customErrors
71
+ };
72
+ const [isMaskRendered, setMaskRendered] = (0, _react.useState)(false);
73
+ const inputRef = (0, _react.useRef)(null);
74
+ const [isMouseDown, setIsMouseDown] = (0, _react.useState)(false);
75
+ const [isFocused, setFocused] = (0, _react.useState)(false);
76
+ const [isInitValue, setIsInitValue] = (0, _react.useState)(false);
77
+ const inputThrottlingTimeout = 20;
78
+ const [isInputThrottled, setIsInputThrottled] = (0, _react.useState)(false);
79
+ // ERRORS MANAGEMENT FUNCTIONS | START //
80
+ const [isError, setError] = (0, _react.useState)(false);
81
+ const [blinkError, setBlinkError] = (0, _react.useState)(false);
82
+ const [errorMessage, setErrorMessage] = (0, _react.useState)(errors.default);
83
+ const clearErrorMessage = ()=>setErrorMessage(errors.default);
84
+ // ERRORS MANAGEMENT FUNCTIONS | END //
85
+ // SELECTION MANAGEMENT FUNCTIONS | START //
86
+ const [isSelecting, setIsSelecting] = (0, _react.useState)(false);
87
+ const [selectedText, setSelectedText] = (0, _react.useState)("");
88
+ const [selectionStartX, setSelectionStartX] = (0, _react.useState)(null);
89
+ const [selectionEndX, setSelectionEndX] = (0, _react.useState)(null);
90
+ // SELECTION MANAGEMENT FUNCTIONS | END //
91
+ // SERVICE WATCHERS MANAGEMENT FUNCTIONS | START //
92
+ const [serviceWatchers, setServiceWatchers] = (0, _react.useState)([]);
93
+ const pushServiceWatcher = (fn)=>setServiceWatchers((state)=>[
94
+ ...state,
95
+ {
96
+ fn,
97
+ dt: Date.now()
98
+ }
99
+ ]);
100
+ const popServiceWatcher = ()=>{
101
+ const [poped, ...rest] = serviceWatchers;
102
+ setServiceWatchers(rest);
103
+ return poped.fn || _functions.voidFn;
104
+ };
105
+ const serviceWatchersWorker = ()=>{
106
+ popServiceWatcher()();
107
+ };
108
+ (0, _react.useEffect)(()=>{
109
+ if (serviceWatchers.length) serviceWatchersWorker();
110
+ }, [
111
+ serviceWatchers
112
+ ]);
113
+ // SERVICE WATCHERS MANAGEMENT FUNCTIONS | END //
114
+ // INNER VALUE MANAGEMENT FUNCTIONS | START //
115
+ const [innerValue, setInnerValue] = (0, _react.useState)([]);
116
+ const [undoValue, setUndoValue] = (0, _react.useState)("");
117
+ const [redoValue, setRedoValue] = (0, _react.useState)(null);
118
+ const [isUndoValueBlocked, setIsUndoValueBlocked] = (0, _react.useState)(false);
119
+ const addInnerValueChar = ({ char, i = null, data = {} })=>{
120
+ setInnerValue((state)=>{
121
+ const stateCopy = [
122
+ ...state
123
+ ];
124
+ const charObj = getCharObj(char, data);
125
+ stateCopy.push(charObj);
126
+ return stateCopy;
127
+ });
128
+ };
129
+ const updateInnerValueChar = ({ char = null } = {}, i)=>{
130
+ setInnerValue((state)=>{
131
+ if (!state[i]) return state;
132
+ const stateCopy = [
133
+ ...state
134
+ ];
135
+ if (!stateCopy[i].isSpecialSymbol && char !== null) stateCopy[i].char = char;
136
+ return stateCopy;
137
+ });
138
+ };
139
+ const resetInnerValue = ()=>{
140
+ innerValue.map((v, i)=>updateInnerValueChar({
141
+ char: ""
142
+ }, i));
143
+ };
144
+ // INNER VALUE MANAGEMENT FUNCTIONS | END //
145
+ // CHECKERS | START //
146
+ const isValidChar = ({ char: key, i, disableErrors = false })=>{
147
+ const maskChar = getMaskCharByIndex(i);
148
+ switch(maskChar){
149
+ case _config.DIGIT_MASK_CHAR:
150
+ if (!(0, _functions.isDigit)(key)) {
151
+ if (!disableErrors) {
152
+ setErrorMessage(errors.onlyDigit);
153
+ }
154
+ return false;
155
+ }
156
+ break;
157
+ case _config.UPPERCASE_LETTER_MASK_CHAR:
158
+ if (adaptTextCase) key = key.toUpperCase();
159
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
160
+ if (!disableErrors) setErrorMessage(errors.onlyLetter);
161
+ return false;
162
+ }
163
+ if (isCaseSensitive && !(0, _functions.isUpperCaseLetter)(key)) {
164
+ if (!disableErrors) setErrorMessage(errors.onlyUpperCase);
165
+ return false;
166
+ }
167
+ break;
168
+ case _config.LOWERCASE_LETTER_MASK_CHAR:
169
+ if (adaptTextCase) key = key.toLowerCase();
170
+ if (!(0, _functions.isLetter)(key) && !isCaseSensitive) {
171
+ if (!disableErrors) setErrorMessage(errors.onlyLetter);
172
+ return false;
173
+ }
174
+ if (isCaseSensitive && !(0, _functions.isLowerCaseLetter)(key)) {
175
+ if (!disableErrors) setErrorMessage(errors.onlyLowerCase);
176
+ return false;
177
+ }
178
+ break;
179
+ default:
180
+ return false;
181
+ }
459
182
  return true;
460
- break;
461
- }
462
- };
463
- const handleKeyDown = async function (e, i) {
464
- let {
465
- disableErrors = false,
466
- disableIsSelectingCheck = false
467
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
468
- if (isSelecting && !disableIsSelectingCheck) {
469
- deleteSelectedText();
470
- (0, _functions.resetSelectionText)();
471
- setIsSelecting(false);
472
- setTimeout(() => handleKeyDown(e, getSelectStartIndex(), {
473
- disableErrors,
474
- disableIsSelectingCheck: true
475
- }), 10);
476
- return null;
477
- }
478
- try {
479
- e.stopPropagation();
480
- e.preventDefault();
481
- } catch (e) {}
482
- if (isInputThrottled) return false;
483
- setIsInputThrottled(true);
484
- let {
485
- key,
486
- keyCode
487
- } = e;
488
- const charObj = getCharByIndex(i);
489
-
490
- // Android Text Typing FIX
491
- // eslint-disable-next-line eqeqeq
492
- if (keyCode == _config.ANDROID_CHROME_TEXT_CODE) {
493
- const {
494
- ref: charRef
495
- } = charObj;
496
- key = await new Promise(resolve => {
497
- setTimeout(() => {
498
- //Typed Text
499
- if (charRef?.current?.innerText?.length >= 2) {
500
- const [key, prevChar] = charRef?.current?.innerText;
501
- charRef.current.innerText = prevChar;
502
- resolve(key);
503
- } else {
504
- resolve(null);
505
- }
506
- }, 1);
507
- });
508
- }
509
- if (!charObj || i === innerValue.length - 1) return false;
510
- if (maskAsPlaceholder && i > getLastTypedIndex() + 1) return await handleKeyDown(e, getLastTypedIndex() === 0 ? 0 : getLastTypedIndex() + 1, {
511
- disableErrors
512
- });
513
- const {
514
- isSpecialSymbol,
515
- maskChar,
516
- isReadOnly
517
- } = charObj;
518
- if (isReadOnly) return false;
519
-
520
- //IF DEFAULT CHAR IS SPACE, SWITCH TO NEXT INPUT
521
- if (maskChar === _config.SPACE_CHAR) return await handleKeyDown(e, i + 1);
522
- if (isSpecialSymbol && maskChar !== key) return false;
523
- if (!isValidChar({
524
- char: key,
525
- i,
526
- disableErrors
527
- })) return false;
528
- if (maskAsPlaceholder && getClearInnerValueAsString(i)?.length !== 0) {
529
- const fromIndex = i + 1;
530
- const text = innerValue.slice().filter((_ref11, index) => {
531
- let {
532
- isCharSymbol
533
- } = _ref11;
534
- return index >= i && !isCharSymbol;
535
- }).map((_ref12, index) => {
536
- let {
537
- char
538
- } = _ref12;
539
- return char;
540
- }).join("");
541
- onPaste({
542
- text
543
- }, fromIndex, false);
544
- }
545
- setIsUndoValueBlocked(false);
546
- updateInnerValueChar({
547
- char: key
548
- }, i);
549
- setTimeout(() => onArrowRightDown(e, i), 1);
550
- return true;
551
- };
552
- const handleKeyCombinations = (e, i) => {
553
- const {
554
- key,
555
- keyCode
556
- } = e;
557
- switch (keyCode) {
558
- //Ctrl + A
559
- case 65:
560
- selectAllText(e);
561
- break;
562
- //Ctrl + Y
563
- case 89:
564
- if (redoValue) {
565
- resetInnerValue();
566
- onPaste({
567
- text: redoValue
568
- }, 0, true);
183
+ };
184
+ const isSpecialSymbolMaskChar = ({ char })=>{
185
+ return !(0, _functions.isDigitMaskChar)(char) && !(0, _functions.isLetterMaskChar)(char);
186
+ };
187
+ const isSpecialSymbolChar = ({ char })=>{
188
+ return !(0, _functions.isDigit)(char) && !(0, _functions.isLetter)(char);
189
+ };
190
+ // CHECKERS | END //
191
+ // GETTERS | START //
192
+ const getCharObj = (char, data = {})=>{
193
+ const isSpecialSymbol = isSpecialSymbolChar({
194
+ char
195
+ });
196
+ const isSpecialSymbolMask = isSpecialSymbolMaskChar({
197
+ char
198
+ });
199
+ if (char === " ") char = _config.SPACE_CHAR;
200
+ return {
201
+ char: isSpecialSymbolMask ? char : "",
202
+ maskChar: char,
203
+ isSpecialSymbol: isSpecialSymbolMask,
204
+ isCharSymbol: !isSpecialSymbol && char !== "" && isSpecialSymbolMask,
205
+ ref: /*#__PURE__*/ (0, _react.createRef)(),
206
+ ...data
207
+ };
208
+ };
209
+ const getCharByIndex = (i)=>{
210
+ return innerValue[i] ? {
211
+ ...innerValue[i]
212
+ } : undefined;
213
+ };
214
+ const getMaskCharByIndex = (i)=>{
215
+ var _innerValue_i;
216
+ return ((_innerValue_i = innerValue[i]) === null || _innerValue_i === void 0 ? void 0 : _innerValue_i.maskChar) || undefined;
217
+ };
218
+ const getSelectStartIndex = ()=>{
219
+ if (selectionStartX === selectionEndX) return 0;
220
+ const minX = selectionStartX < selectionEndX ? selectionStartX : selectionEndX;
221
+ const maxX = selectionStartX > selectionEndX ? selectionStartX : selectionEndX;
222
+ const { index } = innerValue.reduce((resObj, { char, ref }, index)=>{
223
+ var _ref_current;
224
+ if ((ref === null || ref === void 0 ? void 0 : ref.current) === null) return resObj;
225
+ const { left: charX, width: charWidth } = ref === null || ref === void 0 ? void 0 : (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.getBoundingClientRect();
226
+ const charCenterX = charX + charWidth / 2;
227
+ // If Char X-Coord Out Of Range
228
+ if (!charX || minX > charCenterX || maxX < charCenterX) return resObj;
229
+ if (resObj.index === null || minX <= charCenterX && charCenterX >= maxX && charCenterX < resObj.charX) return {
230
+ index,
231
+ charX: charCenterX
232
+ };
233
+ return resObj;
234
+ }, {
235
+ index: null,
236
+ charX: null
237
+ });
238
+ return index;
239
+ };
240
+ const getPlaceholderCharByIndex = (i)=>{
241
+ const { maskChar } = getCharByIndex(i);
242
+ if (usePatternPlaceholder) {
243
+ return maskPatternPlaceholder[i] || maskPlaceholder;
244
+ } else {
245
+ if ((0, _functions.isDigitMaskChar)(maskChar) && maskDigitPlaceholder) return maskDigitPlaceholder;
246
+ if ((0, _functions.isLetterMaskChar)(maskChar) && maskLetterPlaceholder) return maskLetterPlaceholder;
247
+ return maskPlaceholder;
569
248
  }
570
- break;
571
- //Ctrl + Z
572
- case 90:
573
- setRedoValue(getClearInnerValueAsString());
574
- resetInnerValue();
575
- onPaste({
576
- text: undoValue
577
- }, 0, true);
578
- break;
579
- }
580
- };
581
- const onKeyDown = async function (e) {
582
- let i = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
583
- if (!isFocused && !isSelecting) return false;
584
- const {
585
- key,
586
- ctrlKey,
587
- altKey
588
- } = e;
589
- const target = innerValue[0].ref?.current || e.target;
590
- onKeyDownProp({
591
- ...e,
592
- target
593
- }, i);
594
- if (_indexConstants.KEYBOARD_SERVICE_KEYS.includes(key) && _config.EXCLUDED_KEYS.includes(key)) return true;
595
- setError(false);
596
- clearErrorMessage();
597
- if (ctrlKey || altKey) {
598
- if (!_indexConstants.KEYBOARD_SERVICE_KEYS.includes(key)) handleKeyCombinations(e, i);
599
- return true;
600
- }
601
- e.preventDefault();
602
- e.stopPropagation();
603
- const handleResult = _indexConstants.KEYBOARD_SERVICE_KEYS.includes(key) ? handleServiceKeyDown(e, i) : await handleKeyDown(e, i);
604
- if (blinkErrors && !handleResult && i !== null) {
605
- setBlinkError(true);
606
- }
607
- };
608
- const onClick = function (e, cb) {
609
- let {
610
- ignoreIsSelecting = false
611
- } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
612
- try {
613
- e.stopPropagation();
614
- e.preventDefault();
615
- } catch (error) {}
616
- if (isSelecting && (selectedText.length || (0, _functions.getSelectionText)().length) && !ignoreIsSelecting) return false;
617
- setFocused(true);
618
- if (e.detail === 2) selectAllText(e);
619
- if (typeof cb === "function") cb(e);
620
- };
621
- const onCharClick = (e, i) => {
622
- if (e.detail == 2) {
623
- selectAllText(e);
624
- return true;
625
- }
626
- const {
627
- char,
628
- maskChar
629
- } = getCharByIndex(i);
630
- if (maskAsPlaceholder && !isValidChar({
631
- char,
632
- i,
633
- disableErrors: true
634
- })) i = getLastTypedIndex();
635
- setIsSelecting(false);
636
- (0, _functions.resetSelectionText)();
637
- setTimeout(() => onClick(e, () => setFocusOnChar(i, 0), {
638
- ignoreIsSelecting: true
639
- }), 50);
640
- };
641
- const onWrapperClick = e => {
642
- e.stopPropagation();
643
- e.preventDefault();
644
- if (!isMouseDown && !isSelecting) {
645
- onClick(e);
646
- setFocusOnChar(getLastTypedIndex(), 0);
647
- }
648
- };
649
- const onClearClick = e => {
650
- e.stopPropagation();
651
- e.preventDefault();
652
- resetInnerValue();
653
- onHomeDown(null, 0);
654
- };
655
- const onMouseDownMove = e => {
656
- if (!isMouseDown) return false;
657
- setIsSelecting(true);
658
- const {
659
- clientX
660
- } = e;
661
- if (selectionStartX === null) setSelectionStartX(clientX);
662
- setSelectionEndX(clientX);
663
- };
664
- const onBlur = e => {
665
- if (isFocused) onBlurProp();
666
- setFocused(false);
667
- };
668
- const onFocus = (e, i) => {
669
- const charObj = getCharByIndex(i);
670
- if (!charObj) return false;
671
- const {
672
- isSpecialSymbol,
673
- ref
674
- } = charObj;
675
- (0, _InputCarretPosition.setCaretPosition)(ref.current, 0);
676
- if ((maxEditableLen !== -1 ? i < maxEditableLen : true) && isSpecialSymbol && i < innerValue.length - 1) {
677
- onFocus(e, i + 1);
678
- return false;
679
- }
680
- if (!isFocused) onFocusProp(e);
681
- setFocused(true);
682
- };
683
- const onPaste = function (e, i) {
684
- let setFocusToEnd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
685
- try {
686
- e.stopPropagation();
687
- e.preventDefault();
688
- } catch (error) {}
689
- setIsSelecting(false);
690
- (0, _functions.resetSelectionText)();
691
- const pastedText = (e?.clipboardData || window?.clipboardData)?.getData("text/plain") || e?.clipboardData?.getData("Text") || e.text;
692
- if (!pastedText) return false;
693
- const replacedIndexes = [];
694
- if (maskAsPlaceholder && e?.type === "paste") {
695
- const fromIndex = i + parseInt(pastedText?.length, 10);
696
- const text = innerValue.slice().filter((_ref13, index) => {
697
- let {
698
- isCharSymbol
699
- } = _ref13;
700
- return index >= i && !isCharSymbol;
701
- }).map((_ref14, index) => {
702
- let {
703
- char
704
- } = _ref14;
705
- return char;
706
- }).join("");
707
- onPaste({
708
- text
709
- }, fromIndex, false);
710
- }
711
- pastedText.split("").filter(char => (0, _functions.isDigit)(char) || (0, _functions.isLetter)(char)).map((pastedChar, offset) => {
712
- const charIndex = i + offset;
713
- let isReplaced = false;
714
- let isValid = false;
715
- for (let index = charIndex; index < innerValue.length && !isReplaced; ++index) {
716
- const charObj = getCharByIndex(index);
717
- if (!charObj) continue;
718
- const {
719
- char,
720
- maskChar,
721
- isSpecialSymbol
722
- } = charObj;
723
-
724
- // If Char Is Valid
725
- if (!isValidChar({
726
- char: pastedChar,
727
- i: index,
728
- disableErrors: true
729
- })) continue;
730
-
731
- // If Char Already Replaced
732
- if (replacedIndexes.includes(index)) continue;
733
- isReplaced = true;
734
- isValid = true;
735
- replacedIndexes.push(index);
736
- if (imitateTypingOnPaste) {
737
- setTimeout(() => {
249
+ };
250
+ const getInnerValueAsString = ({ replaceSpace = false } = {})=>{
251
+ const result = innerValue.slice(0, innerValue.length - 1).map(({ char, maskChar }, i)=>{
252
+ return char === "" ? getPlaceholderCharByIndex(i) || maskChar : char;
253
+ }).join("");
254
+ return replaceSpace ? result === null || result === void 0 ? void 0 : result.replace(/\u00A0/g, " ") : result;
255
+ };
256
+ const getClearInnerValueAsString = (start = 0)=>{
257
+ return innerValue.filter((charObj, i)=>i >= start).reduce((result, { char, maskChar, isSpecialSymbol, isCharSymbol }, i, arr)=>{
258
+ if (char !== maskChar && char !== "" || !isSpecialSymbol || isCharSymbol) result += char; // || isCharSymbol
259
+ return result;
260
+ }, "");
261
+ };
262
+ const getLastTypedIndex = ()=>{
263
+ return innerValue.reduce((lastIndex, { char, isSpecialSymbol }, i)=>{
264
+ if (!isSpecialSymbol && char !== _config.SPACE_CHAR && char !== "" || lastIndex === null) lastIndex = i;
265
+ return lastIndex;
266
+ }, -1) + 1;
267
+ };
268
+ // GETTERS | END //
269
+ // SETTERS | START //
270
+ const setFocusOnChar = (i, prevIndex)=>{
271
+ var _ref_current;
272
+ const charObj = getCharByIndex(i);
273
+ if (!charObj) return false;
274
+ const { ref, isSpecialSymbol } = charObj;
275
+ if (!ref) return false;
276
+ if ((maxEditableLen !== -1 ? i < maxEditableLen : true) && isSpecialSymbol && i < innerValue.length - 1) {
277
+ return prevIndex > i ? onArrowLeftDown(null, i) : onArrowRightDown(null, i);
278
+ }
279
+ if (maxEditableLen !== -1 && i > maxEditableLen) {
280
+ setFocusOnChar(maxEditableLen, i);
281
+ return false;
282
+ }
283
+ (_ref_current = ref.current) === null || _ref_current === void 0 ? void 0 : _ref_current.focus();
284
+ setTimeout(()=>(0, _InputCarretPosition.setCaretPosition)(ref.current, 0), 10);
285
+ return true;
286
+ };
287
+ // SETTERS | END //
288
+ ///--- Event Handlers ---///
289
+ // SERVICE KEYS HANDLERS | START //
290
+ const onArrowLeftDown = (e, i)=>setFocusOnChar(i - 1, i);
291
+ const onArrowRightDown = (e, i)=>{
292
+ const key = (e === null || e === void 0 ? void 0 : e.key) || null;
293
+ if (maskAsPlaceholder && i > getLastTypedIndex()) {
294
+ return setFocusOnChar(getLastTypedIndex() + 1, i);
295
+ }
296
+ // If Current Index Equals LastTyped Index in MaskAsPlaceholder Mode
297
+ if (maskAsPlaceholder && i === getLastTypedIndex() && key === "ArrowRight") return false;
298
+ return setFocusOnChar(i + 1, i);
299
+ };
300
+ const onBackspaceDown = (e, i)=>{
301
+ if (!isUndoValueBlocked) {
302
+ setUndoValue(getClearInnerValueAsString());
303
+ setIsUndoValueBlocked(true);
304
+ }
305
+ if ((0, _functions.getSelectionText)().length) return deleteSelectedText();
306
+ const prevIndex = i - 1;
307
+ const charObj = getCharByIndex(prevIndex);
308
+ if (!charObj) return false;
309
+ const { isSpecialSymbol } = charObj;
310
+ if (isSpecialSymbol) return onBackspaceDown(e, prevIndex);
311
+ if (maskAsPlaceholder) {
312
+ const newText = innerValue.slice(0, prevIndex).concat(innerValue.slice(i, maxEditableLen !== -1 ? maxEditableLen : innerValue.length)).reduce((text, { char })=>{
313
+ return text.concat(char);
314
+ }, "");
315
+ resetInnerValue();
316
+ onPaste({
317
+ text: newText
318
+ }, 0);
319
+ } else {
738
320
  updateInnerValueChar({
739
- char: pastedChar
740
- }, index);
741
- }, offset * imitateTypingOnPasteDelay);
321
+ char: ""
322
+ }, prevIndex);
323
+ }
324
+ setFocusOnChar(prevIndex, i);
325
+ return true;
326
+ };
327
+ const onDeleteDown = (e, i)=>{
328
+ if (!isUndoValueBlocked) {
329
+ setUndoValue(getClearInnerValueAsString());
330
+ setIsUndoValueBlocked(true);
331
+ }
332
+ if ((0, _functions.getSelectionText)().length) return deleteSelectedText();
333
+ const nextIndex = i + 1;
334
+ const charObj = getCharByIndex(i);
335
+ if (!charObj) return false;
336
+ const { char, isSpecialSymbol } = charObj;
337
+ if (isSpecialSymbol) return onDeleteDown(e, i + 1);
338
+ if (char === "") return false;
339
+ if (maskAsPlaceholder) {
340
+ const newText = innerValue.slice(0, i).concat(innerValue.slice(nextIndex, maxEditableLen !== -1 ? maxEditableLen : innerValue.length)).reduce((text, { char })=>{
341
+ return text.concat(char);
342
+ }, "");
343
+ resetInnerValue();
344
+ onPaste({
345
+ text: newText
346
+ }, 0);
347
+ setFocusOnChar(i, i);
742
348
  } else {
743
- updateInnerValueChar({
744
- char: pastedChar
745
- }, index);
349
+ updateInnerValueChar({
350
+ char: ""
351
+ }, i);
352
+ setFocusOnChar(nextIndex, i);
746
353
  }
747
- }
748
- return {
749
- char: pastedChar,
750
- isValid
751
- };
752
- });
753
- const [lastCharIndex] = replacedIndexes.reverse();
754
- if (setFocusToEnd) setFocusOnChar(lastCharIndex + 1, i);
755
- return lastCharIndex;
756
- };
757
- const onCopy = (e, i) => {
758
- try {
759
- e.stopPropagation();
760
- e.preventDefault();
761
- } catch (error) {}
762
- (0, _functions.copyToClipboard)((0, _functions.getSelectionText)());
763
- };
764
- const onCut = (e, i) => {
765
- if (!isUndoValueBlocked) {
766
- setUndoValue(getClearInnerValueAsString());
767
- setIsUndoValueBlocked(true);
768
- }
769
- try {
770
- e.stopPropagation();
771
- e.preventDefault();
772
- } catch (error) {}
773
- (0, _functions.copyToClipboard)((0, _functions.getSelectionText)());
774
- deleteSelectedText();
775
- setIsSelecting(false);
776
- setFocusOnChar(i, 0);
777
- };
778
- // GENERAL EVENT HANDLERS | END //
779
-
780
- // FUNCTIONS | START //
781
- const cancelDefaultAction = (e, cb) => {
782
- const {
783
- key
784
- } = e;
785
- if (!_config.EXCLUDED_KEYS.includes(key) && _indexConstants.KEYBOARD_SERVICE_KEYS.includes(key)) {
786
- e.preventDefault();
787
- e.stopPropagation();
788
- }
789
- if (typeof cb === "function") cb(e);
790
- return false;
791
- };
792
- const selectAllText = e => {
793
- e.preventDefault();
794
- e.stopPropagation();
795
- setIsSelecting(true);
796
- setSelectionStartX(-1);
797
- setSelectionEndX(-1);
798
- (0, _functions.selectElementContents)(inputRef.current);
799
- setSelectedText((0, _functions.getSelectionText)());
800
- };
801
- const deleteSelectedText = () => {
802
- const selStartInd = getSelectStartIndex();
803
- if (selStartInd === null || selStartInd === undefined) return false;
804
- const selEndInd = (0, _functions.getSelectionText)().length + selStartInd;
805
- (0, _functions.resetSelectionText)();
806
- if (maskAsPlaceholder && getClearInnerValueAsString(selEndInd + 1)?.length !== 0) {
807
- const text = innerValue.slice().filter((_ref15, index) => {
808
- let {
809
- isSpecialSymbol,
810
- isCharSymbol
811
- } = _ref15;
812
- if (maxEditableLen !== -1 && index > maxEditableLen - 1) return false;
813
- return (index < selStartInd || index >= selEndInd) && !isSpecialSymbol && !isCharSymbol;
814
- }).map((_ref16, index) => {
815
- let {
816
- char
817
- } = _ref16;
818
- return char;
819
- }).join("");
820
- resetInnerValue();
821
- onPaste({
822
- text
823
- }, 0, false);
824
- setFocusOnChar(selStartInd);
825
- } else {
826
- for (let index = selStartInd; index < selEndInd; ++index) updateInnerValueChar({
827
- char: ""
828
- }, index);
829
- }
830
- setFocusOnChar(selStartInd, -1);
831
- return true;
832
- };
833
- // FUNCTIONS | END //
834
-
835
- ///--- OBSERVERS ---///
836
- // Input Throttling
837
- (0, _react.useEffect)(() => {
838
- if (isInputThrottled) setTimeout(() => setIsInputThrottled(false), inputThrottlingTimeout);
839
- }, [isInputThrottled]);
840
- //Render Mask
841
- (0, _react.useEffect)(() => {
842
- setInnerValue([]);
843
- setMaskRendered(false);
844
- if (!maskPattern) maskPattern = "";
845
- maskPattern.concat(" ").split("").map((char, id, i) => {
846
- addInnerValueChar({
847
- char,
848
- i,
849
- data: {
850
- id,
851
- isReadOnly: id === maskPattern.length
354
+ return true;
355
+ };
356
+ const onHomeDown = (e, i)=>setFocusOnChar(0, -1);
357
+ const onEndDown = (e, i)=>setTimeout(()=>setFocusOnChar(maskAsPlaceholder ? getLastTypedIndex() : 0, 0), 10);
358
+ // SERVICE KEYS HANDLERS | END //
359
+ // GENERAL EVENT HANDLERS | START //
360
+ const handleServiceKeyDown = (e, i)=>{
361
+ const { key } = e;
362
+ switch(key){
363
+ case "ArrowLeft":
364
+ return onArrowLeftDown(e, i);
365
+ break;
366
+ case "ArrowRight":
367
+ return onArrowRightDown(e, i);
368
+ break;
369
+ case "Backspace":
370
+ return onBackspaceDown(e, i);
371
+ break;
372
+ case "Delete":
373
+ return onDeleteDown(e, i);
374
+ break;
375
+ case "Home":
376
+ return onHomeDown(e, i);
377
+ break;
378
+ case "End":
379
+ return onEndDown(e, i);
380
+ break;
381
+ default:
382
+ return true;
383
+ break;
384
+ }
385
+ };
386
+ const handleKeyDown = async (e, i, { disableErrors = false, disableIsSelectingCheck = false } = {})=>{
387
+ var _getClearInnerValueAsString;
388
+ if (isSelecting && !disableIsSelectingCheck) {
389
+ deleteSelectedText();
390
+ (0, _functions.resetSelectionText)();
391
+ setIsSelecting(false);
392
+ setTimeout(()=>handleKeyDown(e, getSelectStartIndex(), {
393
+ disableErrors,
394
+ disableIsSelectingCheck: true
395
+ }), 10);
396
+ return null;
397
+ }
398
+ try {
399
+ e.stopPropagation();
400
+ e.preventDefault();
401
+ } catch (e) {}
402
+ if (isInputThrottled) return false;
403
+ setIsInputThrottled(true);
404
+ let { key, keyCode } = e;
405
+ const charObj = getCharByIndex(i);
406
+ // Android Text Typing FIX
407
+ // eslint-disable-next-line eqeqeq
408
+ if (keyCode == _config.ANDROID_CHROME_TEXT_CODE) {
409
+ const { ref: charRef } = charObj;
410
+ key = await new Promise((resolve)=>{
411
+ setTimeout(()=>{
412
+ var _charRef_current_innerText, _charRef_current;
413
+ //Typed Text
414
+ if ((charRef === null || charRef === void 0 ? void 0 : (_charRef_current = charRef.current) === null || _charRef_current === void 0 ? void 0 : (_charRef_current_innerText = _charRef_current.innerText) === null || _charRef_current_innerText === void 0 ? void 0 : _charRef_current_innerText.length) >= 2) {
415
+ var _charRef_current1;
416
+ const [key, prevChar] = charRef === null || charRef === void 0 ? void 0 : (_charRef_current1 = charRef.current) === null || _charRef_current1 === void 0 ? void 0 : _charRef_current1.innerText;
417
+ charRef.current.innerText = prevChar;
418
+ resolve(key);
419
+ } else {
420
+ resolve(null);
421
+ }
422
+ }, 1);
423
+ });
424
+ }
425
+ if (!charObj || i === innerValue.length - 1) return false;
426
+ if (maskAsPlaceholder && i > getLastTypedIndex() + 1) return await handleKeyDown(e, getLastTypedIndex() === 0 ? 0 : getLastTypedIndex() + 1, {
427
+ disableErrors
428
+ });
429
+ const { isSpecialSymbol, maskChar, isReadOnly } = charObj;
430
+ if (isReadOnly) return false;
431
+ //IF DEFAULT CHAR IS SPACE, SWITCH TO NEXT INPUT
432
+ if (maskChar === _config.SPACE_CHAR) return await handleKeyDown(e, i + 1);
433
+ if (isSpecialSymbol && maskChar !== key) return false;
434
+ if (!isValidChar({
435
+ char: key,
436
+ i,
437
+ disableErrors
438
+ })) return false;
439
+ if (maskAsPlaceholder && ((_getClearInnerValueAsString = getClearInnerValueAsString(i)) === null || _getClearInnerValueAsString === void 0 ? void 0 : _getClearInnerValueAsString.length) !== 0) {
440
+ const fromIndex = i + 1;
441
+ const text = innerValue.slice().filter(({ isCharSymbol }, index)=>index >= i && !isCharSymbol).map(({ char }, index)=>char).join("");
442
+ onPaste({
443
+ text
444
+ }, fromIndex, false);
445
+ }
446
+ setIsUndoValueBlocked(false);
447
+ updateInnerValueChar({
448
+ char: key
449
+ }, i);
450
+ setTimeout(()=>onArrowRightDown(e, i), 1);
451
+ return true;
452
+ };
453
+ const handleKeyCombinations = (e, i)=>{
454
+ const { key, keyCode } = e;
455
+ switch(keyCode){
456
+ //Ctrl + A
457
+ case 65:
458
+ selectAllText(e);
459
+ break;
460
+ //Ctrl + Y
461
+ case 89:
462
+ if (redoValue) {
463
+ resetInnerValue();
464
+ onPaste({
465
+ text: redoValue
466
+ }, 0, true);
467
+ }
468
+ break;
469
+ //Ctrl + Z
470
+ case 90:
471
+ setRedoValue(getClearInnerValueAsString());
472
+ resetInnerValue();
473
+ onPaste({
474
+ text: undoValue
475
+ }, 0, true);
476
+ break;
852
477
  }
853
- });
854
- if (value?.[id]) updateInnerValueChar({
855
- char: value[id]
856
- }, id);
857
- });
858
- setMaskRendered(true);
859
- }, [maskPattern]);
860
- (0, _react.useEffect)(() => {
861
- if (value !== getClearInnerValueAsString()) setIsInitValue(false);
862
- }, [value]);
863
- (0, _react.useEffect)(() => {
864
- if (isMaskRendered && !isInitValue && value !== getClearInnerValueAsString()) {
865
- if (value && value !== "") {
866
- let valueCharIndex = 0;
867
- innerValue.map((_ref17, i) => {
868
- let {
869
- isSpecialSymbol
870
- } = _ref17;
871
- if (isSpecialSymbol) return false;
872
- let char = value[valueCharIndex];
873
- let whileLimit = maskPattern?.length || 0;
874
- while (whileLimit && isSpecialSymbolChar({
875
- char: value[valueCharIndex]
876
- })) {
877
- whileLimit--;
878
- char = value[++valueCharIndex];
879
- }
880
-
881
- //If Valid
882
- if (isValidChar({
478
+ };
479
+ const onKeyDown = async (e, i = null)=>{
480
+ var _innerValue__ref;
481
+ if (!isFocused && !isSelecting) return false;
482
+ const { key, ctrlKey, altKey } = e;
483
+ const target = ((_innerValue__ref = innerValue[0].ref) === null || _innerValue__ref === void 0 ? void 0 : _innerValue__ref.current) || e.target;
484
+ onKeyDownProp({
485
+ ...e,
486
+ target
487
+ }, i);
488
+ if (_indexconstants.KEYBOARD_SERVICE_KEYS.includes(key) && _config.EXCLUDED_KEYS.includes(key)) return true;
489
+ setError(false);
490
+ clearErrorMessage();
491
+ if (ctrlKey || altKey) {
492
+ if (!_indexconstants.KEYBOARD_SERVICE_KEYS.includes(key)) handleKeyCombinations(e, i);
493
+ return true;
494
+ }
495
+ e.preventDefault();
496
+ e.stopPropagation();
497
+ const handleResult = _indexconstants.KEYBOARD_SERVICE_KEYS.includes(key) ? handleServiceKeyDown(e, i) : await handleKeyDown(e, i);
498
+ if (blinkErrors && !handleResult && i !== null) {
499
+ setBlinkError(true);
500
+ }
501
+ };
502
+ const onClick = (e, cb, { ignoreIsSelecting = false } = {})=>{
503
+ try {
504
+ e.stopPropagation();
505
+ e.preventDefault();
506
+ } catch (error) {}
507
+ if (isSelecting && (selectedText.length || (0, _functions.getSelectionText)().length) && !ignoreIsSelecting) return false;
508
+ setFocused(true);
509
+ if (e.detail === 2) selectAllText(e);
510
+ if (typeof cb === "function") cb(e);
511
+ };
512
+ const onCharClick = (e, i)=>{
513
+ if (e.detail == 2) {
514
+ selectAllText(e);
515
+ return true;
516
+ }
517
+ const { char, maskChar } = getCharByIndex(i);
518
+ if (maskAsPlaceholder && !isValidChar({
883
519
  char,
884
520
  i,
885
521
  disableErrors: true
886
- })) {
887
- updateInnerValueChar({
888
- char
889
- }, i);
890
- }
891
- ++valueCharIndex;
522
+ })) i = getLastTypedIndex();
523
+ setIsSelecting(false);
524
+ (0, _functions.resetSelectionText)();
525
+ setTimeout(()=>onClick(e, ()=>setFocusOnChar(i, 0), {
526
+ ignoreIsSelecting: true
527
+ }), 50);
528
+ };
529
+ const onWrapperClick = (e)=>{
530
+ e.stopPropagation();
531
+ e.preventDefault();
532
+ if (!isMouseDown && !isSelecting) {
533
+ onClick(e);
534
+ setFocusOnChar(getLastTypedIndex(), 0);
535
+ }
536
+ };
537
+ const onClearClick = (e)=>{
538
+ e.stopPropagation();
539
+ e.preventDefault();
540
+ resetInnerValue();
541
+ onHomeDown(null, 0);
542
+ };
543
+ const onMouseDownMove = (e)=>{
544
+ if (!isMouseDown) return false;
545
+ setIsSelecting(true);
546
+ const { clientX } = e;
547
+ if (selectionStartX === null) setSelectionStartX(clientX);
548
+ setSelectionEndX(clientX);
549
+ };
550
+ const onBlur = (e)=>{
551
+ if (isFocused) onBlurProp();
552
+ setFocused(false);
553
+ };
554
+ const onFocus = (e, i)=>{
555
+ const charObj = getCharByIndex(i);
556
+ if (!charObj) return false;
557
+ const { isSpecialSymbol, ref } = charObj;
558
+ (0, _InputCarretPosition.setCaretPosition)(ref.current, 0);
559
+ if ((maxEditableLen !== -1 ? i < maxEditableLen : true) && isSpecialSymbol && i < innerValue.length - 1) {
560
+ onFocus(e, i + 1);
561
+ return false;
562
+ }
563
+ if (!isFocused) onFocusProp(e);
564
+ setFocused(true);
565
+ };
566
+ const onPaste = (e, i, setFocusToEnd = true)=>{
567
+ var _this, _window, _e_clipboardData;
568
+ try {
569
+ e.stopPropagation();
570
+ e.preventDefault();
571
+ } catch (error) {}
572
+ setIsSelecting(false);
573
+ (0, _functions.resetSelectionText)();
574
+ const pastedText = ((_this = (e === null || e === void 0 ? void 0 : e.clipboardData) || ((_window = window) === null || _window === void 0 ? void 0 : _window.clipboardData)) === null || _this === void 0 ? void 0 : _this.getData("text/plain")) || (e === null || e === void 0 ? void 0 : (_e_clipboardData = e.clipboardData) === null || _e_clipboardData === void 0 ? void 0 : _e_clipboardData.getData("Text")) || e.text;
575
+ if (!pastedText) return false;
576
+ const replacedIndexes = [];
577
+ if (maskAsPlaceholder && (e === null || e === void 0 ? void 0 : e.type) === "paste") {
578
+ const fromIndex = i + parseInt(pastedText === null || pastedText === void 0 ? void 0 : pastedText.length, 10);
579
+ const text = innerValue.slice().filter(({ isCharSymbol }, index)=>index >= i && !isCharSymbol).map(({ char }, index)=>char).join("");
580
+ onPaste({
581
+ text
582
+ }, fromIndex, false);
583
+ }
584
+ pastedText.split("").filter((char)=>(0, _functions.isDigit)(char) || (0, _functions.isLetter)(char)).map((pastedChar, offset)=>{
585
+ const charIndex = i + offset;
586
+ let isReplaced = false;
587
+ let isValid = false;
588
+ for(let index = charIndex; index < innerValue.length && !isReplaced; ++index){
589
+ const charObj = getCharByIndex(index);
590
+ if (!charObj) continue;
591
+ const { char, maskChar, isSpecialSymbol } = charObj;
592
+ // If Char Is Valid
593
+ if (!isValidChar({
594
+ char: pastedChar,
595
+ i: index,
596
+ disableErrors: true
597
+ })) continue;
598
+ // If Char Already Replaced
599
+ if (replacedIndexes.includes(index)) continue;
600
+ isReplaced = true;
601
+ isValid = true;
602
+ replacedIndexes.push(index);
603
+ if (imitateTypingOnPaste) {
604
+ setTimeout(()=>{
605
+ updateInnerValueChar({
606
+ char: pastedChar
607
+ }, index);
608
+ }, offset * imitateTypingOnPasteDelay);
609
+ } else {
610
+ updateInnerValueChar({
611
+ char: pastedChar
612
+ }, index);
613
+ }
614
+ }
615
+ return {
616
+ char: pastedChar,
617
+ isValid
618
+ };
892
619
  });
893
- }
894
- setIsInitValue(true);
895
- }
896
- }, [isMaskRendered, value, isInitValue]);
897
- (0, _react.useEffect)(() => {
898
- if (isInitValue) setUndoValue(getClearInnerValueAsString());
899
- }, [isInitValue]);
900
-
901
- // Focus Observer
902
- (0, _react.useEffect)(() => {
903
- if (!isFocused) setSelectedText("");
904
- }, [isFocused]);
905
-
906
- // Default Focused
907
- (0, _react.useEffect)(() => {
908
- if (isFocusedDefault && isMaskRendered) setFocusOnChar(0, -1);
909
- }, [isFocusedDefault, isMaskRendered]);
910
-
911
- // OnChange Observer
912
- (0, _react.useEffect)(() => {
913
- if (isMaskRendered && isFocused) {
914
- setError(false);
915
- clearErrorMessage();
916
- const values = [getClearInnerValueAsString(), getInnerValueAsString({
917
- replaceSpace: true
918
- })];
919
- if (returnMaskedValue) values.reverse();
920
- onChangeProp(...values);
921
- }
922
- }, [innerValue, isMaskRendered]);
923
-
924
- // Blink Error
925
- (0, _react.useEffect)(() => {
926
- if (blinkError) setTimeout(() => setBlinkError(false), blinkDuration);
927
- }, [blinkError]);
928
- (0, _react.useEffect)(() => {
929
- if (!isSelecting) {
930
- setSelectedText("");
931
- (0, _functions.resetSelectionText)();
932
- setSelectionStartX(null);
933
- setSelectionEndX(null);
934
- }
935
- if (!isMouseDown && isSelecting) {
936
- document.addEventListener("keydown", e => pushServiceWatcher(() => onKeyDown(e)), {
937
- once: true
938
- });
939
- }
940
- if (!isMouseDown && isSelecting && !(0, _functions.getSelectionText)().length) setIsSelecting(false);
941
- }, [isSelecting, isMouseDown]);
942
- (0, _react.useEffect)(() => {
943
- document.addEventListener("mouseup", () => {
944
- setIsMouseDown(isMouseDown => {
945
- if (isMouseDown) setSelectedText((0, _functions.getSelectionText)());
620
+ const [lastCharIndex] = replacedIndexes.reverse();
621
+ if (setFocusToEnd) setFocusOnChar(lastCharIndex + 1, i);
622
+ return lastCharIndex;
623
+ };
624
+ const onCopy = (e, i)=>{
625
+ try {
626
+ e.stopPropagation();
627
+ e.preventDefault();
628
+ } catch (error) {}
629
+ (0, _functions.copyToClipboard)((0, _functions.getSelectionText)());
630
+ };
631
+ const onCut = (e, i)=>{
632
+ if (!isUndoValueBlocked) {
633
+ setUndoValue(getClearInnerValueAsString());
634
+ setIsUndoValueBlocked(true);
635
+ }
636
+ try {
637
+ e.stopPropagation();
638
+ e.preventDefault();
639
+ } catch (error) {}
640
+ (0, _functions.copyToClipboard)((0, _functions.getSelectionText)());
641
+ deleteSelectedText();
642
+ setIsSelecting(false);
643
+ setFocusOnChar(i, 0);
644
+ };
645
+ // GENERAL EVENT HANDLERS | END //
646
+ // FUNCTIONS | START //
647
+ const cancelDefaultAction = (e, cb)=>{
648
+ const { key } = e;
649
+ if (!_config.EXCLUDED_KEYS.includes(key) && _indexconstants.KEYBOARD_SERVICE_KEYS.includes(key)) {
650
+ e.preventDefault();
651
+ e.stopPropagation();
652
+ }
653
+ if (typeof cb === "function") cb(e);
946
654
  return false;
947
- });
948
- });
949
- }, []);
950
- (0, _react.useEffect)(() => {
951
- setError(customError !== "");
952
- setErrorMessage(customError === "" ? errors.default : customError);
953
- }, [customError, isError]);
954
-
955
- ///--- RENDER ---///
956
-
957
- const renderChar = function (obj, i) {
958
- let className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
959
- const {
960
- char,
961
- ref,
962
- maskChar,
963
- isSpecialSymbol
964
- } = obj;
965
- const prevChar = getCharByIndex(i - 1);
966
- if (i === innerValue.length - 1 && isSelecting) return /*#__PURE__*/_react.default.createElement("span", {
967
- style: {
968
- width: "1px"
969
- }
970
- });
971
- return /*#__PURE__*/_react.default.createElement("span", {
972
- tabIndex: i === 0 ? 0 : -1,
973
- key: i,
974
- "attr-char-id": i,
975
- className: `
655
+ };
656
+ const selectAllText = (e)=>{
657
+ e.preventDefault();
658
+ e.stopPropagation();
659
+ setIsSelecting(true);
660
+ setSelectionStartX(-1);
661
+ setSelectionEndX(-1);
662
+ (0, _functions.selectElementContents)(inputRef.current);
663
+ setSelectedText((0, _functions.getSelectionText)());
664
+ };
665
+ const deleteSelectedText = ()=>{
666
+ var _getClearInnerValueAsString;
667
+ const selStartInd = getSelectStartIndex();
668
+ if (selStartInd === null || selStartInd === undefined) return false;
669
+ const selEndInd = (0, _functions.getSelectionText)().length + selStartInd;
670
+ (0, _functions.resetSelectionText)();
671
+ if (maskAsPlaceholder && ((_getClearInnerValueAsString = getClearInnerValueAsString(selEndInd + 1)) === null || _getClearInnerValueAsString === void 0 ? void 0 : _getClearInnerValueAsString.length) !== 0) {
672
+ const text = innerValue.slice().filter(({ isSpecialSymbol, isCharSymbol }, index)=>{
673
+ if (maxEditableLen !== -1 && index > maxEditableLen - 1) return false;
674
+ return (index < selStartInd || index >= selEndInd) && !isSpecialSymbol && !isCharSymbol;
675
+ }).map(({ char }, index)=>char).join("");
676
+ resetInnerValue();
677
+ onPaste({
678
+ text
679
+ }, 0, false);
680
+ setFocusOnChar(selStartInd);
681
+ } else {
682
+ for(let index = selStartInd; index < selEndInd; ++index)updateInnerValueChar({
683
+ char: ""
684
+ }, index);
685
+ }
686
+ setFocusOnChar(selStartInd, -1);
687
+ return true;
688
+ };
689
+ // FUNCTIONS | END //
690
+ ///--- OBSERVERS ---///
691
+ // Input Throttling
692
+ (0, _react.useEffect)(()=>{
693
+ if (isInputThrottled) setTimeout(()=>setIsInputThrottled(false), inputThrottlingTimeout);
694
+ }, [
695
+ isInputThrottled
696
+ ]);
697
+ //Render Mask
698
+ (0, _react.useEffect)(()=>{
699
+ setInnerValue([]);
700
+ setMaskRendered(false);
701
+ if (!maskPattern) maskPattern = "";
702
+ maskPattern.concat(" ").split("").map((char, id, i)=>{
703
+ addInnerValueChar({
704
+ char,
705
+ i,
706
+ data: {
707
+ id,
708
+ isReadOnly: id === maskPattern.length
709
+ }
710
+ });
711
+ if (value === null || value === void 0 ? void 0 : value[id]) updateInnerValueChar({
712
+ char: value[id]
713
+ }, id);
714
+ });
715
+ setMaskRendered(true);
716
+ }, [
717
+ maskPattern
718
+ ]);
719
+ (0, _react.useEffect)(()=>{
720
+ if (value !== getClearInnerValueAsString()) setIsInitValue(false);
721
+ }, [
722
+ value
723
+ ]);
724
+ (0, _react.useEffect)(()=>{
725
+ if (isMaskRendered && !isInitValue && value !== getClearInnerValueAsString()) {
726
+ if (value && value !== "") {
727
+ let valueCharIndex = 0;
728
+ innerValue.map(({ isSpecialSymbol }, i)=>{
729
+ if (isSpecialSymbol) return false;
730
+ let char = value[valueCharIndex];
731
+ let whileLimit = (maskPattern === null || maskPattern === void 0 ? void 0 : maskPattern.length) || 0;
732
+ while(whileLimit && isSpecialSymbolChar({
733
+ char: value[valueCharIndex]
734
+ })){
735
+ whileLimit--;
736
+ char = value[++valueCharIndex];
737
+ }
738
+ //If Valid
739
+ if (isValidChar({
740
+ char,
741
+ i,
742
+ disableErrors: true
743
+ })) {
744
+ updateInnerValueChar({
745
+ char
746
+ }, i);
747
+ }
748
+ ++valueCharIndex;
749
+ });
750
+ }
751
+ setIsInitValue(true);
752
+ }
753
+ }, [
754
+ isMaskRendered,
755
+ value,
756
+ isInitValue
757
+ ]);
758
+ (0, _react.useEffect)(()=>{
759
+ if (isInitValue) setUndoValue(getClearInnerValueAsString());
760
+ }, [
761
+ isInitValue
762
+ ]);
763
+ // Focus Observer
764
+ (0, _react.useEffect)(()=>{
765
+ if (!isFocused) setSelectedText("");
766
+ }, [
767
+ isFocused
768
+ ]);
769
+ // Default Focused
770
+ (0, _react.useEffect)(()=>{
771
+ if (isFocusedDefault && isMaskRendered) setFocusOnChar(0, -1);
772
+ }, [
773
+ isFocusedDefault,
774
+ isMaskRendered
775
+ ]);
776
+ // OnChange Observer
777
+ (0, _react.useEffect)(()=>{
778
+ if (isMaskRendered && isFocused) {
779
+ setError(false);
780
+ clearErrorMessage();
781
+ const values = [
782
+ getClearInnerValueAsString(),
783
+ getInnerValueAsString({
784
+ replaceSpace: true
785
+ })
786
+ ];
787
+ if (returnMaskedValue) values.reverse();
788
+ onChangeProp(...values);
789
+ }
790
+ }, [
791
+ innerValue,
792
+ isMaskRendered
793
+ ]);
794
+ // Blink Error
795
+ (0, _react.useEffect)(()=>{
796
+ if (blinkError) setTimeout(()=>setBlinkError(false), blinkDuration);
797
+ }, [
798
+ blinkError
799
+ ]);
800
+ (0, _react.useEffect)(()=>{
801
+ if (!isSelecting) {
802
+ setSelectedText("");
803
+ (0, _functions.resetSelectionText)();
804
+ setSelectionStartX(null);
805
+ setSelectionEndX(null);
806
+ }
807
+ if (!isMouseDown && isSelecting) {
808
+ document.addEventListener("keydown", (e)=>pushServiceWatcher(()=>onKeyDown(e)), {
809
+ once: true
810
+ });
811
+ }
812
+ if (!isMouseDown && isSelecting && !(0, _functions.getSelectionText)().length) setIsSelecting(false);
813
+ }, [
814
+ isSelecting,
815
+ isMouseDown
816
+ ]);
817
+ (0, _react.useEffect)(()=>{
818
+ document.addEventListener("mouseup", ()=>{
819
+ setIsMouseDown((isMouseDown)=>{
820
+ if (isMouseDown) setSelectedText((0, _functions.getSelectionText)());
821
+ return false;
822
+ });
823
+ });
824
+ }, []);
825
+ (0, _react.useEffect)(()=>{
826
+ setError(customError !== "");
827
+ setErrorMessage(customError === "" ? errors.default : customError);
828
+ }, [
829
+ customError,
830
+ isError
831
+ ]);
832
+ ///--- RENDER ---///
833
+ const renderChar = (obj, i, className = "")=>{
834
+ const { char, ref, maskChar, isSpecialSymbol } = obj;
835
+ const prevChar = getCharByIndex(i - 1);
836
+ if (i === innerValue.length - 1 && isSelecting) return /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
837
+ style: {
838
+ width: "1px"
839
+ }
840
+ });
841
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
842
+ tabIndex: i === 0 ? 0 : -1,
843
+ "attr-char-id": i,
844
+ className: `
976
845
  input-mask_value_item
977
846
  ${className}
978
847
  ${(0, _functions.isDigitMaskChar)(obj.maskChar) ? "input-mask_value_item--digit" : ""}
979
848
  ${(0, _functions.isLetterMaskChar)(obj.maskChar) ? "input-mask_value_item--letter" : ""}
980
849
  ${obj.isSpecialSymbol ? "input-mask_value_item--spec" : ""}
981
850
  `,
982
- onClick: e => onCharClick(e, i),
983
- onFocus: function () {
984
- // if (isUseAutoSelect) inputRef?.current?.select();
985
- if (onFocus) onFocus(...arguments);
986
- },
987
- onBlur: onBlur,
988
- onKeyPress: cancelDefaultAction,
989
- onKeyDown: e => onKeyDown(e, i),
990
- onChange: cancelDefaultAction,
991
- contentEditable: !isSelecting,
992
- inputMode: (0, _functions.isDigitMaskChar)(i !== innerValue.length - 1 ? maskChar : prevChar?.maskChar) ? "numeric" : "text",
993
- suppressContentEditableWarning: true,
994
- onPaste: e => onPaste(e, i),
995
- onCopy: e => onCopy(e, i),
996
- onCut: e => onCut(e, i),
997
- ref: ref,
998
- onDoubleClick: e => {
999
- e.stopPropagation();
1000
- e.preventDefault();
1001
- setIsSelecting(true);
1002
- setTimeout(() => selectAllText(e, i), 50);
1003
- },
1004
- onMouseDown: e => cancelDefaultAction(e, () => setIsMouseDown(true)),
1005
- onMouseMove: e => cancelDefaultAction(e, onMouseDownMove)
1006
- }, !isFocused && hideMaskOnBlur && getClearInnerValueAsString().length === 0 ? _config.SPACE_CHAR : isSpecialSymbol ? maskChar : char === "" ? getPlaceholderCharByIndex(i) : char);
1007
- };
1008
- const renderMaskChar = (obj, i) => renderChar(obj, i, "input-mask_value_item_mask-char");
1009
- const renderValueChar = (obj, i) => renderChar(obj, i, "input-mask_value_item_value-char");
1010
- const renderSpecialChar = (obj, i) => renderChar(obj, i, "input-mask_value_item_spec-char");
1011
- const renderInputValue = () => {
1012
- return innerValue.map((obj, i) => {
1013
- const {
1014
- char,
1015
- isSpecialSymbol
1016
- } = obj;
1017
- if (isSpecialSymbol) {
1018
- return renderSpecialChar(obj, i);
1019
- }
1020
- const isMaskItem = (() => char === "")();
1021
- return isMaskItem ? renderMaskChar(obj, i) : renderValueChar(obj, i);
1022
- });
1023
- };
1024
- const render = () => {
1025
- return /*#__PURE__*/_react.default.createElement("div", {
1026
- "data-testid": testId,
1027
- className: (0, _classnames.default)("input-mask_wrapper", className, {
1028
- disabled
1029
- }, {
1030
- "input-mask_error": isError
1031
- }, {
1032
- "input-mask_focus": isFocused
1033
- }, {
1034
- "input-mask_blink-error": blinkError
1035
- }),
1036
- onClick: onWrapperClick,
1037
- onBlur: onBlur
1038
- }, /*#__PURE__*/_react.default.createElement("div", {
1039
- className: `
851
+ onClick: (e)=>onCharClick(e, i),
852
+ onFocus: (...params)=>{
853
+ // if (isUseAutoSelect) inputRef?.current?.select();
854
+ if (onFocus) onFocus(...params);
855
+ },
856
+ onBlur: onBlur,
857
+ onKeyPress: cancelDefaultAction,
858
+ onKeyDown: (e)=>onKeyDown(e, i),
859
+ onChange: cancelDefaultAction,
860
+ contentEditable: !isSelecting,
861
+ inputMode: (0, _functions.isDigitMaskChar)(i !== innerValue.length - 1 ? maskChar : prevChar === null || prevChar === void 0 ? void 0 : prevChar.maskChar) ? "numeric" : "text",
862
+ suppressContentEditableWarning: true,
863
+ onPaste: (e)=>onPaste(e, i),
864
+ onCopy: (e)=>onCopy(e, i),
865
+ onCut: (e)=>onCut(e, i),
866
+ ref: ref,
867
+ onDoubleClick: (e)=>{
868
+ e.stopPropagation();
869
+ e.preventDefault();
870
+ setIsSelecting(true);
871
+ setTimeout(()=>selectAllText(e, i), 50);
872
+ },
873
+ onMouseDown: (e)=>cancelDefaultAction(e, ()=>setIsMouseDown(true)),
874
+ onMouseMove: (e)=>cancelDefaultAction(e, onMouseDownMove),
875
+ children: !isFocused && hideMaskOnBlur && getClearInnerValueAsString().length === 0 ? _config.SPACE_CHAR : isSpecialSymbol ? maskChar : char === "" ? getPlaceholderCharByIndex(i) : char
876
+ }, i);
877
+ };
878
+ const renderMaskChar = (obj, i)=>renderChar(obj, i, "input-mask_value_item_mask-char");
879
+ const renderValueChar = (obj, i)=>renderChar(obj, i, "input-mask_value_item_value-char");
880
+ const renderSpecialChar = (obj, i)=>renderChar(obj, i, "input-mask_value_item_spec-char");
881
+ const renderInputValue = ()=>{
882
+ return innerValue.map((obj, i)=>{
883
+ const { char, isSpecialSymbol } = obj;
884
+ if (isSpecialSymbol) {
885
+ return renderSpecialChar(obj, i);
886
+ }
887
+ const isMaskItem = (()=>char === "")();
888
+ return isMaskItem ? renderMaskChar(obj, i) : renderValueChar(obj, i);
889
+ });
890
+ };
891
+ const render = ()=>{
892
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
893
+ "data-testid": testId,
894
+ className: (0, _classnames.default)("input-mask_wrapper", className, {
895
+ disabled
896
+ }, {
897
+ "input-mask_error": isError
898
+ }, {
899
+ "input-mask_focus": isFocused
900
+ }, {
901
+ "input-mask_blink-error": blinkError
902
+ }),
903
+ onClick: onWrapperClick,
904
+ onBlur: onBlur,
905
+ children: [
906
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
907
+ className: `
1040
908
  input-mask
1041
909
  ${isError ? "input-mask_error" : ""}
1042
910
  ${isFocused ? "input-mask_focus" : ""}
1043
911
  ${blinkError ? "input-mask_blink-error" : ""}
1044
912
  `,
1045
- onMouseDown: e => cancelDefaultAction(e, () => setIsMouseDown(true)),
1046
- onMouseMove: e => cancelDefaultAction(e, onMouseDownMove)
1047
- // onMouseUp={cancelDefaultAction}
1048
- ,
1049
- onClick: onWrapperClick,
1050
- onBlur: onBlur
1051
- }, showHint && isHintLeft && /*#__PURE__*/_react.default.createElement("div", {
1052
- className: "input-mask_hint input-mask_hint--left"
1053
- }, /*#__PURE__*/_react.default.createElement(_Hint.default, {
1054
- hint: hintText,
1055
- className: hintClassName,
1056
- side: hintPosition
1057
- })), isIconLeft && showIcon && /*#__PURE__*/_react.default.createElement("div", {
1058
- className: "input-mask_icon input-mask_icon--left"
1059
- }, icon), /*#__PURE__*/_react.default.createElement("div", {
1060
- className: "input-mask_value",
1061
- ref: inputRef,
1062
- onKeyUp: cancelDefaultAction,
1063
- onKeyDown: e => cancelDefaultAction(e, onKeyDown),
1064
- onKeyPress: cancelDefaultAction,
1065
- onBlur: onBlur,
1066
- onClick: onWrapperClick
1067
- }, renderInputValue()), isClearable && /*#__PURE__*/_react.default.createElement("div", {
1068
- className: "input-mask_clear"
1069
- }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
1070
- onClick: onClearClick
1071
- })), isIconRight && showIcon && /*#__PURE__*/_react.default.createElement("div", {
1072
- className: "input-mask_icon input-mask_icon--right"
1073
- }, icon), showHint && isHintRight && /*#__PURE__*/_react.default.createElement("div", {
1074
- className: "input-mask_hint input-mask_hint--right"
1075
- }, /*#__PURE__*/_react.default.createElement(_Hint.default, {
1076
- hint: hintText,
1077
- className: hintClassName,
1078
- side: hintPosition
1079
- }))), showErrors && errorMessage && /*#__PURE__*/_react.default.createElement("div", {
1080
- className: "input-mask_error-text"
1081
- }, errorMessage));
1082
- };
1083
- return render();
1084
- }
913
+ onMouseDown: (e)=>cancelDefaultAction(e, ()=>setIsMouseDown(true)),
914
+ onMouseMove: (e)=>cancelDefaultAction(e, onMouseDownMove),
915
+ // onMouseUp={cancelDefaultAction}
916
+ onClick: onWrapperClick,
917
+ onBlur: onBlur,
918
+ children: [
919
+ showHint && isHintLeft && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
920
+ className: "input-mask_hint input-mask_hint--left",
921
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Hint.default, {
922
+ hint: hintText,
923
+ className: hintClassName,
924
+ side: hintPosition
925
+ })
926
+ }),
927
+ isIconLeft && showIcon && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
928
+ className: "input-mask_icon input-mask_icon--left",
929
+ children: icon
930
+ }),
931
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
932
+ className: "input-mask_value",
933
+ ref: inputRef,
934
+ onKeyUp: cancelDefaultAction,
935
+ onKeyDown: (e)=>cancelDefaultAction(e, onKeyDown),
936
+ onKeyPress: cancelDefaultAction,
937
+ onBlur: onBlur,
938
+ onClick: onWrapperClick,
939
+ children: renderInputValue()
940
+ }),
941
+ isClearable && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
942
+ className: "input-mask_clear",
943
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.X, {
944
+ onClick: onClearClick
945
+ })
946
+ }),
947
+ isIconRight && showIcon && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
948
+ className: "input-mask_icon input-mask_icon--right",
949
+ children: icon
950
+ }),
951
+ showHint && isHintRight && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
952
+ className: "input-mask_hint input-mask_hint--right",
953
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Hint.default, {
954
+ hint: hintText,
955
+ className: hintClassName,
956
+ side: hintPosition
957
+ })
958
+ })
959
+ ]
960
+ }),
961
+ showErrors && errorMessage && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
962
+ className: "input-mask_error-text",
963
+ children: errorMessage
964
+ })
965
+ ]
966
+ });
967
+ };
968
+ return render();
969
+ }