intelicoreact 1.6.25 → 1.6.27

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