intelicoreact 1.6.20 → 1.6.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +1 -102
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +1 -89
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +1 -232
  4. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +1 -3
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +1 -101
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +1 -70
  7. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +1 -350
  8. package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +1 -3
  9. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +1 -177
  10. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +1 -3
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +1 -561
  12. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -20
  13. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +1 -405
  14. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +1 -94
  15. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +1 -105
  16. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +1 -67
  17. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +1 -247
  18. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +1 -160
  19. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +1 -193
  20. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +1 -135
  21. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +1 -116
  22. package/dist/Atomic/FormElements/Input/Input.js +1 -467
  23. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +1 -161
  24. package/dist/Atomic/FormElements/InputColor/InputColor.js +1 -64
  25. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +1 -166
  26. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +1 -354
  27. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +1 -71
  28. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +1 -693
  29. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +1 -254
  30. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -32
  31. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +1 -200
  32. package/dist/Atomic/FormElements/InputLink/InputLink.js +1 -99
  33. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +1 -37
  34. package/dist/Atomic/FormElements/InputMask/InputMask.js +1 -1214
  35. package/dist/Atomic/FormElements/InputMask/config.js +1 -15
  36. package/dist/Atomic/FormElements/InputMask/functions.js +1 -58
  37. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +1 -674
  38. package/dist/Atomic/FormElements/InputMask2/config.js +1 -15
  39. package/dist/Atomic/FormElements/InputMask2/functions.js +1 -58
  40. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +1 -766
  41. package/dist/Atomic/FormElements/InputMask3/config.js +1 -15
  42. package/dist/Atomic/FormElements/InputMask3/functions.js +1 -58
  43. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +1 -114
  44. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +1 -140
  45. package/dist/Atomic/FormElements/Label/Label.js +1 -82
  46. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -506
  47. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +1 -45
  48. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -331
  49. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +1 -66
  50. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +1 -80
  51. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +1 -64
  52. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +1 -54
  53. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +1 -183
  54. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +1 -209
  55. package/dist/Atomic/FormElements/RangeList/RangeList.js +1 -175
  56. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +1 -43
  57. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +1 -443
  58. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +1 -858
  59. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +1 -39
  60. package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -59
  61. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +1 -50
  62. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +1 -47
  63. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +1 -96
  64. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +1 -40
  65. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +1 -64
  66. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +1 -170
  67. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +1 -202
  68. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +1 -67
  69. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +1 -115
  70. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -826
  71. package/dist/Atomic/FormElements/Text/Text.js +1 -125
  72. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +1 -45
  73. package/dist/Atomic/FormElements/Textarea/Textarea.js +1 -80
  74. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +1 -176
  75. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +1 -62
  76. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -127
  77. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +1 -220
  78. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +1 -83
  79. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +1 -82
  80. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +1 -101
  81. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +1 -29
  82. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +1 -113
  83. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +1 -30
  84. package/dist/Atomic/Layout/Header/Header.js +1 -85
  85. package/dist/Atomic/Layout/Spinner/Spinner.js +1 -39
  86. package/dist/Atomic/UI/Accordion/Accordion.js +1 -118
  87. package/dist/Atomic/UI/Accordion/AccordionItem.js +1 -181
  88. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +1 -238
  89. package/dist/Atomic/UI/AccordionText/AccordionText.js +1 -69
  90. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +1 -207
  91. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +1 -56
  92. package/dist/Atomic/UI/Alert/Alert.js +1 -72
  93. package/dist/Atomic/UI/Arrow/Arrow.js +1 -132
  94. package/dist/Atomic/UI/Box/Box.js +1 -52
  95. package/dist/Atomic/UI/Button/Button.js +1 -89
  96. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +1 -72
  97. package/dist/Atomic/UI/Chart/Chart.js +1 -172
  98. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +1 -95
  99. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +1 -80
  100. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +1 -188
  101. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +1 -335
  102. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +1 -43
  103. package/dist/Atomic/UI/Chart/partial/utils.js +1 -60
  104. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +1 -109
  105. package/dist/Atomic/UI/DateTime/DateTime.js +1 -57
  106. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +1 -44
  107. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +1 -15
  108. package/dist/Atomic/UI/DoubleString/DoubleString.js +1 -102
  109. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +1 -226
  110. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +1 -221
  111. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +1 -106
  112. package/dist/Atomic/UI/Hint/Hint.js +1 -193
  113. package/dist/Atomic/UI/Hint/partials/_utils.js +1 -51
  114. package/dist/Atomic/UI/Modal/Modal.js +1 -188
  115. package/dist/Atomic/UI/Modal/ModalHOC.js +1 -72
  116. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +1 -46
  117. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +1 -83
  118. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +1 -200
  119. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +1 -75
  120. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +1 -80
  121. package/dist/Atomic/UI/NavLine/NavLine.js +1 -293
  122. package/dist/Atomic/UI/PageTitle/PageTitle.js +1 -75
  123. package/dist/Atomic/UI/PieChart/PieChart.js +1 -42
  124. package/dist/Atomic/UI/Price/Price.js +1 -22
  125. package/dist/Atomic/UI/PriceRange/PriceRange.js +1 -36
  126. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +1 -71
  127. package/dist/Atomic/UI/Status/Status.js +1 -59
  128. package/dist/Atomic/UI/Table/Partials/TdCell.js +1 -87
  129. package/dist/Atomic/UI/Table/Partials/TdHeader.js +1 -38
  130. package/dist/Atomic/UI/Table/Partials/TdRow.js +1 -99
  131. package/dist/Atomic/UI/Table/Partials/TdTitle.js +1 -52
  132. package/dist/Atomic/UI/Table/Table.js +1 -63
  133. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +1 -80
  134. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +1 -28
  135. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +1 -13
  136. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +1 -53
  137. package/dist/Atomic/UI/Tag/Tag.js +1 -160
  138. package/dist/Atomic/UI/TagList/TagList.js +1 -251
  139. package/dist/Atomic/UI/UserBox/UserBox.js +1 -73
  140. package/dist/Atomic/UI/WizardStepper/constructor.js +1 -84
  141. package/dist/Atomic/UI/WizardStepper/index.js +1 -3
  142. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +1 -37
  143. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +1 -3
  144. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +1 -61
  145. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +1 -3
  146. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +1 -39
  147. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +1 -3
  148. package/dist/Atomic/UI/WizardStepper/ui/icons.js +1 -49
  149. package/dist/Atomic/UI/WizardStepper/ui/index.js +1 -3
  150. package/dist/Classes/AbortableFetch.js +1 -454
  151. package/dist/Classes/AnimatedHandler.js +1 -47
  152. package/dist/Classes/RESTAPI/index.js +1 -228
  153. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +1 -457
  154. package/dist/Classes/RESTAPI/partials/ApiBase.js +1 -48
  155. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +1 -112
  156. package/dist/Classes/RESTAPI/partials/ApiUtils.js +1 -189
  157. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +1 -252
  158. package/dist/Classes/RESTAPI/partials/Utils.js +1 -92
  159. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +1 -3
  160. package/dist/Classes/RESTAPI/partials/_utils.js +1 -197
  161. package/dist/Constants/index.constants.js +1 -78
  162. package/dist/Functions/Portal.js +1 -22
  163. package/dist/Functions/customEventListener.js +1 -96
  164. package/dist/Functions/dateTime.js +1 -149
  165. package/dist/Functions/fieldValueFormatters.js +1 -405
  166. package/dist/Functions/guards/assertions.js +1 -66
  167. package/dist/Functions/guards/safeValue.js +1 -30
  168. package/dist/Functions/guards/typeGuards.js +1 -116
  169. package/dist/Functions/hooks/useFormFieldsChangesManager.js +1 -95
  170. package/dist/Functions/locale/createTranslator.js +1 -32
  171. package/dist/Functions/operations.js +1 -130
  172. package/dist/Functions/presets/inputMaskPresets.js +1 -170
  173. package/dist/Functions/presets/inputPresets.js +1 -60
  174. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +1 -45
  175. package/dist/Functions/schemas.js +1 -31
  176. package/dist/Functions/useBodyScrollLock.js +1 -17
  177. package/dist/Functions/useClickOutside.js +1 -15
  178. package/dist/Functions/useDebounce.js +1 -17
  179. package/dist/Functions/useFieldFocus.js +1 -84
  180. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +1 -39
  181. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +1 -159
  182. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +1 -78
  183. package/dist/Functions/useFormTools/functions/General.js +1 -134
  184. package/dist/Functions/useFormTools/functions/RenderFields.js +1 -111
  185. package/dist/Functions/useFormTools/functions/usePrevious.js +1 -12
  186. package/dist/Functions/useFormTools/index.js +1 -778
  187. package/dist/Functions/useInputHighlightError.js +1 -67
  188. package/dist/Functions/useIsMobile/useIsMobile.js +1 -53
  189. package/dist/Functions/useKeyPress/useHandleKeyPress.js +1 -21
  190. package/dist/Functions/useKeyPress/useKeyPress.js +1 -75
  191. package/dist/Functions/useLocalStorage.js +1 -34
  192. package/dist/Functions/useLocationParams.js +1 -27
  193. package/dist/Functions/useMediaQuery.js +1 -17
  194. package/dist/Functions/useMetaInfo.js +1 -43
  195. package/dist/Functions/useMouseUpOutside.js +1 -16
  196. package/dist/Functions/useOnlineStatus.js +1 -29
  197. package/dist/Functions/usePasswordChecker.js +1 -110
  198. package/dist/Functions/usePrevious.js +1 -12
  199. package/dist/Functions/useResize.js +1 -31
  200. package/dist/Functions/useScrollTo.js +1 -17
  201. package/dist/Functions/useToggle.js +1 -17
  202. package/dist/Functions/utils.js +1 -522
  203. package/dist/Langs.js +1 -168
  204. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +1 -21
  205. package/dist/Molecular/CustomIcons/components/AlertCircle.js +1 -23
  206. package/dist/Molecular/CustomIcons/components/AppStore.js +1 -29
  207. package/dist/Molecular/CustomIcons/components/Arrow.js +1 -32
  208. package/dist/Molecular/CustomIcons/components/ArrowDown.js +1 -17
  209. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +1 -22
  210. package/dist/Molecular/CustomIcons/components/ArrowRight.js +1 -22
  211. package/dist/Molecular/CustomIcons/components/ArrowUp.js +1 -17
  212. package/dist/Molecular/CustomIcons/components/Bell.js +1 -15
  213. package/dist/Molecular/CustomIcons/components/Button.js +1 -12
  214. package/dist/Molecular/CustomIcons/components/Campaigns.js +1 -16
  215. package/dist/Molecular/CustomIcons/components/Check.js +1 -14
  216. package/dist/Molecular/CustomIcons/components/Check2.js +1 -12
  217. package/dist/Molecular/CustomIcons/components/ChevronDown.js +1 -12
  218. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +1 -11
  219. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +1 -11
  220. package/dist/Molecular/CustomIcons/components/ChevronRight.js +1 -11
  221. package/dist/Molecular/CustomIcons/components/ChevronUp.js +1 -11
  222. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +1 -27
  223. package/dist/Molecular/CustomIcons/components/Close.js +1 -14
  224. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +1 -17
  225. package/dist/Molecular/CustomIcons/components/Delete.js +1 -16
  226. package/dist/Molecular/CustomIcons/components/Edit.js +1 -15
  227. package/dist/Molecular/CustomIcons/components/Email.js +1 -31
  228. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +1 -18
  229. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +1 -35
  230. package/dist/Molecular/CustomIcons/components/Flows.js +1 -15
  231. package/dist/Molecular/CustomIcons/components/Gift.js +1 -25
  232. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +1 -29
  233. package/dist/Molecular/CustomIcons/components/GooglePlay.js +1 -29
  234. package/dist/Molecular/CustomIcons/components/HelpCircle.js +1 -19
  235. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +1 -20
  236. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +1 -19
  237. package/dist/Molecular/CustomIcons/components/Home.js +1 -16
  238. package/dist/Molecular/CustomIcons/components/Home2.js +1 -22
  239. package/dist/Molecular/CustomIcons/components/Key.js +1 -23
  240. package/dist/Molecular/CustomIcons/components/Landers.js +1 -20
  241. package/dist/Molecular/CustomIcons/components/Lock.js +1 -15
  242. package/dist/Molecular/CustomIcons/components/Mail.js +1 -26
  243. package/dist/Molecular/CustomIcons/components/Mastercard.js +1 -73
  244. package/dist/Molecular/CustomIcons/components/Minus.js +1 -25
  245. package/dist/Molecular/CustomIcons/components/Offers.js +1 -16
  246. package/dist/Molecular/CustomIcons/components/Pause.js +1 -28
  247. package/dist/Molecular/CustomIcons/components/PayPal.js +1 -41
  248. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +1 -28
  249. package/dist/Molecular/CustomIcons/components/Phone.js +1 -30
  250. package/dist/Molecular/CustomIcons/components/Play.js +1 -25
  251. package/dist/Molecular/CustomIcons/components/Plus.js +1 -25
  252. package/dist/Molecular/CustomIcons/components/Profile.js +1 -16
  253. package/dist/Molecular/CustomIcons/components/QRCode.js +1 -29
  254. package/dist/Molecular/CustomIcons/components/Rectangle.js +1 -12
  255. package/dist/Molecular/CustomIcons/components/Revert.js +1 -13
  256. package/dist/Molecular/CustomIcons/components/Star.js +1 -14
  257. package/dist/Molecular/CustomIcons/components/Star2.js +1 -16
  258. package/dist/Molecular/CustomIcons/components/TrafficSources.js +1 -14
  259. package/dist/Molecular/CustomIcons/components/Trash.js +1 -15
  260. package/dist/Molecular/CustomIcons/components/TrashRed.js +1 -15
  261. package/dist/Molecular/CustomIcons/components/Triggers.js +1 -15
  262. package/dist/Molecular/CustomIcons/components/User.js +1 -25
  263. package/dist/Molecular/CustomIcons/components/Visa.js +1 -31
  264. package/dist/Molecular/CustomIcons/components/X.js +1 -12
  265. package/dist/Molecular/CustomIcons/index.js +1 -61
  266. package/dist/Molecular/FormElement/FormElement.js +1 -54
  267. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +1 -184
  268. package/dist/Molecular/FormWithDependOn/partials/_utils.js +1 -53
  269. package/dist/Molecular/InputAddress/InputAddress.js +1 -620
  270. package/dist/Molecular/InputPassword/InputPassword.js +1 -48
  271. package/dist/index.js +1 -1
  272. package/package.json +1 -1
