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,405 +1 @@
1
- import { getIsOnlyAnObject } from "./utils";
2
-
3
- //? The first word "format" in the function name means a logic
4
- //? in which the function transforms the incoming value in any case.
5
-
6
- //? The first word "transform" in the function name means a logic
7
- //? in which the function converts the whole value, but this is not suitable for sequential input
8
-
9
- //? The first word "filter" in the function name means a logic
10
- //? in which the function works as a changer for sequential input
11
-
12
- // ****************************
13
- // Base utils
14
- // ****************************
15
-
16
- export const getSafelyValue = (value) =>
17
- value !== undefined && value !== null ? value?.toString?.() || "" : "";
18
-
19
- // базовая реализация
20
- export const intlNumbersFormatter = (inputValue, settings = {}) => {
21
- const safelyInputValue = getSafelyValue(inputValue);
22
- const previousValue = safelyInputValue.slice(0, -1);
23
- const lastSym = safelyInputValue.slice(-1);
24
- const value = lastSym === "." ? previousValue : safelyInputValue;
25
-
26
- if (Number.isNaN(Number(value)) || !getSafelyValue(value)) return "";
27
-
28
- const {
29
- // локаль, даже региональная, влияет на отображение знаков и формата.
30
- locale = "en-US",
31
- // percent || currency(default case) || decimal(просто число) влияет на ТИП обработки.
32
- withSymbol,
33
- //группировка запятыми поразрядно.
34
- useGrouping = true,
35
- //!!работает только при withSymbol: 'currency' !! влияет на то, как именно будет выглядет формат валюты.
36
- currency = {},
37
- //сколько знаков после точки, и всегда ли они будут.
38
- // !!если поставить isAlwaysRender: true, но не дать центов, то будет 100.00
39
- fractionDigits = {},
40
- } = settings;
41
-
42
- const { currencyType = "USD", currencyDisplay: inputCurrencyDisplay } =
43
- currency;
44
-
45
- let currencyDisplay;
46
- switch (inputCurrencyDisplay) {
47
- case "name":
48
- currencyDisplay = "name";
49
- break;
50
- case "code":
51
- currencyDisplay = "code";
52
- break;
53
- case "narrowSymbol":
54
- currencyDisplay = "narrowSymbol";
55
- break;
56
- default:
57
- currencyDisplay = "symbol";
58
- }
59
-
60
- let numberStyle;
61
- switch (withSymbol) {
62
- case "percent":
63
- numberStyle = "percent";
64
- break;
65
- case "currency":
66
- numberStyle = "currency";
67
- break;
68
- default:
69
- numberStyle = "decimal";
70
- break;
71
- }
72
-
73
- const {
74
- quantity,
75
- isRenderAlways = false,
76
- minimumFractionDigits: inputMinimumFractionDigits,
77
- maximumFractionDigits: inputMaximumFractionDigits,
78
- conditionallyMinimumFractionDigits,
79
- } = fractionDigits;
80
-
81
- const dotIndex = safelyInputValue?.indexOf(".");
82
- const afterDot = dotIndex !== -1 ? safelyInputValue.slice(dotIndex + 1) : "";
83
- const minimumFractionDigits = (() => {
84
- //? Безусловное минимальное количество. Всегда отрендерит дробную часть, в количестве символов сколько указано
85
- if (typeof inputMinimumFractionDigits === "number")
86
- return inputMinimumFractionDigits;
87
- //? Условное минимальное количество. Если есть дробная часть, то отрендерит дробных символов сколько указано
88
- if (typeof conditionallyMinimumFractionDigits === "number") {
89
- return afterDot && lastSym !== "."
90
- ? conditionallyMinimumFractionDigits
91
- : 0;
92
- }
93
- //? Дефолтное минимальное количество. Если есть дробная часть, то отрендерит дробных символов столько, сколько есть
94
- //? Флаг isRenderAlways превращает дефолтный кейс в безусловное минимальное количество
95
- return afterDot && lastSym !== "."
96
- ? safelyInputValue.slice(dotIndex).length - 1
97
- : isRenderAlways
98
- ? quantity
99
- : 0;
100
- })();
101
-
102
- const priceSettings = {
103
- useGrouping, //группировка разрядов
104
- style: numberStyle, //тип форматирования (валюта или число). decimal - без знака валюты
105
- currency: currencyType, //валюта
106
- currencyDisplay, //валюта в виде символа
107
- //минимально не надо отображать центы, если их нет, иначе всегда будет .00
108
- minimumFractionDigits,
109
- //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
110
- //! чем указано в (inputMaximumFractionDigits ?? quantity) - округлит по правилам округления
111
- //максимально отображать 2 цифры после запятой, если центы всё же есть
112
- maximumFractionDigits: inputMaximumFractionDigits ?? quantity,
113
- };
114
-
115
- let output;
116
-
117
- try {
118
- output = new Intl.NumberFormat(locale, priceSettings).format(value);
119
- } catch (e) {
120
- output = value;
121
- // eslint-disable-next-line no-console
122
- console.warn("Intl.NumberFormat error", e);
123
- }
124
- return lastSym === "." ? output + lastSym : output;
125
- };
126
-
127
- // ****************************
128
- // format
129
- // ****************************
130
-
131
- export const formatOnlyNumbers = (value) =>
132
- getSafelyValue(value).replace(/\D/g, "");
133
- export const formatToRemoveComa = (value) =>
134
- getSafelyValue(value).replace(/,/g, "");
135
- export const formatToAddBitDepthPoints = (value, settings) =>
136
- intlNumbersFormatter(getSafelyValue(value), {
137
- fractionDigits: {
138
- quantity: settings?.type === "int" ? 0 : settings?.decimalPlaces,
139
- },
140
- });
141
-
142
- //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
143
- //! чем указано в quantity - округлит по правилам округления
144
- export const formatToPriceWithUSD = (value) => {
145
- if (isNaN(Number(value))) return value;
146
- return intlNumbersFormatter(getSafelyValue(value), {
147
- withSymbol: "currency",
148
- currency: { currencyType: "USD" },
149
- fractionDigits: { quantity: 2, conditionallyMinimumFractionDigits: 2 },
150
- });
151
- };
152
-
153
- //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
154
- //! чем указано в quantity - округлит по правилам округления
155
-
156
- // ToDo - symbolPosition временно не реализовано
157
- export const formatToPriceWithCurrency = (
158
- value,
159
- currencyCode,
160
- symbolPosition = "before",
161
- ) => {
162
- if (isNaN(Number(value))) return value;
163
- return intlNumbersFormatter(getSafelyValue(value), {
164
- withSymbol: "currency",
165
- currency: { currencyType: currencyCode },
166
- fractionDigits: { quantity: 2, conditionallyMinimumFractionDigits: 2 },
167
- });
168
- };
169
-
170
- //? Добавляет в конец знак %. Работает как с одиночными значениями, так и с диапазонами.
171
-
172
- //? value может быть любое, но ожидается что будет
173
- //? - числом
174
- //? - строкой в формате "значение"
175
- //? - строкой в формате "значение - значение" (значение_пробел_тире_пробел_значение)
176
- //? - объект в формате { from: значение, to: значение }
177
-
178
- //? Предполагается, что "значение" может быть приведено к числу операторм + (пример: +значение приводится к числу).
179
- //? Если не может быть приведено, то "значение" вернется как есть, к результату добавится %
180
-
181
- //? Если "значение" пустое (getSafelyValue(значение) вернет пустую строку),
182
- //? то это воспринимается как 0, приводится к 0.00%
183
-
184
- //? Одиноково работает как для ".", так и "," в качестве разделителя дробных разрядов
185
-
186
- //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
187
- //! чем указано в decimalPlaces - округлит по правилам округления
188
-
189
- export const formatAsPercentage = (value, settings) => {
190
- const {
191
- isCommonPercentageSymbol = true,
192
- decimalPlaces = 2,
193
- beforeValueSymbol = "",
194
- afterValueSymbol = "",
195
- isGlueSameRangesTogether = false,
196
-
197
- // ? Тут удобный ф-л, поэтому иной раз удобно обработать обычный диапазан (НЕ проценты).
198
- // ? Добавил возможность выпиливать значек процентов.
199
- // todo(VL) - вообще правильно заренеймить (formatAsDiapason), а добавление процентов сделать как опцию,
200
- // todo(VL) - но как обычно нет времени, нужно будет перечекать по всем проектам где тянется со старым неймингом
201
- isUseAsSimpleDiapason = false,
202
- } = getIsOnlyAnObject(settings) ? settings : {};
203
- let safelyInputValue;
204
-
205
- const checkValue = (value) => getSafelyValue(value) || "0";
206
-
207
- const transform = (valueAsSting) => {
208
- const processedValue = valueAsSting.replace(/,/g, ".");
209
- if (Number.isNaN(Number(processedValue))) return processedValue;
210
- return `${intlNumbersFormatter(getSafelyValue(Number(processedValue)), {
211
- fractionDigits: {
212
- quantity: decimalPlaces,
213
- minimumFractionDigits: decimalPlaces,
214
- },
215
- })}`;
216
- };
217
-
218
- if (getIsOnlyAnObject(value)) {
219
- safelyInputValue = {
220
- from: checkValue(value.from),
221
- to: checkValue(value.to),
222
- };
223
- } else {
224
- safelyInputValue = checkValue(value);
225
-
226
- if (safelyInputValue.includes(" - ")) {
227
- const valuesArr = safelyInputValue
228
- .split(" - ")
229
- .map((partOfValue) => partOfValue.trim());
230
- safelyInputValue = {
231
- from: checkValue(valuesArr[0]),
232
- to: checkValue(valuesArr[1]),
233
- };
234
- } else {
235
- // Вариант когда велью передано строкой (НЕ объектом) и оно не содержит сепаратора " - "
236
- // - одиночные велью
237
- // - некорректный диапазон
238
- return `${beforeValueSymbol}${transform(safelyInputValue)}${afterValueSymbol}${isUseAsSimpleDiapason ? '' : '%'}`;
239
- }
240
- }
241
-
242
- if (safelyInputValue.from === safelyInputValue.to && !!isGlueSameRangesTogether) {
243
- return `${beforeValueSymbol}${transform(safelyInputValue.from)}${afterValueSymbol}${isUseAsSimpleDiapason ? '' : '%'}`;
244
- }
245
-
246
- if (isCommonPercentageSymbol)
247
- return `${beforeValueSymbol}${transform(safelyInputValue.from)} - ${transform(
248
- safelyInputValue.to,
249
- )}${afterValueSymbol}${isUseAsSimpleDiapason ? '' : '%'}`;
250
- else
251
- return `${beforeValueSymbol}${transform(safelyInputValue.from)}${isUseAsSimpleDiapason ? '' : '%'} - ${transform(
252
- safelyInputValue.to,
253
- )}${isUseAsSimpleDiapason ? '' : '%'}${afterValueSymbol}`;
254
- };
255
-
256
- // eslint-disable-next-line no-control-regex
257
- export const formatToOnlyASCIICodeText = (text) =>
258
- getSafelyValue(text).replace(/[^\x00-\x7F]+/g, "");
259
-
260
- // eslint-disable-next-line default-param-last
261
- export const formatNumberValueToMask = (inputValue, settings) => {
262
- const safelyInputValue = getSafelyValue(inputValue);
263
-
264
- // default valueSymbol === 'n', default mask === 'nnn-nnn-nnnn'
265
- const {
266
- mask = "XXX-XXX-XXXX",
267
- valueSymbol = "X",
268
- isReturnAdvanced = false,
269
- } = settings || {};
270
- const processing = mask.split("").reduce(
271
- (acc, item) => {
272
- if (acc.value.length) ++acc.cursorPosition;
273
- acc.newValue.push(
274
- item === valueSymbol && acc.value.length ? acc.value.shift() : item,
275
- );
276
- return acc;
277
- },
278
- {
279
- value: safelyInputValue.split("").filter((sym) => /[0-9]/g.test(sym)),
280
- newValue: [],
281
- cursorPosition: 0,
282
- },
283
- );
284
-
285
- return isReturnAdvanced
286
- ? {
287
- value: processing.newValue.join(""),
288
- cursorPosition: processing.cursorPosition,
289
- }
290
- : processing.newValue.join("");
291
- };
292
-
293
- export const formatToLimitLength = (inputValue, limit) => {
294
- const value = getSafelyValue(inputValue);
295
- return limit &&
296
- typeof limit === "number" &&
297
- !Number.isNaN(limit) &&
298
- value?.length > limit
299
- ? value.substr(0, limit)
300
- : value;
301
- };
302
-
303
- export const formatToHex = ({ inputValue, withSharp }) => {
304
- const value = getSafelyValue(inputValue);
305
- if (withSharp) return `#${value.replace(/[^a-f0-9]/gi, "")}`;
306
-
307
- return `${value.replace(/[^#a-f0-9]/gi, "")}`;
308
- };
309
-
310
- export function formatToReplaceAllWhiteSpace(str) {
311
- const value = getSafelyValue(str);
312
- return value.replace(/\s+/g, "");
313
- }
314
-
315
- // ****************************
316
- // transform
317
- // ****************************
318
-
319
- // ...
320
-
321
- // ****************************
322
- // filter
323
- // ****************************
324
- //? Намерянно выпилил определение дефолтного значение на уровне параметров, чтобы сделать null рабочим значением
325
- //? decimalPlaces === null теперь точно определяет режим ввода БЕЗ ограничей десятичных знаков
326
- export const filterFloat = (inputValue, decimalPlaces) => {
327
- const replaser = input => ('' + input).replace(/[^\.\d]/g, '');
328
- const value = getSafelyValue(inputValue);
329
-
330
- //? safelyDecimalPlaces ТОЧНО либо null, либо целое число
331
- const safelyDecimalPlaces = (() => {
332
- if (decimalPlaces === null) return decimalPlaces;
333
-
334
- const DEFAULT_VALUE = 2;
335
- const isNumber = typeof decimalPlaces === 'number' || (typeof decimalPlaces === 'string' && !Number.isNaN(+decimalPlaces));
336
-
337
- //? защита от дробного значения decimalPlaces
338
- return isNumber ? Number((+decimalPlaces).toFixed()) : DEFAULT_VALUE;
339
- })();
340
-
341
- // Обработка кейса если первым символом нажата точка
342
- if (value.length === 1 && (value[0] === '.' || value[0] === ',')) return '0.';
343
-
344
- // Приводим запятые к корректному разделителю, но не выпиливаем
345
- let output = ('' + value)?.replace(/,/g, '.');
346
-
347
- // Выпилить первый ноль, если это не дробь
348
- if (value.length > 1 && value[0] === '0' && value[1] !== '.' && value[0] !== ',') output = value.slice(1);
349
-
350
- const previousValue = '' + output.slice(0, -1);
351
- const lastSym = '' + output.slice(-1);
352
-
353
- // Обработка кейса второй точки в дроби
354
- if (lastSym === '.' && previousValue.includes('.')) output = previousValue;
355
-
356
- // if (localStorage.getItem('useDeb')) debugger;
357
-
358
- // Логика ограничения по decimalPlaces
359
- if (typeof safelyDecimalPlaces === 'number') {
360
- if (!safelyDecimalPlaces && lastSym === '.') return replaser(previousValue);
361
- if (previousValue.includes('.') && (previousValue.indexOf('.') + 1 + safelyDecimalPlaces === previousValue?.length)) {
362
- return replaser(previousValue);
363
- }
364
- }
365
-
366
- return replaser(output);
367
- };
368
-
369
- export const filterNumeric = (value, settings) => {
370
- value = getSafelyValue(value)?.replace(/,/g, "");
371
- const { type = "float", decimalPlaces } = settings || {};
372
-
373
- const executor = type === "float" ? filterFloat : formatOnlyNumbers;
374
- return executor(getSafelyValue(value), decimalPlaces);
375
- };
376
-
377
- export const formatToHideValuePartially = (value, settings) => {
378
- const {
379
- showSymbolsCount = 4,
380
- isVisibleFromFront = false,
381
- isCutOutWhiteSpaces = true,
382
- } = settings || {};
383
- const safelyValue = getSafelyValue(value);
384
-
385
- const newValue = isCutOutWhiteSpaces
386
- ? safelyValue.replace(/\s/g, "")
387
- : safelyValue;
388
- if (newValue.length <= showSymbolsCount) return newValue;
389
-
390
- const hide = (val) =>
391
- val
392
- .split("")
393
- .map(() => "*")
394
- .join("");
395
- const visiblePart = isVisibleFromFront
396
- ? newValue.slice(0, showSymbolsCount)
397
- : newValue.slice(-1 * showSymbolsCount);
398
- const hiddenPart = isVisibleFromFront
399
- ? newValue.slice(showSymbolsCount)
400
- : newValue.slice(0, -1 * showSymbolsCount);
401
-
402
- return isVisibleFromFront
403
- ? `${visiblePart}${hide(hiddenPart)}`
404
- : `${hide(hiddenPart)}${visiblePart}`;
405
- };
1
+ import{getIsOnlyAnObject as e}from"./utils";export var getSafelyValue=function(e){var t;return null!=e&&(null==e||null==(t=e.toString)?void 0:t.call(e))||""};export var intlNumbersFormatter=function(e){var t,r,a,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=getSafelyValue(e),o=i.slice(0,-1),c=i.slice(-1),l="."===c?o:i;if(Number.isNaN(Number(l))||!getSafelyValue(l))return"";var u=n.locale,m=n.withSymbol,s=n.useGrouping,f=n.currency,y=void 0===f?{}:f,v=n.fractionDigits,g=void 0===v?{}:v,p=y.currencyType;switch(y.currencyDisplay){case"name":t="name";break;case"code":t="code";break;case"narrowSymbol":t="narrowSymbol";break;default:t="symbol"}switch(m){case"percent":r="percent";break;case"currency":r="currency";break;default:r="decimal"}var d=g.quantity,b=g.isRenderAlways,S=g.minimumFractionDigits,N=g.maximumFractionDigits,V=g.conditionallyMinimumFractionDigits,h=null==i?void 0:i.indexOf("."),x=-1!==h?i.slice(h+1):"",D={useGrouping:void 0===s||s,style:r,currency:void 0===p?"USD":p,currencyDisplay:t,minimumFractionDigits:"number"==typeof S?S:"number"==typeof V?x&&"."!==c?V:0:x&&"."!==c?i.slice(h).length-1:void 0!==b&&b?d:0,maximumFractionDigits:null!=N?N:d};try{a=new Intl.NumberFormat(void 0===u?"en-US":u,D).format(l)}catch(e){a=l}return"."===c?a+c:a};export var formatOnlyNumbers=function(e){return getSafelyValue(e).replace(/\D/g,"")};export var formatToRemoveComa=function(e){return getSafelyValue(e).replace(/,/g,"")};export var formatToAddBitDepthPoints=function(e,t){return intlNumbersFormatter(getSafelyValue(e),{fractionDigits:{quantity:(null==t?void 0:t.type)==="int"?0:null==t?void 0:t.decimalPlaces}})};export var formatToPriceWithUSD=function(e){return isNaN(Number(e))?e:intlNumbersFormatter(getSafelyValue(e),{withSymbol:"currency",currency:{currencyType:"USD"},fractionDigits:{quantity:2,conditionallyMinimumFractionDigits:2}})};export var formatToPriceWithCurrency=function(e,t){return(arguments.length>2&&void 0!==arguments[2]&&arguments[2],isNaN(Number(e)))?e:intlNumbersFormatter(getSafelyValue(e),{withSymbol:"currency",currency:{currencyType:t},fractionDigits:{quantity:2,conditionallyMinimumFractionDigits:2}})};export var formatAsPercentage=function(t,r){var a,n=e(r)?r:{},i=n.isCommonPercentageSymbol,o=n.decimalPlaces,c=void 0===o?2:o,l=n.beforeValueSymbol,u=void 0===l?"":l,m=n.afterValueSymbol,s=void 0===m?"":m,f=n.isGlueSameRangesTogether,y=n.isUseAsSimpleDiapason,v=void 0!==y&&y,g=function(e){return getSafelyValue(e)||"0"},p=function(e){var t=e.replace(/,/g,".");return Number.isNaN(Number(t))?t:"".concat(intlNumbersFormatter(getSafelyValue(Number(t)),{fractionDigits:{quantity:c,minimumFractionDigits:c}}))};if(e(t))a={from:g(t.from),to:g(t.to)};else{if(!(a=g(t)).includes(" - "))return"".concat(u).concat(p(a)).concat(s).concat(v?"":"%");var d=a.split(" - ").map(function(e){return e.trim()});a={from:g(d[0]),to:g(d[1])}}return a.from===a.to&&void 0!==f&&f?"".concat(u).concat(p(a.from)).concat(s).concat(v?"":"%"):void 0===i||i?"".concat(u).concat(p(a.from)," - ").concat(p(a.to)).concat(s).concat(v?"":"%"):"".concat(u).concat(p(a.from)).concat(v?"":"%"," - ").concat(p(a.to)).concat(v?"":"%").concat(s)};export var formatToOnlyASCIICodeText=function(e){return getSafelyValue(e).replace(/[^\x00-\x7F]+/g,"")};export var formatNumberValueToMask=function(e,t){var r=getSafelyValue(e),a=t||{},n=a.mask,i=a.valueSymbol,o=void 0===i?"X":i,c=a.isReturnAdvanced,l=(void 0===n?"XXX-XXX-XXXX":n).split("").reduce(function(e,t){return e.value.length&&++e.cursorPosition,e.newValue.push(t===o&&e.value.length?e.value.shift():t),e},{value:r.split("").filter(function(e){return/[0-9]/g.test(e)}),newValue:[],cursorPosition:0});return void 0!==c&&c?{value:l.newValue.join(""),cursorPosition:l.cursorPosition}:l.newValue.join("")};export var formatToLimitLength=function(e,t){var r=getSafelyValue(e);return t&&"number"==typeof t&&!Number.isNaN(t)&&(null==r?void 0:r.length)>t?r.substr(0,t):r};export var formatToHex=function(e){var t=e.inputValue,r=e.withSharp,a=getSafelyValue(t);return r?"#".concat(a.replace(/[^a-f0-9]/gi,"")):"".concat(a.replace(/[^#a-f0-9]/gi,""))};export function formatToReplaceAllWhiteSpace(e){return getSafelyValue(e).replace(/\s+/g,"")}export var filterFloat=function(e,t){var r=function(e){return(""+e).replace(/[^\.\d]/g,"")},a=getSafelyValue(e),n=null===t?t:"number"!=typeof t&&("string"!=typeof t||Number.isNaN(+t))?2:Number((+t).toFixed());if(1===a.length&&("."===a[0]||","===a[0]))return"0.";var i=(""+a).replace(/,/g,".");a.length>1&&"0"===a[0]&&"."!==a[1]&&","!==a[0]&&(i=a.slice(1));var o=""+i.slice(0,-1),c=""+i.slice(-1);return("."===c&&o.includes(".")&&(i=o),"number"==typeof n&&(!n&&"."===c||o.includes(".")&&o.indexOf(".")+1+n===(null==o?void 0:o.length)))?r(o):r(i)};export var filterNumeric=function(e,t){e=null==(r=getSafelyValue(e))?void 0:r.replace(/,/g,"");var r,a=t||{},n=a.type,i=a.decimalPlaces;return("float"===(void 0===n?"float":n)?filterFloat:formatOnlyNumbers)(getSafelyValue(e),i)};export var formatToHideValuePartially=function(e,t){var r=t||{},a=r.showSymbolsCount,n=void 0===a?4:a,i=r.isVisibleFromFront,o=void 0!==i&&i,c=r.isCutOutWhiteSpaces,l=getSafelyValue(e),u=void 0===c||c?l.replace(/\s/g,""):l;if(u.length<=n)return u;var m=function(e){return e.split("").map(function(){return"*"}).join("")},s=o?u.slice(0,n):u.slice(-1*n),f=o?u.slice(n):u.slice(0,-1*n);return o?"".concat(s).concat(m(f)):"".concat(m(f)).concat(s)};