intelicoreact 1.5.33 → 1.5.35

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