@@ -1,467 +1 @@
1
- import cn from "classnames";
2
- import React, { useEffect, useMemo, useRef, useState } from "react";
3
-
4
- // import InputMask from 'react-input-mask';
5
- import { KEYBOARD_SERVICE_KEYS } from "../../../Constants/index.constants";
6
- import {
7
- filterNumeric,
8
- formatToAddBitDepthPoints as addCommas,
9
- formatToOnlyASCIICodeText,
10
- formatToRemoveComa as removeCommas,
11
- getSafelyValue
12
- } from "../../../Functions/fieldValueFormatters";
13
- import { getIsOnlyAnObject } from "../../../Functions/utils";
14
- import Spinner from "../../Layout/Spinner/Spinner";
15
- import DynamicIcon from "../../UI/DynamicIcon/DynamicIcon";
16
-
17
- import "./Input.scss";
18
-
19
- const HIDE_SYMBOL = "\u2022";
20
-
21
- /**
22
- * Input компонент.
23
- *
24
- * @component
25
- * @param {object} props.blurTrim - Обрезает ведущие и оконечные символы строки при потере фокуса.
26
- * @param {string} props.autocomplete - Определяет, должен ли браузер включать автозаполнение ввода пользователя.
27
- * @param {boolean} props.isSelect - Определяет, будет ли компонент редактироваться по умолчанию при загрузке страницы.
28
- * @param {function} props.onChange - Функция, которая вызывается при изменении содержимого элемента управления формы.
29
- * @param {function} props.onBlur - Функция, которая вызывается при потере элементом управления фокуса.
30
- * @param {function} props.onFocus - Функция, вызываемая при получении элементом управления фокуса.
31
- * @param {function} props.onKeyUp - Функция, которая вызывается при отпускании клавиши.
32
- * @param {function} props.onKeyDown - Функция, вызываемая при нажатии на клавишу.
33
- * @param {boolean} props.isNotBlinkErrors - Отключает мигание элемента управления при ошибках.
34
- * @param {boolean} props.isPriceInput - Определяет, будет ли компонент ввода формата числа с плавающей точкой.
35
- * @param {boolean} props.onlyNumbers - Определяет, будет ли компонент прозволять только цифры.
36
- * @param {boolean} props.isOnlyString - Определяет, будет ли компонент разрешать
37
- * только строки (без чисел или других символов).
38
- * @param {boolean} props.disabled - Блокировка поля ввода.
39
- * @param {boolean} props.withDelete - Включает отображение кнопки удаления контента.
40
- * @param {string} props.value - Значение поля ввода.
41
- * @param {string} props.placeholder - Текст подсказки внутри поля ввода.
42
- * @param {string} props.className - Строка с именами классов, применяемыми к компоненту.
43
- * @param {string} props.type - Тип компонента ввода (например, 'text', 'password').
44
- * @param {boolean} props.softStringMode - Используется для включения нестрогого режима ввода символов.
45
- * @param {object} props.mask - Маска для поля ввода.
46
- * @param {string} props.maskChar - Свойство определяет символ,
47
- * используемый вместо пропущенных символов при введении маски.
48
- * @param {object} props.formatChars - Объект, определяющий символы, которые должны быть заменены в маске.
49
- * @param {string} props.error - Строка с сообщением об ошибке.
50
- * @param {number} props.symbolsLimit - Лимит символов ввода.
51
- * @param {number} props.blinkTime - Время мигания в миллисекундах.
52
- * @param {boolean} props.isFocusDefault - Определяет, будет ли элемент получать фокус при загрузке страницы.
53
- * @param {boolean} props.isNotValidateASCII - Отключает проверку ASCII для вводимых символов.
54
- * @param {boolean} props.isNumericMobileKeyboard - Отображает цифровую клавиатуру на мобильных устройствах.
55
- */
56
- const Input = React.forwardRef(
57
- (
58
- {
59
- blurTrim,
60
- autocomplete = "off",
61
- isSelect,
62
- onChange = () => {},
63
- onBlur = () => {},
64
- onFocus = () => {},
65
- onKeyUp = () => {},
66
- onKeyDown = () => {},
67
- isNotBlinkErrors,
68
- isPriceInput,
69
- onlyNumbers,
70
- disabled,
71
- withDelete,
72
- value,
73
- placeholder,
74
- className,
75
- type = "text",
76
- mask,
77
- maskChar,
78
- formatChars,
79
- error,
80
- icon,
81
- iconDynamicKey,
82
- iconDynamicProps = {},
83
- symbolsLimit,
84
- blinkTime,
85
- isFocusDefault = false,
86
- isNotValidateASCII = false,
87
- isNumericMobileKeyboard = false,
88
- isCropFirstNool = false,
89
- testId = "input",
90
- action,
91
- isUseAutoSelect = true,
92
- isReadOnly = false,
93
- isLoading = false,
94
- name,
95
- fieldKey,
96
- id,
97
- attributesOfNativeInput = {},
98
- },
99
- ref,
100
- ) => {
101
- const { trimStart, trimEnd, characters } = blurTrim || {};
102
- const DynamicIconComponent =
103
- iconDynamicKey && !icon ? (
104
- <DynamicIcon iconKey={iconDynamicKey} {...iconDynamicProps} />
105
- ) : null;
106
- const DEFAULT_BLINK_TIME = 100;
107
- // STATES
108
- const [isFocused, setIsFocused] = useState(false);
109
- const [isEditing, setEditing] = useState(false);
110
- const inputInnerRef = useRef(null);
111
- const inputRef = useMemo(() => ref || inputInnerRef, [ref]);
112
- // const previousValueRef = useRef(value);
113
- const [isAttemptToChange, setIsAttemptToChange] = useState(false);
114
- const [isToHighlightError, setIsToHighlightError] = useState(false);
115
- const [onInputHover, setOnInputHover] = useState(false);
116
-
117
- const [prevValue, setPreviousValue] = useState(value);
118
- const [keyDownData, setKeyDownData] = useState({
119
- start: null,
120
- end: null,
121
- keyCode: null,
122
- });
123
-
124
- const isUseBitDepthPoints = Boolean(onlyNumbers) && isPriceInput;
125
- const isUseErrorsBlink = !isNotBlinkErrors && !mask;
126
-
127
- const inputName = name || fieldKey || id;
128
-
129
- const isPseudoPasswordMode = type === "pseudoPassword";
130
-
131
- // HANDLES
132
- const handle = {
133
- correctMinMax: (value, correctionType) => {
134
- if (!onlyNumbers) return value;
135
-
136
- const { min, max, isOnlyPositive, isNoEmptyValues } = getIsOnlyAnObject(
137
- onlyNumbers,
138
- )
139
- ? onlyNumbers
140
- : {};
141
- const minimum =
142
- !Number.isNaN(Number(min)) &&
143
- min !== null &&
144
- (min >= 0 || !isOnlyPositive)
145
- ? min
146
- : undefined;
147
- const maximum =
148
- !Number.isNaN(Number(max)) &&
149
- max !== null &&
150
- (max >= 0 || !isOnlyPositive)
151
- ? max
152
- : undefined;
153
-
154
- let minusSymbol;
155
- let inputValue = getSafelyValue(value);
156
-
157
- const checkMin = () => {
158
- if (!inputValue && isNoEmptyValues)
159
- inputValue = minimum !== undefined ? minimum : "0";
160
- else if (
161
- inputValue &&
162
- !Number.isNaN(Number(minimum)) &&
163
- Number(minimum) > Number((minusSymbol ?? "") + inputValue)
164
- )
165
- inputValue = minimum;
166
- };
167
-
168
- const checkMax = () => {
169
- if (
170
- !Number.isNaN(Number(maximum)) &&
171
- Number(maximum) < Number((minusSymbol ?? "") + inputValue)
172
- ) {
173
- inputValue = maximum;
174
- minusSymbol = null;
175
- }
176
- };
177
-
178
- if (isUseBitDepthPoints) inputValue = removeCommas(inputValue);
179
- if (!isOnlyPositive && inputValue[0] === "-") {
180
- minusSymbol = "-";
181
- inputValue = inputValue.slice(1);
182
- }
183
-
184
- inputValue = filterNumeric(inputValue, onlyNumbers);
185
-
186
- switch (correctionType) {
187
- case "min":
188
- checkMin();
189
- break;
190
- case "max":
191
- checkMax();
192
- break;
193
- default:
194
- checkMin();
195
- checkMax();
196
- break;
197
- }
198
- return inputValue;
199
- },
200
-
201
- processPseudoValue: (newValue, oldValue) => {
202
- const insertedPart = newValue.replace(new RegExp(HIDE_SYMBOL, "g"), "");
203
-
204
- // ? Если insertedPart.length > 1, то это точно копи-паст
205
- // ? По договоренности любой копипаст заменяет текущее велью
206
- if (insertedPart.length > 1) return insertedPart;
207
-
208
- const isOldValueHasBeenReduced =
209
- newValue.replace(new RegExp(/^HIDE_SYMBOL/g), "").length <
210
- oldValue.length;
211
- const oldValueArr = oldValue.split("");
212
-
213
- const getIsInclude = (idx) => {
214
- const BACKSPACE_CODE = 8;
215
-
216
- // ? Если позиции не равны, значит была выделена область, значит будем воспринимать как копи-паст
217
- if (keyDownData.start !== keyDownData.end) return false;
218
-
219
- // ? Если позиции равны и есть вставляемое значение - обрезаем "хвост"
220
- if (insertedPart) return idx < keyDownData.start;
221
-
222
- // ? Если позиции равны и нет вставляемого значения - значит симвовол удалили
223
- return keyDownData.keyCode === BACKSPACE_CODE
224
- ? idx < keyDownData.start - 1 || idx > keyDownData.end - 1
225
- : idx < keyDownData.start || idx > keyDownData.end;
226
- };
227
-
228
- if (!insertedPart)
229
- return oldValueArr.reduce(
230
- (acc, sym, idx) => (getIsInclude(idx) ? `${acc}${sym}` : acc),
231
- "",
232
- );
233
-
234
- const outputStructure = oldValueArr.reduce(
235
- (acc, sym, idx) => {
236
- if (getIsInclude(idx)) acc.result = `${acc.result}${sym}`;
237
- else if (!acc.position) acc.position = insertedPart ? idx : idx - 1;
238
- return acc;
239
- },
240
- {
241
- result: "",
242
- position: !isOldValueHasBeenReduced ? keyDownData.start : null,
243
- },
244
- );
245
-
246
- const output = `${outputStructure.result.slice(
247
- 0,
248
- outputStructure.position,
249
- )}${insertedPart}${outputStructure.result.slice(outputStructure.position)}`;
250
-
251
- return output;
252
- },
253
-
254
- change: (e) => {
255
- const { isOnlyPositive } = getIsOnlyAnObject(onlyNumbers)
256
- ? onlyNumbers
257
- : {};
258
-
259
- let minusSymbol;
260
- let inputValue = e.target ? e.target.value : e;
261
- if (isPseudoPasswordMode)
262
- inputValue = inputValue.includes(HIDE_SYMBOL)
263
- ? handle.processPseudoValue(inputValue, value, e)
264
- : inputValue;
265
-
266
- // If user typed comma(',') replace it to dot('.') for float value typing
267
- if (isPriceInput && inputValue.charAt(inputValue.length-1) === ',') inputValue = inputValue.substring(0, inputValue.length-1).concat('.');
268
-
269
- if (isUseBitDepthPoints) inputValue = removeCommas(inputValue);
270
- if (onlyNumbers) inputValue = inputValue.replace(/,/g, ".");
271
-
272
- if (onlyNumbers && !isOnlyPositive && inputValue[0] === "-") {
273
- minusSymbol = "-";
274
- inputValue = inputValue.slice(1);
275
- }
276
- if (!isNotValidateASCII)
277
- inputValue = formatToOnlyASCIICodeText(inputValue);
278
- if (symbolsLimit && inputValue.length > Number(symbolsLimit))
279
- inputValue = inputValue.substring(0, Number(symbolsLimit));
280
- if (isCropFirstNool && inputValue[0] == 0) return "";
281
- else if (onlyNumbers)
282
- inputValue = handle.correctMinMax(inputValue, "max");
283
- onChange(((minusSymbol ?? "") + inputValue).toString());
284
- },
285
- toggleEdit: () => {
286
- setEditing(!isEditing);
287
- onChange("");
288
- },
289
- focus: (e) => {
290
- setIsFocused(true);
291
- onFocus(e);
292
- },
293
- blur: (e) => {
294
- let inputValue = handle.correctMinMax(getSafelyValue(value), "min");
295
- if (trimStart)
296
- inputValue = inputValue.replace(new RegExp(`^[${characters}]+`), "");
297
- if (trimEnd)
298
- inputValue = inputValue.replace(new RegExp(`[${characters}]+$`), "");
299
-
300
- if (value !== inputValue) onChange(inputValue);
301
-
302
- setIsFocused(false);
303
- setEditing(false);
304
- // использую setTimeout для того чтоб прошли переназначения велью, если они есть,
305
- // для того, чтоб верхний onBlur при обращении к e.target.value получал обновленное велью
306
- if (onBlur) setTimeout(() => onBlur(e), 0);
307
- },
308
- keyDown: (e) => {
309
- setPreviousValue(e?.target?.value);
310
- setKeyDownData({
311
- start: e.target.selectionStart,
312
- end: e.target.selectionEnd,
313
- keyCode: e.keyCode,
314
- });
315
- onKeyDown(e.keyCode, e);
316
- },
317
- keyUp: (e) => {
318
- if (isUseErrorsBlink) {
319
- const changedValue = `${value ?? ""}`;
320
- const previousValue = `${prevValue}`;
321
-
322
- const short =
323
- previousValue.length <= changedValue.length
324
- ? previousValue
325
- : changedValue;
326
- const long =
327
- previousValue.length > changedValue.length
328
- ? previousValue
329
- : changedValue;
330
-
331
- const infoAboutDifferencesSameness = short.split("").reduce(
332
- (acc, symbol, idx) => {
333
- if (acc.countOn && symbol === long[idx]) acc.same.push(symbol);
334
- else {
335
- acc.countOn = false;
336
- acc.differences.push([idx, symbol]);
337
- }
338
- return acc;
339
- },
340
- { same: [], countOn: true, differences: [] },
341
- );
342
-
343
- const samePart = infoAboutDifferencesSameness.same.join("");
344
- const differencesLength =
345
- infoAboutDifferencesSameness.differences.length;
346
- const currentSet = changedValue?.replace(samePart, "");
347
-
348
- if (
349
- !KEYBOARD_SERVICE_KEYS.includes(e.key) &&
350
- changedValue === previousValue
351
- )
352
- setIsAttemptToChange(!(!differencesLength && e.key === currentSet));
353
- }
354
-
355
- onKeyUp(e.keyCode, e);
356
- },
357
- };
358
-
359
- useEffect(() => {
360
- if (isEditing) inputRef?.current?.focus?.();
361
- }, [isEditing, isFocused]);
362
-
363
- useEffect(() => {
364
- setEditing(isSelect ?? false);
365
- }, [isSelect]);
366
-
367
- useEffect(() => {
368
- if (isUseErrorsBlink && isAttemptToChange) {
369
- setIsAttemptToChange(null);
370
- setIsToHighlightError(true);
371
- setTimeout(() => {
372
- setIsToHighlightError(false);
373
- }, blinkTime || DEFAULT_BLINK_TIME);
374
- }
375
- }, [isAttemptToChange]);
376
-
377
- useEffect(() => {
378
- if (inputRef?.current && typeof isFocusDefault === "boolean")
379
- setIsFocused(isFocusDefault);
380
- setEditing(isFocusDefault);
381
- }, [inputRef, isFocusDefault]);
382
-
383
- const getInputType = () => {
384
- if (isPriceInput || isPseudoPasswordMode) return "text";
385
- return type;
386
- };
387
-
388
- const formatedValue = (() => {
389
- let safelyValue = getSafelyValue(value);
390
-
391
- const hideSymbols = () =>
392
- safelyValue
393
- .split("")
394
- .map(() => HIDE_SYMBOL)
395
- .join("");
396
-
397
- if (isPseudoPasswordMode) return hideSymbols();
398
- if (onlyNumbers?.isNoEmptyValues)
399
- safelyValue = handle.correctMinMax(safelyValue, "min");
400
- if (isUseBitDepthPoints)
401
- safelyValue = addCommas(safelyValue, onlyNumbers);
402
- return safelyValue;
403
- })();
404
-
405
- const uniProps = {
406
- name: inputName,
407
- className: cn("input", className, {
408
- "input--with-icon": icon,
409
- "input--with-delete": withDelete,
410
- }),
411
- placeholder,
412
- value: formatedValue,
413
- inputMode: isNumericMobileKeyboard ? "decimal" : "text",
414
- disabled,
415
- onChange: handle.change,
416
- onFocus: handle.focus,
417
- onBlur: handle.blur,
418
- onKeyUp: handle.keyUp,
419
- onKeyDown: handle.keyDown,
420
- ...(maskChar ? { maskChar } : {}),
421
- ...(formatChars ? { formatChars } : {}),
422
- };
423
-
424
- return (
425
- <div
426
- data-testid={testId}
427
- className={cn(
428
- `input__wrap`,
429
- { [`input__wrap_focus`]: isFocused },
430
- { [`input__wrap_error`]: error || isToHighlightError },
431
- { [`input__wrap--disabled`]: disabled || isLoading },
432
- )}
433
- onMouseEnter={() => setOnInputHover(true)}
434
- onMouseLeave={() => setOnInputHover(false)}
435
- >
436
- <input
437
- readOnly={isReadOnly}
438
- {...uniProps}
439
- ref={inputRef}
440
- type={getInputType()}
441
- autoComplete={isPseudoPasswordMode ? "off" : autocomplete}
442
- {...attributesOfNativeInput}
443
- onFocus={(...params) => {
444
- attributesOfNativeInput?.onFocus?.(...params);
445
- if (isUseAutoSelect) inputRef.current.select();
446
- if (uniProps.onFocus) uniProps.onFocus(...params);
447
- }}
448
- onBlur={(...params) => {
449
- attributesOfNativeInput?.onBlur?.(...params);
450
- if (uniProps.onBlur) uniProps.onBlur(...params);
451
- }}
452
- />
453
- {DynamicIconComponent ?? icon}
454
- {action}
455
- {withDelete && onInputHover && (
456
- <span
457
- className={cn(`input__close`, { hidden: !getSafelyValue(value) })}
458
- onClick={handle.toggleEdit}
459
- />
460
- )}
461
- {isLoading && <Spinner size="small" />}
462
- </div>
463
- );
464
- },
465
- );
466
-
467
- export default Input;
1
+ function e(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function n(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function t(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){n(e,t,r[t])})}return e}function r(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function o(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],u=!0,a=!1;try{for(o=o.call(e);!(u=(t=o.next()).done)&&(i.push(t.value),!n||i.length!==n);u=!0);}catch(e){a=!0,r=e}finally{try{u||null==o.return||o.return()}finally{if(a)throw r}}return i}}(e,n)||u(e,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(n){return function(n){if(Array.isArray(n))return e(n)}(n)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||u(n)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(n,t){if(n){if("string"==typeof n)return e(n,t);var r=Object.prototype.toString.call(n).slice(8,-1);if("Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(n,t)}}import{jsx as a,jsxs as l}from"react/jsx-runtime";import c from"classnames";import s,{useEffect as f,useMemo as p,useRef as m,useState as d}from"react";import{KEYBOARD_SERVICE_KEYS as y}from"../../../Constants/index.constants";import{filterNumeric as b,formatToAddBitDepthPoints as v,formatToOnlyASCIICodeText as g,formatToRemoveComa as h,getSafelyValue as N}from"../../../Functions/fieldValueFormatters";import{getIsOnlyAnObject as O}from"../../../Functions/utils";import w from"../../Layout/Spinner/Spinner";import j from"../../UI/DynamicIcon/DynamicIcon";import"./Input.scss";var k=s.forwardRef(function(e,u){var s,k=e.blurTrim,S=e.autocomplete,x=e.isSelect,C=e.onChange,P=void 0===C?function(){}:C,E=e.onBlur,D=void 0===E?function(){}:E,A=e.onFocus,I=void 0===A?function(){}:A,M=e.onKeyUp,_=void 0===M?function(){}:M,F=e.onKeyDown,B=void 0===F?function(){}:F,K=e.isNotBlinkErrors,T=e.isPriceInput,R=e.onlyNumbers,U=e.disabled,V=e.withDelete,L=e.value,$=e.placeholder,z=e.className,H=e.type,Y=void 0===H?"text":H,q=e.mask,G=e.maskChar,J=e.formatChars,Q=e.error,W=e.icon,X=e.iconDynamicKey,Z=e.iconDynamicProps,ee=e.symbolsLimit,en=e.blinkTime,et=e.isFocusDefault,er=void 0!==et&&et,eo=e.isNotValidateASCII,ei=void 0!==eo&&eo,eu=e.isNumericMobileKeyboard,ea=e.isCropFirstNool,el=void 0!==ea&&ea,ec=e.testId,es=e.action,ef=e.isUseAutoSelect,ep=void 0===ef||ef,em=e.isReadOnly,ed=e.isLoading,ey=void 0!==ed&&ed,eb=e.name,ev=e.fieldKey,eg=e.id,eh=e.attributesOfNativeInput,eN=void 0===eh?{}:eh,eO=k||{},ew=eO.trimStart,ej=eO.trimEnd,ek=eO.characters,eS=X&&!W?a(j,t({iconKey:X},void 0===Z?{}:Z)):null,ex=o(d(!1),2),eC=ex[0],eP=ex[1],eE=o(d(!1),2),eD=eE[0],eA=eE[1],eI=m(null),eM=p(function(){return u||eI},[u]),e_=o(d(!1),2),eF=e_[0],eB=e_[1],eK=o(d(!1),2),eT=eK[0],eR=eK[1],eU=o(d(!1),2),eV=eU[0],eL=eU[1],e$=o(d(L),2),ez=e$[0],eH=e$[1],eY=o(d({start:null,end:null,keyCode:null}),2),eq=eY[0],eG=eY[1],eJ=!!R&&T,eQ=!K&&!q,eW="pseudoPassword"===Y,eX={correctMinMax:function(e,n){if(!R)return e;var t,r=O(R)?R:{},o=r.min,i=r.max,u=r.isOnlyPositive,a=r.isNoEmptyValues,l=Number.isNaN(Number(o))||null===o||!(o>=0)&&u?void 0:o,c=Number.isNaN(Number(i))||null===i||!(i>=0)&&u?void 0:i,s=N(e),f=function(){!s&&a?s=void 0!==l?l:"0":s&&!Number.isNaN(Number(l))&&Number(l)>Number((null!=t?t:"")+s)&&(s=l)},p=function(){!Number.isNaN(Number(c))&&Number(c)<Number((null!=t?t:"")+s)&&(s=c,t=null)};switch(eJ&&(s=h(s)),!u&&"-"===s[0]&&(t="-",s=s.slice(1)),s=b(s,R),n){case"min":f();break;case"max":p();break;default:f(),p()}return s},processPseudoValue:function(e,n){var t=e.replace(RegExp("•","g"),"");if(t.length>1)return t;var r=e.replace(new RegExp(/^HIDE_SYMBOL/g),"").length<n.length,o=n.split(""),i=function(e){return eq.start===eq.end&&(t?e<eq.start:8===eq.keyCode?e<eq.start-1||e>eq.end-1:e<eq.start||e>eq.end)};if(!t)return o.reduce(function(e,n,t){return i(t)?"".concat(e).concat(n):e},"");var u=o.reduce(function(e,n,r){return i(r)?e.result="".concat(e.result).concat(n):e.position||(e.position=t?r:r-1),e},{result:"",position:r?null:eq.start});return"".concat(u.result.slice(0,u.position)).concat(t).concat(u.result.slice(u.position))},change:function(e){var n,t=(O(R)?R:{}).isOnlyPositive,r=e.target?e.target.value:e;if(eW&&(r=r.includes("•")?eX.processPseudoValue(r,L,e):r),T&&","===r.charAt(r.length-1)&&(r=r.substring(0,r.length-1).concat(".")),eJ&&(r=h(r)),R&&(r=r.replace(/,/g,".")),R&&!t&&"-"===r[0]&&(n="-",r=r.slice(1)),ei||(r=g(r)),ee&&r.length>Number(ee)&&(r=r.substring(0,Number(ee))),el&&0==r[0])return"";R&&(r=eX.correctMinMax(r,"max")),P(((null!=n?n:"")+r).toString())},toggleEdit:function(){eA(!eD),P("")},focus:function(e){eP(!0),I(e)},blur:function(e){var n=eX.correctMinMax(N(L),"min");ew&&(n=n.replace(new RegExp("^[".concat(ek,"]+")),"")),ej&&(n=n.replace(new RegExp("[".concat(ek,"]+$")),"")),L!==n&&P(n),eP(!1),eA(!1),D&&setTimeout(function(){return D(e)},0)},keyDown:function(e){var n;eH(null==e||null==(n=e.target)?void 0:n.value),eG({start:e.target.selectionStart,end:e.target.selectionEnd,keyCode:e.keyCode}),B(e.keyCode,e)},keyUp:function(e){if(eQ){var n="".concat(null!=L?L:""),t="".concat(ez),r=t.length<=n.length?t:n,o=t.length>n.length?t:n,i=r.split("").reduce(function(e,n,t){return e.countOn&&n===o[t]?e.same.push(n):(e.countOn=!1,e.differences.push([t,n])),e},{same:[],countOn:!0,differences:[]}),u=i.same.join(""),a=i.differences.length,l=null==n?void 0:n.replace(u,"");y.includes(e.key)||n!==t||eB(!(!a&&e.key===l))}_(e.keyCode,e)}};f(function(){var e,n;eD&&(null==eM||null==(n=eM.current)||null==(e=n.focus)||e.call(n))},[eD,eC]),f(function(){eA(null!=x&&x)},[x]),f(function(){eQ&&eF&&(eB(null),eR(!0),setTimeout(function(){eR(!1)},en||100))},[eF]),f(function(){(null==eM?void 0:eM.current)&&"boolean"==typeof er&&eP(er),eA(er)},[eM,er]);var eZ=(s=N(L),eW?s.split("").map(function(){return"•"}).join(""):((null==R?void 0:R.isNoEmptyValues)&&(s=eX.correctMinMax(s,"min")),eJ&&(s=v(s,R)),s)),e0=t({name:eb||ev||eg,className:c("input",z,{"input--with-icon":W,"input--with-delete":V}),placeholder:$,value:eZ,inputMode:void 0!==eu&&eu?"decimal":"text",disabled:U,onChange:eX.change,onFocus:eX.focus,onBlur:eX.blur,onKeyUp:eX.keyUp,onKeyDown:eX.keyDown},G?{maskChar:G}:{},J?{formatChars:J}:{});return l("div",{"data-testid":void 0===ec?"input":ec,className:c("input__wrap",n({},"input__wrap_focus",eC),n({},"input__wrap_error",Q||eT),n({},"input__wrap--disabled",U||ey)),onMouseEnter:function(){return eL(!0)},onMouseLeave:function(){return eL(!1)},children:[a("input",r(t(r(t({readOnly:void 0!==em&&em},e0),{ref:eM,type:T||eW?"text":Y,autoComplete:eW||void 0===S?"off":S}),eN),{onFocus:function(){for(var e,n=arguments.length,t=Array(n),r=0;r<n;r++)t[r]=arguments[r];null==eN||null==(e=eN.onFocus)||e.call.apply(e,[eN].concat(i(t))),ep&&eM.current.select(),e0.onFocus&&e0.onFocus.apply(e0,i(t))},onBlur:function(){for(var e,n=arguments.length,t=Array(n),r=0;r<n;r++)t[r]=arguments[r];null==eN||null==(e=eN.onBlur)||e.call.apply(e,[eN].concat(i(t))),e0.onBlur&&e0.onBlur.apply(e0,i(t))}})),null!=eS?eS:W,es,V&&eV&&a("span",{className:c("input__close",{hidden:!N(L)}),onClick:eX.toggleEdit}),ey&&a(w,{size:"small"})]})});export default k;
@@ -1,161 +1 @@
1
- import React, { useEffect, useRef, useState } from "react";
2
-
3
- import cn from "classnames";
4
- import moment from "moment-timezone";
5
- import InputMask from "react-input-mask";
6
-
7
- import { useClickOutside } from "../../../Functions/useClickOutside";
8
- import Calendar from "../Calendar/Calendar";
9
-
10
- import "./InputCalendar.scss";
11
-
12
- const InputCalendar = ({
13
- value,
14
- minDate,
15
- maxDate,
16
- format = "MM/DD/YYYY",
17
- isDontLimitFuture,
18
- onChange,
19
- className = "",
20
- placeholder = "mm/dd/yyyy",
21
- mask = "99/99/9999",
22
- isListTop,
23
- disabled,
24
- disabledFormattedMaxDate = false,
25
- testId = "input-calendar",
26
-
27
- onKeyDown: onKeyDownProp = (e) => {},
28
- onKeyUp: onKeyUpProp = (e) => {},
29
- onBlur: onBlurProp = (e) => {},
30
- }) => {
31
- const [isOpened, setIsOpened] = useState(null);
32
- const [isOpenedByEnter, setOpenedByEnter] = useState(false);
33
- const calendarRef = useRef(null);
34
- const inputRef = useRef(null);
35
-
36
- const formattedMinDate =
37
- moment(minDate, format).format(format) !== "Invalid date"
38
- ? moment(minDate, format).format(format)
39
- : null;
40
- const formattedMaxDate =
41
- moment(maxDate, format).format(format) !== "Invalid date"
42
- ? moment(maxDate, format).format(format)
43
- : null;
44
-
45
- const momentMinDate = moment(formattedMinDate, format).startOf("day");
46
- const momentMaxDate = moment(formattedMaxDate, format).startOf("day");
47
-
48
- useClickOutside(calendarRef, () => setIsOpened(false));
49
-
50
- const changeInputValue = (val) => {
51
- if (onChange) onChange(val);
52
- };
53
-
54
- const changeCalendarDay = (val) => {
55
- if (onChange) onChange(val);
56
- };
57
-
58
- const getCalendarValue = (value) => {
59
- const date = moment(value).format("L");
60
-
61
- if (date !== "Invalid date") return date;
62
-
63
- return moment(new Date()).format("L");
64
- };
65
-
66
- useEffect(() => {
67
- if (typeof isOpened === "boolean" && !isOpened) {
68
- handleBlur();
69
- }
70
- }, [isOpened]);
71
-
72
- const handleBlur = (e) => {
73
- let value = inputRef?.current?.value;
74
- if (
75
- moment(value, format).format(format) === "Invalid date" ||
76
- value.indexOf("_") > -1
77
- )
78
- value = "";
79
-
80
- if (
81
- value &&
82
- typeof isOpened === "boolean" &&
83
- moment(value, format).startOf("day").isBefore(momentMinDate, "days")
84
- )
85
- onChange(formattedMinDate);
86
- else if (
87
- value &&
88
- typeof isOpened === "boolean" &&
89
- moment(value, format).endOf("day").isAfter(momentMaxDate, "days")
90
- )
91
- onChange(formattedMaxDate);
92
- else if (value) onChange(moment(value, format).format(format));
93
- };
94
-
95
- const onKeyDown = (e) => {
96
- if (isOpened && [9, 13].includes(e.keyCode)) {
97
- setIsOpened(false);
98
- setOpenedByEnter(true);
99
- }
100
-
101
- onKeyDownProp(e);
102
- };
103
-
104
- const onKeyUp = (e) => {
105
- const isValidLenght = e.target.value?.replace(/[^0-9]/g, "").length === 8;
106
-
107
- if ([9, 13].includes(e.keyCode)) {
108
- setIsOpened(true);
109
- setOpenedByEnter(true);
110
- }
111
-
112
- if (isValidLenght) {
113
- setIsOpened(false);
114
- handleBlur();
115
- } else {
116
- setIsOpened(true);
117
- }
118
- onKeyUpProp(e);
119
- };
120
-
121
- return (
122
- <div
123
- data-testid={testId}
124
- className={cn("input__wrap calendar-container", className, {
125
- "calendar-container_disabled": disabled,
126
- })}
127
- ref={calendarRef}
128
- >
129
- <InputMask
130
- mask={mask}
131
- placeholder={placeholder}
132
- value={value}
133
- onChange={(e) => changeInputValue(e.target.value)}
134
- className="calendar-dropdown"
135
- onClick={() => setIsOpened(true)}
136
- onKeyUp={onKeyUp}
137
- onKeyDown={onKeyDown}
138
- onBlur={onBlurProp}
139
- ref={inputRef}
140
- />
141
- {isOpened ? (
142
- <Calendar
143
- date={getCalendarValue(value)}
144
- setDate={(newDate) => changeCalendarDay(newDate)}
145
- params={{
146
- format,
147
- minDate: formattedMinDate,
148
- maxDate: formattedMaxDate,
149
- momentMinDate,
150
- momentMaxDate,
151
- isDontLimitFuture,
152
- }}
153
- isListTop={isListTop}
154
- setIsOpened={setIsOpened}
155
- />
156
- ) : null}
157
- </div>
158
- );
159
- };
160
-
161
- export default InputCalendar;
1
+ function t(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=Array(n);e<n;e++)r[e]=t[e];return r}function n(n,e){return function(t){if(Array.isArray(t))return t}(n)||function(t,n){var e,r,a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=a){var o=[],i=!0,l=!1;try{for(a=a.call(t);!(i=(e=a.next()).done)&&(o.push(e.value),!n||o.length!==n);i=!0);}catch(t){l=!0,r=t}finally{try{i||null==a.return||a.return()}finally{if(l)throw r}}return o}}(n,e)||function(n,e){if(n){if("string"==typeof n)return t(n,e);var r=Object.prototype.toString.call(n).slice(8,-1);if("Object"===r&&n.constructor&&(r=n.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return t(n,e)}}(n,e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useEffect as a,useRef as o,useState as i}from"react";import l from"classnames";import u from"moment-timezone";import d from"react-input-mask";import{useClickOutside as f}from"../../../Functions/useClickOutside";import m from"../Calendar/Calendar";import"./InputCalendar.scss";export default function(t){var s,c=t.value,p=t.minDate,y=t.maxDate,v=t.format,b=void 0===v?"MM/DD/YYYY":v,h=t.isDontLimitFuture,D=t.onChange,g=t.className,x=t.placeholder,C=t.mask,I=t.isListTop,O=t.disabled,k=(t.disabledFormattedMaxDate,t.testId),w=t.onKeyDown,A=void 0===w?function(t){}:w,j=t.onKeyUp,L=void 0===j?function(t){}:j,M=t.onBlur,S=n(i(null),2),F=S[0],K=S[1],Y=n(i(!1),2),_=(Y[0],Y[1]),B=o(null),N=o(null),T="Invalid date"!==u(p,b).format(b)?u(p,b).format(b):null,U="Invalid date"!==u(y,b).format(b)?u(y,b).format(b):null,z=u(T,b).startOf("day"),E=u(U,b).startOf("day");f(B,function(){return K(!1)});var $=function(t){D&&D(t)},q=function(t){D&&D(t)};a(function(){"boolean"!=typeof F||F||G()},[F]);var G=function(t){var n,e=null==N||null==(n=N.current)?void 0:n.value;("Invalid date"===u(e,b).format(b)||e.indexOf("_")>-1)&&(e=""),e&&"boolean"==typeof F&&u(e,b).startOf("day").isBefore(z,"days")?D(T):e&&"boolean"==typeof F&&u(e,b).endOf("day").isAfter(E,"days")?D(U):e&&D(u(e,b).format(b))};return r("div",{"data-testid":void 0===k?"input-calendar":k,className:l("input__wrap calendar-container",void 0===g?"":g,{"calendar-container_disabled":O}),ref:B,children:[e(d,{mask:void 0===C?"99/99/9999":C,placeholder:void 0===x?"mm/dd/yyyy":x,value:c,onChange:function(t){return $(t.target.value)},className:"calendar-dropdown",onClick:function(){return K(!0)},onKeyUp:function(t){var n,e=(null==(n=t.target.value)?void 0:n.replace(/[^0-9]/g,"").length)===8;[9,13].includes(t.keyCode)&&(K(!0),_(!0)),e?(K(!1),G()):K(!0),L(t)},onKeyDown:function(t){F&&[9,13].includes(t.keyCode)&&(K(!1),_(!0)),A(t)},onBlur:void 0===M?function(t){}:M,ref:N}),F?e(m,{date:"Invalid date"!==(s=u(c).format("L"))?s:u(new Date).format("L"),setDate:function(t){return q(t)},params:{format:b,minDate:T,maxDate:U,momentMinDate:z,momentMaxDate:E,isDontLimitFuture:h},isListTop:I,setIsOpened:K}):null]})}