intelicoreact 1.5.36 → 1.5.40

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 (346) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +44 -93
  2. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.scss +13 -23
  3. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +38 -43
  4. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.scss +10 -20
  5. package/dist/Atomic/FormElements/Calendar/Calendar.js +164 -243
  6. package/dist/Atomic/FormElements/Calendar/Calendar.scss +0 -1
  7. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +51 -60
  8. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +15 -25
  9. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +39 -47
  10. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.scss +2 -5
  11. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +308 -410
  12. package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +109 -169
  13. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +527 -680
  14. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +59 -61
  15. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +15 -28
  16. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +378 -498
  17. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.scss +32 -36
  18. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +70 -103
  19. package/dist/Atomic/FormElements/FileLoader/FileLoader.scss +2 -0
  20. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +91 -138
  21. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +55 -109
  22. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +193 -254
  23. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.scss +16 -19
  24. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +140 -156
  25. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.scss +4 -8
  26. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +156 -222
  27. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +114 -158
  28. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +92 -151
  29. package/dist/Atomic/FormElements/Input/Input.js +330 -340
  30. package/dist/Atomic/FormElements/Input/Input.scss +1 -1
  31. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +110 -156
  32. package/dist/Atomic/FormElements/InputColor/InputColor.js +58 -57
  33. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +145 -188
  34. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +228 -294
  35. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.scss +2 -1
  36. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +56 -55
  37. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +536 -645
  38. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +190 -220
  39. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +31 -33
  40. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +169 -247
  41. package/dist/Atomic/FormElements/InputLink/InputLink.js +71 -118
  42. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +38 -47
  43. package/dist/Atomic/FormElements/InputMask/InputMask.js +1053 -938
  44. package/dist/Atomic/FormElements/InputMask/config.js +15 -16
  45. package/dist/Atomic/FormElements/InputMask/functions.js +51 -77
  46. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +592 -569
  47. package/dist/Atomic/FormElements/InputMask2/config.js +15 -16
  48. package/dist/Atomic/FormElements/InputMask2/functions.js +51 -77
  49. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +679 -651
  50. package/dist/Atomic/FormElements/InputMask3/config.js +15 -16
  51. package/dist/Atomic/FormElements/InputMask3/functions.js +51 -77
  52. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +88 -127
  53. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.scss +1 -1
  54. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +111 -182
  55. package/dist/Atomic/FormElements/Label/Label.js +55 -82
  56. package/dist/Atomic/FormElements/Label/Label.scss +8 -18
  57. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +382 -437
  58. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.scss +3 -3
  59. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +50 -88
  60. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +264 -314
  61. package/dist/Atomic/FormElements/NumericInput/NumericInput.scss +1 -1
  62. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +51 -93
  63. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +55 -69
  64. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +45 -51
  65. package/dist/Atomic/FormElements/RadioInput/RadioInput.scss +4 -4
  66. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +40 -53
  67. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +120 -169
  68. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +141 -195
  69. package/dist/Atomic/FormElements/RangeList/RangeList.js +140 -199
  70. package/dist/Atomic/FormElements/RangeList/RangeList.scss +2 -2
  71. package/dist/Atomic/FormElements/RangeList/partial/AnyOuterClass.scss +4 -1
  72. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +44 -57
  73. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +377 -463
  74. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.scss +1 -1
  75. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +759 -760
  76. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.scss +9 -9
  77. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +31 -36
  78. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.scss +2 -0
  79. package/dist/Atomic/FormElements/SwitchableRow/partial/AnyOuterClass.scss +1 -1
  80. package/dist/Atomic/FormElements/Switcher/Switcher.js +44 -52
  81. package/dist/Atomic/FormElements/Switcher/Switcher.scss +3 -3
  82. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +44 -43
  83. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.scss +2 -0
  84. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +36 -37
  85. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.scss +2 -0
  86. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +56 -93
  87. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.scss +2 -0
  88. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +53 -86
  89. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.scss +2 -0
  90. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +54 -46
  91. package/dist/Atomic/FormElements/SwitcherRangeList/partial/AnyOuterClass.scss +1 -1
  92. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +102 -172
  93. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.scss +6 -4
  94. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +154 -209
  95. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +56 -59
  96. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.scss +2 -2
  97. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +112 -140
  98. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +919 -1035
  99. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +119 -155
  100. package/dist/Atomic/FormElements/Text/Text.js +97 -88
  101. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +35 -44
  102. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +8 -8
  103. package/dist/Atomic/FormElements/Textarea/Textarea.js +64 -102
  104. package/dist/Atomic/FormElements/Textarea/Textarea.scss +8 -4
  105. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +133 -172
  106. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +49 -48
  107. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +63 -114
  108. package/dist/Atomic/FormElements/TimeRange/TimeRange.scss +3 -9
  109. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +122 -179
  110. package/dist/Atomic/FormElements/UserContacts/UserContacts.scss +5 -10
  111. package/dist/Atomic/FormElements/UserContacts/partial/AnyOuterClass.scss +1 -1
  112. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +65 -101
  113. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.scss +12 -4
  114. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +71 -80
  115. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +64 -79
  116. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.scss +3 -1
  117. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/AnyOuterClass.scss +1 -1
  118. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +34 -42
  119. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +83 -102
  120. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.scss +3 -1
  121. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/AnyOuterClass.scss +1 -1
  122. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +35 -42
  123. package/dist/Atomic/Layout/Header/Header.js +80 -148
  124. package/dist/Atomic/Layout/Header/Header.scss +1 -1
  125. package/dist/Atomic/Layout/MainMenu/MainMenu.js +133 -213
  126. package/dist/Atomic/Layout/MainMenu/MainMenu.scss +9 -9
  127. package/dist/Atomic/Layout/Spinner/Spinner.js +22 -39
  128. package/dist/Atomic/Layout/Spinner/Spinner.scss +16 -32
  129. package/dist/Atomic/UI/Accordion/Accordion.js +52 -102
  130. package/dist/Atomic/UI/Accordion/Accordion.scss +14 -25
  131. package/dist/Atomic/UI/Accordion/AccordionItem.js +102 -170
  132. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +167 -251
  133. package/dist/Atomic/UI/AccordionText/AccordionText.js +54 -105
  134. package/dist/Atomic/UI/AccordionText/AccordionText.scss +9 -22
  135. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +135 -207
  136. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +46 -100
  137. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.scss +2 -2
  138. package/dist/Atomic/UI/Alert/Alert.js +63 -116
  139. package/dist/Atomic/UI/Alert/Alert.scss +2 -2
  140. package/dist/Atomic/UI/Arrow/Arrow.js +110 -163
  141. package/dist/Atomic/UI/Box/Box.js +37 -37
  142. package/dist/Atomic/UI/Box/Box.scss +11 -11
  143. package/dist/Atomic/UI/Button/Button.js +41 -43
  144. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +67 -61
  145. package/dist/Atomic/UI/Chart/Chart.js +96 -170
  146. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +74 -142
  147. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +77 -91
  148. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +117 -120
  149. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +292 -314
  150. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +39 -54
  151. package/dist/Atomic/UI/Chart/partial/utils.js +33 -56
  152. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +88 -145
  153. package/dist/Atomic/UI/DateTime/DateTime.js +37 -89
  154. package/dist/Atomic/UI/DateTime/DateTime.scss +2 -2
  155. package/dist/Atomic/UI/DateTime/partial/AnyOuterClass.scss +1 -1
  156. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +31 -93
  157. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +18 -66
  158. package/dist/Atomic/UI/DoubleString/DoubleString.js +77 -134
  159. package/dist/Atomic/UI/DoubleString/DoubleString.scss +4 -6
  160. package/dist/Atomic/UI/DoubleString/partial/AnyOuterClass.scss +1 -1
  161. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +22 -65
  162. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +170 -251
  163. package/dist/Atomic/UI/ExampleChartIntegration/partial/AnyOuterClass.scss +1 -1
  164. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +84 -109
  165. package/dist/Atomic/UI/Hint/Hint.js +202 -243
  166. package/dist/Atomic/UI/Hint/Hint.scss +3 -5
  167. package/dist/Atomic/UI/Hint/partials/_utils.js +42 -54
  168. package/dist/Atomic/UI/Modal/Modal.js +172 -171
  169. package/dist/Atomic/UI/Modal/Modal.scss +69 -91
  170. package/dist/Atomic/UI/Modal/Modal.stories.js +1 -1
  171. package/dist/Atomic/UI/Modal/ModalHOC.js +38 -92
  172. package/dist/Atomic/UI/Modal/ModalMobile.scss +14 -24
  173. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +18 -68
  174. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +38 -107
  175. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +153 -130
  176. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +62 -118
  177. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.scss +25 -163
  178. package/dist/Atomic/UI/NavLine/NavLine.js +273 -306
  179. package/dist/Atomic/UI/NavLine/NavLine.scss +155 -195
  180. package/dist/Atomic/UI/NavLine/NavLine.test.js +1 -1
  181. package/dist/Atomic/UI/NavLine/Tabs.js +115 -0
  182. package/dist/Atomic/UI/PageTitle/PageTitle.js +52 -73
  183. package/dist/Atomic/UI/PageTitle/PageTitle.scss +14 -52
  184. package/dist/Atomic/UI/PieChart/PieChart.js +42 -105
  185. package/dist/Atomic/UI/PieChart/PieChart.scss +11 -86
  186. package/dist/Atomic/UI/Price/Price.js +20 -27
  187. package/dist/Atomic/UI/PriceRange/PriceRange.js +18 -40
  188. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +73 -92
  189. package/dist/Atomic/UI/ProgressLine/ProgressLine.scss +71 -85
  190. package/dist/Atomic/UI/Status/Status.js +51 -62
  191. package/dist/Atomic/UI/Status/Status.scss +29 -48
  192. package/dist/Atomic/UI/Table/Partials/TdCell.js +88 -126
  193. package/dist/Atomic/UI/Table/Partials/TdHeader.js +39 -58
  194. package/dist/Atomic/UI/Table/Partials/TdRow.js +73 -124
  195. package/dist/Atomic/UI/Table/Partials/TdTitle.js +45 -113
  196. package/dist/Atomic/UI/Table/Table.js +43 -61
  197. package/dist/Atomic/UI/Table/Table.scss +3 -0
  198. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +64 -108
  199. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +31 -44
  200. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +10 -24
  201. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +48 -59
  202. package/dist/Atomic/UI/Tag/Tag.js +113 -157
  203. package/dist/Atomic/UI/Tag/Tag.scss +48 -102
  204. package/dist/Atomic/UI/TagList/TagList.js +179 -223
  205. package/dist/Atomic/UI/TagList/TagList.scss +9 -13
  206. package/dist/Atomic/UI/UserBox/UserBox.js +56 -80
  207. package/dist/Atomic/UI/UserBox/UserBox.scss +21 -45
  208. package/dist/Atomic/UI/UserBox/UserBox.test.js +2 -2
  209. package/dist/Atomic/UI/WizardStepper/constructor.js +89 -127
  210. package/dist/Atomic/UI/WizardStepper/index.js +6 -14
  211. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +51 -53
  212. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.scss +7 -11
  213. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +5 -9
  214. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +67 -84
  215. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.scss +7 -13
  216. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +6 -14
  217. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +45 -50
  218. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.scss +18 -24
  219. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +6 -14
  220. package/dist/Atomic/UI/WizardStepper/ui/icons.js +106 -138
  221. package/dist/Atomic/UI/WizardStepper/ui/index.js +6 -14
  222. package/dist/Classes/AbortableFetch.js +326 -394
  223. package/dist/Classes/AnimatedHandler.js +44 -31
  224. package/dist/Classes/RESTAPI/index.js +173 -131
  225. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +334 -399
  226. package/dist/Classes/RESTAPI/partials/ApiBase.js +30 -30
  227. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +88 -107
  228. package/dist/Classes/RESTAPI/partials/ApiUtils.js +166 -144
  229. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +204 -180
  230. package/dist/Classes/RESTAPI/partials/Utils.js +83 -80
  231. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +8 -16
  232. package/dist/Classes/RESTAPI/partials/_utils.js +125 -139
  233. package/dist/Constants/index.constants.js +22 -102
  234. package/dist/Functions/Portal.js +23 -67
  235. package/dist/Functions/animatingFunctions/getAnimatedHandler.js +1 -1
  236. package/dist/Functions/customEventListener.js +50 -48
  237. package/dist/Functions/dateTime.js +177 -130
  238. package/dist/Functions/fieldValueFormatters.js +346 -275
  239. package/dist/Functions/hooks/useFormFieldsChangesManager.js +96 -125
  240. package/dist/Functions/locale/createTranslator.js +27 -29
  241. package/dist/Functions/operations.js +102 -129
  242. package/dist/Functions/presets/inputMaskPresets.js +99 -88
  243. package/dist/Functions/presets/inputPresets.js +35 -41
  244. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +49 -30
  245. package/dist/Functions/schemas.js +20 -78
  246. package/dist/Functions/useBodyScrollLock.js +15 -21
  247. package/dist/Functions/useClickOutside.js +16 -21
  248. package/dist/Functions/useDebounce.js +21 -62
  249. package/dist/Functions/useFieldFocus.js +79 -83
  250. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +46 -39
  251. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +137 -132
  252. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +73 -63
  253. package/dist/Functions/useFormTools/functions/General.js +129 -117
  254. package/dist/Functions/useFormTools/functions/RenderFields.js +85 -75
  255. package/dist/Functions/useFormTools/functions/usePrevious.js +10 -16
  256. package/dist/Functions/useFormTools/index.js +709 -647
  257. package/dist/Functions/useInputHighlightError.js +53 -104
  258. package/dist/Functions/useIsMobile.js +26 -0
  259. package/dist/Functions/useKeyPress/useHandleKeyPress.js +33 -40
  260. package/dist/Functions/useKeyPress/useKeyPress.js +39 -48
  261. package/dist/Functions/useLocalStorage.js +31 -38
  262. package/dist/Functions/useLocationParams.js +24 -31
  263. package/dist/Functions/useMediaQuery.js +10 -14
  264. package/dist/Functions/useMetaInfo.js +35 -45
  265. package/dist/Functions/useMouseUpOutside.js +15 -21
  266. package/dist/Functions/useOnlineStatus.js +21 -25
  267. package/dist/Functions/usePasswordChecker.js +111 -183
  268. package/dist/Functions/usePrevious.js +10 -16
  269. package/dist/Functions/useResize.js +28 -32
  270. package/dist/Functions/useScrollTo.js +16 -26
  271. package/dist/Functions/useToggle.js +16 -20
  272. package/dist/Functions/utils.js +469 -493
  273. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +28 -75
  274. package/dist/Molecular/CustomIcons/components/AlertCircle.js +28 -77
  275. package/dist/Molecular/CustomIcons/components/AppStore.js +32 -84
  276. package/dist/Molecular/CustomIcons/components/Arrow.js +38 -93
  277. package/dist/Molecular/CustomIcons/components/ArrowDown.js +20 -63
  278. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +23 -71
  279. package/dist/Molecular/CustomIcons/components/ArrowRight.js +23 -71
  280. package/dist/Molecular/CustomIcons/components/ArrowUp.js +20 -63
  281. package/dist/Molecular/CustomIcons/components/Bell.js +18 -61
  282. package/dist/Molecular/CustomIcons/components/Button.js +18 -61
  283. package/dist/Molecular/CustomIcons/components/Campaigns.js +19 -62
  284. package/dist/Molecular/CustomIcons/components/Check.js +19 -62
  285. package/dist/Molecular/CustomIcons/components/Check2.js +18 -61
  286. package/dist/Molecular/CustomIcons/components/ChevronDown.js +18 -61
  287. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +18 -61
  288. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +18 -61
  289. package/dist/Molecular/CustomIcons/components/ChevronRight.js +18 -61
  290. package/dist/Molecular/CustomIcons/components/ChevronUp.js +18 -61
  291. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +33 -81
  292. package/dist/Molecular/CustomIcons/components/Close.js +20 -64
  293. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +45 -95
  294. package/dist/Molecular/CustomIcons/components/Delete.js +19 -62
  295. package/dist/Molecular/CustomIcons/components/Edit.js +18 -61
  296. package/dist/Molecular/CustomIcons/components/Email.js +36 -87
  297. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +26 -82
  298. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +34 -83
  299. package/dist/Molecular/CustomIcons/components/Flows.js +18 -61
  300. package/dist/Molecular/CustomIcons/components/Gift.js +23 -71
  301. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +32 -84
  302. package/dist/Molecular/CustomIcons/components/GooglePlay.js +32 -84
  303. package/dist/Molecular/CustomIcons/components/HelpCircle.js +21 -67
  304. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +22 -68
  305. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +21 -67
  306. package/dist/Molecular/CustomIcons/components/Home.js +21 -67
  307. package/dist/Molecular/CustomIcons/components/Home2.js +24 -70
  308. package/dist/Molecular/CustomIcons/components/Key.js +26 -69
  309. package/dist/Molecular/CustomIcons/components/Landers.js +22 -68
  310. package/dist/Molecular/CustomIcons/components/Lock.js +18 -61
  311. package/dist/Molecular/CustomIcons/components/Mail.js +26 -75
  312. package/dist/Molecular/CustomIcons/components/Mastercard.js +68 -128
  313. package/dist/Molecular/CustomIcons/components/Minus.js +31 -79
  314. package/dist/Molecular/CustomIcons/components/Offers.js +19 -62
  315. package/dist/Molecular/CustomIcons/components/Pause.js +31 -79
  316. package/dist/Molecular/CustomIcons/components/PayPal.js +45 -96
  317. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +32 -81
  318. package/dist/Molecular/CustomIcons/components/Phone.js +33 -81
  319. package/dist/Molecular/CustomIcons/components/Play.js +31 -79
  320. package/dist/Molecular/CustomIcons/components/Plus.js +31 -79
  321. package/dist/Molecular/CustomIcons/components/Profile.js +23 -69
  322. package/dist/Molecular/CustomIcons/components/QRCode.js +33 -85
  323. package/dist/Molecular/CustomIcons/components/Rectangle.js +18 -61
  324. package/dist/Molecular/CustomIcons/components/Revert.js +21 -67
  325. package/dist/Molecular/CustomIcons/components/Star.js +17 -60
  326. package/dist/Molecular/CustomIcons/components/Star2.js +19 -62
  327. package/dist/Molecular/CustomIcons/components/TrafficSources.js +21 -68
  328. package/dist/Molecular/CustomIcons/components/Trash.js +18 -61
  329. package/dist/Molecular/CustomIcons/components/TrashRed.js +18 -61
  330. package/dist/Molecular/CustomIcons/components/Triggers.js +18 -61
  331. package/dist/Molecular/CustomIcons/components/User.js +23 -71
  332. package/dist/Molecular/CustomIcons/components/Visa.js +34 -88
  333. package/dist/Molecular/CustomIcons/components/X.js +18 -61
  334. package/dist/Molecular/CustomIcons/index.js +674 -76
  335. package/dist/Molecular/FormElement/FormElement.js +41 -44
  336. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +161 -179
  337. package/dist/Molecular/FormWithDependOn/partials/_utils.js +56 -49
  338. package/dist/Molecular/InputAddress/InputAddress.js +421 -496
  339. package/dist/Molecular/InputAddress/InputAddress.scss +16 -14
  340. package/dist/Molecular/InputPassword/InputPassword.js +47 -99
  341. package/dist/index.js +8 -11
  342. package/dist/scss/_fonts.scss +60 -48
  343. package/dist/scss/_mixins.scss +2 -2
  344. package/dist/scss/_vars.scss +5 -4
  345. package/dist/scss/main.scss +4 -5
  346. package/package.json +21 -17
@@ -1,779 +1,778 @@
1
1
  "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
4
  Object.defineProperty(exports, "__esModule", {
3
- value: true
5
+ value: true
4
6
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return RangeSlider2;
9
- }
10
- });
11
- const _jsxruntime = require("react/jsx-runtime");
12
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
- const _classnames = /*#__PURE__*/ _interop_require_default(require("classnames"));
14
- const _reactfeather = require("react-feather");
15
- const _useIsMobile = /*#__PURE__*/ _interop_require_default(require("../../../Functions/useIsMobile/useIsMobile"));
16
- const _utils = require("../../../Functions/utils");
7
+ exports.default = RangeSlider2;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _reactFeather = require("react-feather");
12
+ var _useIsMobile = _interopRequireDefault(require("../../../Functions/useIsMobile"));
13
+ var _utils = require("../../../Functions/utils");
17
14
  require("./RangeSlider2.scss");
18
- function _interop_require_default(obj) {
19
- return obj && obj.__esModule ? obj : {
20
- default: obj
21
- };
22
- }
23
- function _getRequireWildcardCache(nodeInterop) {
24
- if (typeof WeakMap !== "function") return null;
25
- var cacheBabelInterop = new WeakMap();
26
- var cacheNodeInterop = new WeakMap();
27
- return (_getRequireWildcardCache = function(nodeInterop) {
28
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
29
- })(nodeInterop);
30
- }
31
- function _interop_require_wildcard(obj, nodeInterop) {
32
- if (!nodeInterop && obj && obj.__esModule) {
33
- return obj;
34
- }
35
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
36
- return {
37
- default: obj
38
- };
39
- }
40
- var cache = _getRequireWildcardCache(nodeInterop);
41
- if (cache && cache.has(obj)) {
42
- return cache.get(obj);
43
- }
44
- var newObj = {
45
- __proto__: null
46
- };
47
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
48
- for(var key in obj){
49
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
50
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
51
- if (desc && (desc.get || desc.set)) {
52
- Object.defineProperty(newObj, key, desc);
53
- } else {
54
- newObj[key] = obj[key];
55
- }
56
- }
57
- }
58
- newObj.default = obj;
59
- if (cache) {
60
- cache.set(obj, newObj);
61
- }
62
- return newObj;
63
- }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
64
17
  const COMPONENT_CLASS = "range-slider2";
65
- const { LEFT_COLLISSION, RIGHT_COLLISION, BOTH_COLLISION, NO_COLLISION } = Object.freeze({
66
- NO_COLLISION: 0,
67
- LEFT_COLLISSION: -1,
68
- RIGHT_COLLISION: 1,
69
- BOTH_COLLISION: 2
18
+ const {
19
+ LEFT_COLLISSION,
20
+ RIGHT_COLLISION,
21
+ BOTH_COLLISION,
22
+ NO_COLLISION
23
+ } = Object.freeze({
24
+ NO_COLLISION: 0,
25
+ LEFT_COLLISSION: -1,
26
+ RIGHT_COLLISION: 1,
27
+ BOTH_COLLISION: 2
70
28
  });
71
- const { ASSIGN_TO_LEFT, ASSIGN_TO_RIGHT } = Object.freeze({
72
- ASSIGN_TO_LEFT: -1,
73
- ASSIGN_TO_RIGHT: 1
29
+ const {
30
+ ASSIGN_TO_LEFT,
31
+ ASSIGN_TO_RIGHT
32
+ } = Object.freeze({
33
+ ASSIGN_TO_LEFT: -1,
34
+ ASSIGN_TO_RIGHT: 1
74
35
  });
75
36
  const POINT_VALUE_TYPES = Object.freeze({
76
- FROM: "from",
77
- TO: "to",
78
- BOTH: "both"
37
+ FROM: "from",
38
+ TO: "to",
39
+ BOTH: "both"
79
40
  });
80
- function RangeSlider2({ min = 300, max = 850, minRange = 50, dividersRange = 50, pointValueType = POINT_VALUE_TYPES.FROM, precision = 0, step = 5, className, value = [], onChange = ()=>{}, transformDataOnConcat = (d1, d2)=>{
81
- return [];
82
- } }) {
83
- const { isMobile } = (0, _useIsMobile.default)();
84
- const [protectedValue, setProtectedValue] = (0, _react.useState)([]);
85
- const trackRef = (0, _react.useRef)(null);
86
- const addTriggerRef = (0, _react.useRef)(null);
87
- const [trackWidth, setTrackWidth] = (0, _react.useState)(0);
88
- const [trackPosition, setTrackPosition] = (0, _react.useState)(0);
89
- const [mouseTrackPosition, setMouseTrackPosition] = (0, _react.useState)(0);
90
- const prepareValue = (value)=>{
91
- return parseInt(parseFloat(value) * 10 ** precision, 10) / 10 ** precision;
92
- };
93
- const [ranges, setRanges] = (0, _react.useState)(value);
94
- const addRange = ({ from, to, label, value, data = [], id = null })=>setRanges((ranges)=>{
95
- if (!id) {
96
- id = ((ranges === null || ranges === void 0 ? void 0 : ranges.length) + 1) * -1;
97
- }
98
- return [
99
- ...ranges,
100
- {
101
- id,
102
- from,
103
- to,
104
- label,
105
- data,
106
- value: Number.isInteger(value) ? value : 0
107
- }
108
- ].sort((a, b)=>a.from - b.from);
109
- });
110
- const updateRange = ({ from, to, label, value, data, id })=>setRanges((ranges)=>{
111
- const newRanges = [
112
- ...ranges
113
- ];
114
- const range = newRanges === null || newRanges === void 0 ? void 0 : newRanges.find(({ id: rangeId })=>rangeId === id);
115
- if (range) {
116
- range.from = from !== null && from !== void 0 ? from : range === null || range === void 0 ? void 0 : range.from;
117
- range.to = to !== null && to !== void 0 ? to : range === null || range === void 0 ? void 0 : range.to;
118
- range.label = label !== null && label !== void 0 ? label : range === null || range === void 0 ? void 0 : range.label;
119
- range.value = value !== undefined ? Number.isInteger(value) ? value : 0 : range === null || range === void 0 ? void 0 : range.value;
120
- range.data = data !== undefined ? data : range === null || range === void 0 ? void 0 : range.data;
121
- }
122
- return newRanges;
123
- });
124
- const updateRangesByTrigger = (trigger)=>{
125
- var _triggers_find;
126
- const newValue = triggers === null || triggers === void 0 ? void 0 : (_triggers_find = triggers.find(({ id })=>id === (trigger === null || trigger === void 0 ? void 0 : trigger.id))) === null || _triggers_find === void 0 ? void 0 : _triggers_find.value;
127
- const oldValue = trigger === null || trigger === void 0 ? void 0 : trigger.value;
128
- const leftRange = ranges === null || ranges === void 0 ? void 0 : ranges.find((range)=>(range === null || range === void 0 ? void 0 : range.to) === oldValue);
129
- const rightRange = ranges === null || ranges === void 0 ? void 0 : ranges.find((range)=>(range === null || range === void 0 ? void 0 : range.from) === oldValue + 1);
130
- if (leftRange && rightRange) {
131
- updateRange({
132
- from: leftRange === null || leftRange === void 0 ? void 0 : leftRange.from,
133
- to: newValue,
134
- id: leftRange === null || leftRange === void 0 ? void 0 : leftRange.id
135
- });
136
- updateRange({
137
- from: newValue + 1,
138
- to: rightRange === null || rightRange === void 0 ? void 0 : rightRange.to,
139
- id: rightRange === null || rightRange === void 0 ? void 0 : rightRange.id
140
- });
141
- }
142
- };
143
- const splitRange = (score)=>{
144
- const range = ranges === null || ranges === void 0 ? void 0 : ranges.find(({ from, to })=>from + minRange <= score + 1 && score <= to - minRange);
145
- if (!range) return;
146
- const { value = 0, label, data } = addTriggerFixedRange || {};
147
- addRange({
148
- value: assignValueToRange === ASSIGN_TO_RIGHT ? value : 0,
149
- data: assignValueToRange === ASSIGN_TO_RIGHT ? data : null,
150
- label,
151
- from: score + 1,
152
- to: range === null || range === void 0 ? void 0 : range.to,
153
- id: null
154
- });
155
- updateRange({
41
+ function RangeSlider2(_ref) {
42
+ let {
43
+ min = 300,
44
+ max = 850,
45
+ minRange = 50,
46
+ dividersRange = 50,
47
+ pointValueType = POINT_VALUE_TYPES.FROM,
48
+ precision = 0,
49
+ step = 5,
50
+ className,
51
+ value = [],
52
+ onChange = () => {},
53
+ transformDataOnConcat = (d1, d2) => {
54
+ return [];
55
+ }
56
+ } = _ref;
57
+ const {
58
+ isMobile
59
+ } = (0, _useIsMobile.default)();
60
+ const [protectedValue, setProtectedValue] = (0, _react.useState)([]);
61
+ const trackRef = (0, _react.useRef)(null);
62
+ const addTriggerRef = (0, _react.useRef)(null);
63
+ const [trackWidth, setTrackWidth] = (0, _react.useState)(0);
64
+ const [trackPosition, setTrackPosition] = (0, _react.useState)(0);
65
+ const [mouseTrackPosition, setMouseTrackPosition] = (0, _react.useState)(0);
66
+ const prepareValue = value => {
67
+ return parseInt(parseFloat(value) * 10 ** precision, 10) / 10 ** precision;
68
+ };
69
+ const [ranges, setRanges] = (0, _react.useState)(value);
70
+ const addRange = _ref2 => {
71
+ let {
72
+ from,
73
+ to,
74
+ label,
75
+ value,
76
+ data = [],
77
+ id = null
78
+ } = _ref2;
79
+ return setRanges(ranges => {
80
+ if (!id) {
81
+ id = (ranges?.length + 1) * -1;
82
+ }
83
+ return [...ranges, {
84
+ id,
85
+ from,
86
+ to,
87
+ label,
88
+ data,
89
+ value: Number.isInteger(value) ? value : 0
90
+ }].sort((a, b) => a.from - b.from);
91
+ });
92
+ };
93
+ const updateRange = _ref3 => {
94
+ let {
95
+ from,
96
+ to,
97
+ label,
98
+ value,
99
+ data,
100
+ id
101
+ } = _ref3;
102
+ return setRanges(ranges => {
103
+ const newRanges = [...ranges];
104
+ const range = newRanges?.find(_ref4 => {
105
+ let {
106
+ id: rangeId
107
+ } = _ref4;
108
+ return rangeId === id;
109
+ });
110
+ if (range) {
111
+ range.from = from ?? range?.from;
112
+ range.to = to ?? range?.to;
113
+ range.label = label ?? range?.label;
114
+ range.value = value !== undefined ? Number.isInteger(value) ? value : 0 : range?.value;
115
+ range.data = data !== undefined ? data : range?.data;
116
+ }
117
+ return newRanges;
118
+ });
119
+ };
120
+ const updateRangesByTrigger = trigger => {
121
+ const newValue = triggers?.find(_ref5 => {
122
+ let {
123
+ id
124
+ } = _ref5;
125
+ return id === trigger?.id;
126
+ })?.value;
127
+ const oldValue = trigger?.value;
128
+ const leftRange = ranges?.find(range => range?.to === oldValue);
129
+ const rightRange = ranges?.find(range => range?.from === oldValue + 1);
130
+ if (leftRange && rightRange) {
131
+ updateRange({
132
+ from: leftRange?.from,
133
+ to: newValue,
134
+ id: leftRange?.id
135
+ });
136
+ updateRange({
137
+ from: newValue + 1,
138
+ to: rightRange?.to,
139
+ id: rightRange?.id
140
+ });
141
+ }
142
+ };
143
+ const splitRange = score => {
144
+ const range = ranges?.find(_ref6 => {
145
+ let {
146
+ from,
147
+ to
148
+ } = _ref6;
149
+ return from + minRange <= score + 1 && score <= to - minRange;
150
+ });
151
+ if (!range) return;
152
+ const {
153
+ value = 0,
154
+ label,
155
+ data
156
+ } = addTriggerFixedRange || {};
157
+ addRange({
158
+ value: assignValueToRange === ASSIGN_TO_RIGHT ? value : 0,
159
+ data: assignValueToRange === ASSIGN_TO_RIGHT ? data : null,
160
+ label,
161
+ from: score + 1,
162
+ to: range?.to,
163
+ id: null
164
+ });
165
+ updateRange({
166
+ ...range,
167
+ value: assignValueToRange === ASSIGN_TO_LEFT ? value : 0,
168
+ data: assignValueToRange === ASSIGN_TO_LEFT ? data : null,
169
+ label,
170
+ to: score
171
+ });
172
+ if (isAddTriggerFixed) unfixAddTrigger();
173
+ };
174
+ const concatRanges = score => {
175
+ const [left, right] = ranges?.filter(_ref7 => {
176
+ let {
177
+ from,
178
+ to
179
+ } = _ref7;
180
+ return from === score + 1 || score === to;
181
+ });
182
+ const {
183
+ data,
184
+ value
185
+ } = transformDataOnConcat(left, right);
186
+ updateRange({
187
+ from: left?.from,
188
+ to: right?.to,
189
+ id: left?.id,
190
+ data,
191
+ value
192
+ });
193
+ removeRange(right?.id);
194
+ };
195
+ const removeRange = id => setRanges(ranges => ranges?.filter(range => range?.id !== id));
196
+ const clearRanges = () => setRanges([]);
197
+ const [triggers, setTriggers] = (0, _react.useState)([]);
198
+ const addTrigger = function (value) {
199
+ let {
200
+ isFixed = false,
201
+ isHidden = false
202
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
203
+ let {
204
+ withRange = true
205
+ } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
206
+ let index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : triggers.length;
207
+ return setTriggers(state => {
208
+ if (withRange) splitRange(value);
209
+ const newState = [...state];
210
+ const id = state?.length ? Math.max(...state?.map(_ref8 => {
211
+ let {
212
+ id
213
+ } = _ref8;
214
+ return id;
215
+ })) + 1 : 0;
216
+ newState.splice(index, 0, {
217
+ id,
218
+ value,
219
+ isFixed,
220
+ isHidden
221
+ });
222
+ return newState.sort((a, b) => a.value < b.value ? -1 : 1);
223
+ });
224
+ };
225
+ const updateTrigger = (index, value) => setTriggers(state => {
226
+ const newState = [...state];
227
+ newState[index] = {
228
+ ...newState[index],
229
+ value
230
+ };
231
+ return newState;
232
+ });
233
+ const removeTrigger = index => setTriggers(state => {
234
+ concatRanges(state[index]?.value);
235
+ const newState = [...state];
236
+ newState.splice(index, 1);
237
+ return newState;
238
+ });
239
+ const clearTriggers = () => setTriggers([]);
240
+ const getTriggerByScore = score => {
241
+ return triggers?.find(_ref9 => {
242
+ let {
243
+ value: triggerScore
244
+ } = _ref9;
245
+ return triggerScore === score;
246
+ });
247
+ };
248
+ const [movingController, setMovingController] = (0, _react.useState)(null);
249
+ const [movingTrigger, setMovingTrigger] = (0, _react.useState)(null);
250
+ const [movingTriggerIndex, setMovingTriggerIndex] = (0, _react.useState)(null);
251
+ const [movingTriggerData, setMovingTriggerData] = (0, _react.useState)(null);
252
+ const [isTriggerMoved, setIsTriggerMoved] = (0, _react.useState)(false);
253
+ const [isMouseOverTrigger, setIsMouseOverTrigger] = (0, _react.useState)(false);
254
+ const setMouseOverTrigger = () => setIsMouseOverTrigger(true);
255
+ const setMouseLeaveTrigger = () => setIsMouseOverTrigger(false);
256
+ const [isMouseOverTrack, setIsMouseOverTrack] = (0, _react.useState)(false);
257
+ const setMouseOverTrack = () => setIsMouseOverTrack(true);
258
+ const setMouseLeaveTrack = () => setIsMouseOverTrack(false);
259
+ const isTriggerMoving = triggerIndex => triggerIndex === movingTriggerIndex;
260
+ const [addTriggerFixedScore, setAddTriggerFixedScore] = (0, _react.useState)(null);
261
+ const [addTriggerFixedRange, setAddTriggerFixedRange] = (0, _react.useState)(null);
262
+ const [isAddTriggerFixed, setIsAddTriggerFixed] = (0, _react.useState)(false);
263
+ const [assignValueToRange, setAssignValueToRange] = (0, _react.useState)(ASSIGN_TO_LEFT);
264
+ const fixAddTrigger = (score, inRange) => {
265
+ setAddTriggerFixedScore(score);
266
+ setAddTriggerFixedRange(inRange);
267
+ setIsAddTriggerFixed(true);
268
+ };
269
+ const unfixAddTrigger = e => {
270
+ e?.stopPropagation();
271
+ e?.preventDefault();
272
+ setAddTriggerFixedScore(null);
273
+ setAddTriggerFixedRange(null);
274
+ setIsAddTriggerFixed(false);
275
+ setAssignValueToRange(ASSIGN_TO_LEFT);
276
+ };
277
+ const [pointsPerPx, setPointsPerPx] = (0, _react.useState)(0);
278
+ const countPointsPerPx = width => {
279
+ return (max - min) / width;
280
+ };
281
+
282
+ // GETTERS //
283
+ const getTrackXByScore = score => {
284
+ return (score - min) / pointsPerPx;
285
+ };
286
+ const getScoreByX = x => {
287
+ let points = (x - trackPosition) * pointsPerPx + min;
288
+ points -= points % step;
289
+ if (points < min) points = min;
290
+ if (points > max) points = max;
291
+ return points - 1;
292
+ };
293
+ const getTriggerCollisionDirection = (index, points) => {
294
+ if (index <= 0) return points;
295
+ const [triggerBefore, triggerAfter] = [triggers?.[index - 1]?.value + minRange - 1, triggers?.[index + 1]?.value - minRange - 1];
296
+ if (triggerBefore === triggerAfter) return BOTH_COLLISION;else if (points === triggerBefore) return LEFT_COLLISSION;else if (points === triggerAfter) return RIGHT_COLLISION;else return NO_COLLISION;
297
+ };
298
+ const getTriggerScore = (index, points) => {
299
+ if (index <= 0) return points;
300
+ const [triggerBefore, triggerAfter] = [triggers?.[index - 1]?.value + minRange - 1, triggers?.[index + 1]?.value - minRange - 1];
301
+ if (points < triggerBefore) return triggerBefore;else if (points > triggerAfter) return triggerAfter;else return points;
302
+ };
303
+ const getAddTriggerCollisionDirection = x => {
304
+ const triggerScore = getAddTriggerScore(x);
305
+ const inRange = getInRange(triggerScore);
306
+ if (!inRange) return 0;
307
+ const {
308
+ from,
309
+ to
310
+ } = inRange;
311
+ const triggerBefore = from + minRange - 1;
312
+ const triggerAfter = to - minRange - 1;
313
+ if (triggerBefore === triggerAfter) return BOTH_COLLISION;else if (triggerScore <= triggerBefore) return LEFT_COLLISSION;else if (triggerScore >= triggerAfter) return RIGHT_COLLISION;else return NO_COLLISION;
314
+ };
315
+ const getAddTriggerPosition = () => {
316
+ return isAddTriggerFixed ? getTrackXByScore(addTriggerFixedScore) : mouseTrackPosition;
317
+ };
318
+ const getAddTriggerScore = x => {
319
+ const score = getScoreByX(x);
320
+ let result = getRangesList()?.reduce((result, _ref10) => {
321
+ let {
322
+ from,
323
+ to
324
+ } = _ref10;
325
+ if (to - from + 1 <= 2 * minRange && from <= score && score <= to) {
326
+ return null;
327
+ }
328
+ if (from <= score && score <= from + minRange) {
329
+ return from + minRange - 1;
330
+ } else if (to - minRange <= score && score <= to) {
331
+ return to - minRange - 1;
332
+ } else {
333
+ return result;
334
+ }
335
+ }, score);
336
+ if (!result) {
337
+ const closestRange = getRangesList()?.filter(_ref11 => {
338
+ let {
339
+ from,
340
+ to
341
+ } = _ref11;
342
+ return to - from + 1 >= 2 * minRange;
343
+ })?.reduce((result, range) => {
344
+ const distance = Math.abs((range.to + range.from) / 2 - score);
345
+ if (!result || distance < result?.distance) {
346
+ return {
156
347
  ...range,
157
- value: assignValueToRange === ASSIGN_TO_LEFT ? value : 0,
158
- data: assignValueToRange === ASSIGN_TO_LEFT ? data : null,
159
- label,
160
- to: score
161
- });
162
- if (isAddTriggerFixed) unfixAddTrigger();
163
- };
164
- const concatRanges = (score)=>{
165
- const [left, right] = ranges === null || ranges === void 0 ? void 0 : ranges.filter(({ from, to })=>from === score + 1 || score === to);
166
- const { data, value } = transformDataOnConcat(left, right);
167
- updateRange({
168
- from: left === null || left === void 0 ? void 0 : left.from,
169
- to: right === null || right === void 0 ? void 0 : right.to,
170
- id: left === null || left === void 0 ? void 0 : left.id,
171
- data,
172
- value
173
- });
174
- removeRange(right === null || right === void 0 ? void 0 : right.id);
175
- };
176
- const removeRange = (id)=>setRanges((ranges)=>ranges === null || ranges === void 0 ? void 0 : ranges.filter((range)=>(range === null || range === void 0 ? void 0 : range.id) !== id));
177
- const clearRanges = ()=>setRanges([]);
178
- const [triggers, setTriggers] = (0, _react.useState)([]);
179
- const addTrigger = (value, { isFixed = false, isHidden = false } = {}, { withRange = true } = {}, index = triggers.length)=>setTriggers((state)=>{
180
- if (withRange) splitRange(value);
181
- const newState = [
182
- ...state
183
- ];
184
- const id = (state === null || state === void 0 ? void 0 : state.length) ? Math.max(...state === null || state === void 0 ? void 0 : state.map(({ id })=>id)) + 1 : 0;
185
- newState.splice(index, 0, {
186
- id,
187
- value,
188
- isFixed,
189
- isHidden
190
- });
191
- return newState.sort((a, b)=>a.value < b.value ? -1 : 1);
192
- });
193
- const updateTrigger = (index, value)=>setTriggers((state)=>{
194
- const newState = [
195
- ...state
196
- ];
197
- newState[index] = {
198
- ...newState[index],
199
- value
200
- };
201
- return newState;
202
- });
203
- const removeTrigger = (index)=>setTriggers((state)=>{
204
- var _state_index;
205
- concatRanges((_state_index = state[index]) === null || _state_index === void 0 ? void 0 : _state_index.value);
206
- const newState = [
207
- ...state
208
- ];
209
- newState.splice(index, 1);
210
- return newState;
211
- });
212
- const clearTriggers = ()=>setTriggers([]);
213
- const getTriggerByScore = (score)=>{
214
- return triggers === null || triggers === void 0 ? void 0 : triggers.find(({ value: triggerScore })=>triggerScore === score);
215
- };
216
- const [movingController, setMovingController] = (0, _react.useState)(null);
217
- const [movingTrigger, setMovingTrigger] = (0, _react.useState)(null);
218
- const [movingTriggerIndex, setMovingTriggerIndex] = (0, _react.useState)(null);
219
- const [movingTriggerData, setMovingTriggerData] = (0, _react.useState)(null);
220
- const [isTriggerMoved, setIsTriggerMoved] = (0, _react.useState)(false);
221
- const [isMouseOverTrigger, setIsMouseOverTrigger] = (0, _react.useState)(false);
222
- const setMouseOverTrigger = ()=>setIsMouseOverTrigger(true);
223
- const setMouseLeaveTrigger = ()=>setIsMouseOverTrigger(false);
224
- const [isMouseOverTrack, setIsMouseOverTrack] = (0, _react.useState)(false);
225
- const setMouseOverTrack = ()=>setIsMouseOverTrack(true);
226
- const setMouseLeaveTrack = ()=>setIsMouseOverTrack(false);
227
- const isTriggerMoving = (triggerIndex)=>triggerIndex === movingTriggerIndex;
228
- const [addTriggerFixedScore, setAddTriggerFixedScore] = (0, _react.useState)(null);
229
- const [addTriggerFixedRange, setAddTriggerFixedRange] = (0, _react.useState)(null);
230
- const [isAddTriggerFixed, setIsAddTriggerFixed] = (0, _react.useState)(false);
231
- const [assignValueToRange, setAssignValueToRange] = (0, _react.useState)(ASSIGN_TO_LEFT);
232
- const fixAddTrigger = (score, inRange)=>{
233
- setAddTriggerFixedScore(score);
234
- setAddTriggerFixedRange(inRange);
235
- setIsAddTriggerFixed(true);
236
- };
237
- const unfixAddTrigger = (e)=>{
238
- e === null || e === void 0 ? void 0 : e.stopPropagation();
239
- e === null || e === void 0 ? void 0 : e.preventDefault();
240
- setAddTriggerFixedScore(null);
241
- setAddTriggerFixedRange(null);
242
- setIsAddTriggerFixed(false);
243
- setAssignValueToRange(ASSIGN_TO_LEFT);
244
- };
245
- const [pointsPerPx, setPointsPerPx] = (0, _react.useState)(0);
246
- const countPointsPerPx = (width)=>{
247
- return (max - min) / width;
248
- };
249
- // GETTERS //
250
- const getTrackXByScore = (score)=>{
251
- return (score - min) / pointsPerPx;
252
- };
253
- const getScoreByX = (x)=>{
254
- let points = (x - trackPosition) * pointsPerPx + min;
255
- points -= points % step;
256
- if (points < min) points = min;
257
- if (points > max) points = max;
258
- return points - 1;
259
- };
260
- const getTriggerCollisionDirection = (index, points)=>{
261
- var _triggers_, _triggers_1;
262
- if (index <= 0) return points;
263
- const [triggerBefore, triggerAfter] = [
264
- (triggers === null || triggers === void 0 ? void 0 : (_triggers_ = triggers[index - 1]) === null || _triggers_ === void 0 ? void 0 : _triggers_.value) + minRange - 1,
265
- (triggers === null || triggers === void 0 ? void 0 : (_triggers_1 = triggers[index + 1]) === null || _triggers_1 === void 0 ? void 0 : _triggers_1.value) - minRange - 1
266
- ];
267
- if (triggerBefore === triggerAfter) return BOTH_COLLISION;
268
- else if (points === triggerBefore) return LEFT_COLLISSION;
269
- else if (points === triggerAfter) return RIGHT_COLLISION;
270
- else return NO_COLLISION;
271
- };
272
- const getTriggerScore = (index, points)=>{
273
- var _triggers_, _triggers_1;
274
- if (index <= 0) return points;
275
- const [triggerBefore, triggerAfter] = [
276
- (triggers === null || triggers === void 0 ? void 0 : (_triggers_ = triggers[index - 1]) === null || _triggers_ === void 0 ? void 0 : _triggers_.value) + minRange - 1,
277
- (triggers === null || triggers === void 0 ? void 0 : (_triggers_1 = triggers[index + 1]) === null || _triggers_1 === void 0 ? void 0 : _triggers_1.value) - minRange - 1
278
- ];
279
- if (points < triggerBefore) return triggerBefore;
280
- else if (points > triggerAfter) return triggerAfter;
281
- else return points;
282
- };
283
- const getAddTriggerCollisionDirection = (x)=>{
284
- const triggerScore = getAddTriggerScore(x);
285
- const inRange = getInRange(triggerScore);
286
- if (!inRange) return 0;
287
- const { from, to } = inRange;
288
- const triggerBefore = from + minRange - 1;
289
- const triggerAfter = to - minRange - 1;
290
- if (triggerBefore === triggerAfter) return BOTH_COLLISION;
291
- else if (triggerScore <= triggerBefore) return LEFT_COLLISSION;
292
- else if (triggerScore >= triggerAfter) return RIGHT_COLLISION;
293
- else return NO_COLLISION;
294
- };
295
- const getAddTriggerPosition = ()=>{
296
- return isAddTriggerFixed ? getTrackXByScore(addTriggerFixedScore) : mouseTrackPosition;
297
- };
298
- const getAddTriggerScore = (x)=>{
299
- var _getRangesList;
300
- const score = getScoreByX(x);
301
- let result = (_getRangesList = getRangesList()) === null || _getRangesList === void 0 ? void 0 : _getRangesList.reduce((result, { from, to })=>{
302
- if (to - from + 1 <= 2 * minRange && from <= score && score <= to) {
303
- return null;
304
- }
305
- if (from <= score && score <= from + minRange) {
306
- return from + minRange - 1;
307
- } else if (to - minRange <= score && score <= to) {
308
- return to - minRange - 1;
309
- } else {
310
- return result;
311
- }
312
- }, score);
313
- if (!result) {
314
- var _getRangesList_filter, _getRangesList1;
315
- const closestRange = (_getRangesList1 = getRangesList()) === null || _getRangesList1 === void 0 ? void 0 : (_getRangesList_filter = _getRangesList1.filter(({ from, to })=>to - from + 1 >= 2 * minRange)) === null || _getRangesList_filter === void 0 ? void 0 : _getRangesList_filter.reduce((result, range)=>{
316
- const distance = Math.abs((range.to + range.from) / 2 - score);
317
- if (!result || distance < (result === null || result === void 0 ? void 0 : result.distance)) {
318
- return {
319
- ...range,
320
- distance
321
- };
322
- }
323
- return result;
324
- }, null);
325
- if (closestRange) {
326
- if ((closestRange === null || closestRange === void 0 ? void 0 : closestRange.to) < score) result = (closestRange === null || closestRange === void 0 ? void 0 : closestRange.to) - minRange - 1;
327
- if (score < (closestRange === null || closestRange === void 0 ? void 0 : closestRange.from)) result = (closestRange === null || closestRange === void 0 ? void 0 : closestRange.from) + minRange - 1;
328
- }
348
+ distance
349
+ };
329
350
  }
330
351
  return result;
331
- };
332
- const getRangesList = ()=>{
333
- return triggers.map(({ value })=>value).sort().reduce((result, score, i, scores)=>{
334
- if (i !== 0) {
335
- result.push({
336
- from: scores[i - 1],
337
- to: score
338
- });
339
- }
340
- return result;
341
- }, []);
342
- };
343
- const getInRange = (score)=>{
344
- return ranges === null || ranges === void 0 ? void 0 : ranges.find(({ from, to })=>from <= score && score <= to);
345
- };
346
- const getPointValue = (score)=>{
347
- switch(pointValueType){
348
- case POINT_VALUE_TYPES.FROM:
349
- return `${score + 1}`;
350
- case POINT_VALUE_TYPES.TO:
351
- return `${score}`;
352
- case POINT_VALUE_TYPES.BOTH:
353
- default:
354
- return `${score} | ${score + 1}`;
355
- }
356
- };
357
- // EVENTS //
358
- const onRangeChange = (index, value, validate = true)=>{
359
- if (validate) value = prepareValue(value);
360
- if (isNaN(value)) value = 0;
361
- updateTrigger(index, value);
362
- };
363
- const onTriggerMouseDown = (e, index)=>{
364
- setMovingTrigger(e.target);
365
- setMovingTriggerIndex(index);
366
- setMovingTriggerData({
367
- ...triggers[index]
368
- });
369
- };
370
- const onTriggerMove = (e)=>{
371
- var _e_touches;
372
- if (e === null || e === void 0 ? void 0 : e.cancelable) e === null || e === void 0 ? void 0 : e.preventDefault();
373
- e === null || e === void 0 ? void 0 : e.stopPropagation();
374
- if (!movingTriggerIndex || !movingTrigger) {
375
- return false;
376
- }
377
- if (!isTriggerMoved) setIsTriggerMoved(true);
378
- var _e_touches_;
379
- const { clientX: x } = (_e_touches_ = e === null || e === void 0 ? void 0 : (_e_touches = e.touches) === null || _e_touches === void 0 ? void 0 : _e_touches[0]) !== null && _e_touches_ !== void 0 ? _e_touches_ : e;
380
- const { width: triggerWidth } = (movingTrigger === null || movingTrigger === void 0 ? void 0 : movingTrigger.getBoundingClientRect()) || {};
381
- if (x < trackPosition || x > trackPosition + trackWidth + triggerWidth) return false;
382
- const triggerPoints = getTriggerScore(movingTriggerIndex, getScoreByX(x));
383
- onRangeChange(movingTriggerIndex, triggerPoints);
384
- };
385
- const resetMovingTrigger = ()=>{
386
- setTimeout(()=>{
387
- setMovingTrigger(null);
388
- setMovingTriggerIndex(null);
389
- }, 1);
390
- };
391
- // USE EFFECT'S //
392
- // MouseUp Event Controller
393
- (0, _react.useEffect)(()=>{
394
- if (isMobile) {
395
- document.addEventListener("touchend", resetMovingTrigger);
396
- } else {
397
- document.addEventListener("mouseup", resetMovingTrigger);
398
- }
399
- return ()=>{
400
- if (isMobile) {
401
- document.removeEventListener("touchend", resetMovingTrigger);
402
- } else {
403
- document.removeEventListener("mouseup", resetMovingTrigger);
404
- }
405
- };
406
- }, []);
407
- // MouseMove Event Controller
408
- (0, _react.useEffect)(()=>{
409
- var _body_classList;
410
- if (!movingTrigger && isTriggerMoved) {
411
- movingController === null || movingController === void 0 ? void 0 : movingController.abort();
412
- setIsTriggerMoved(false);
413
- setMovingController(null);
414
- } else if (movingTrigger && !isTriggerMoved) {
415
- setMovingController(new AbortController());
416
- }
417
- const body = document.getElementsByTagName("body")[0];
418
- (_body_classList = body.classList) === null || _body_classList === void 0 ? void 0 : _body_classList[movingTrigger ? "add" : "remove"]("moving-cursor");
419
- }, [
420
- movingTrigger
421
- ]);
422
- (0, _react.useEffect)(()=>{
423
- if (movingController) {
424
- if (isMobile) {
425
- document.addEventListener("touchmove", onTriggerMove, {
426
- signal: movingController === null || movingController === void 0 ? void 0 : movingController.signal
427
- });
428
- } else {
429
- document.addEventListener("mousemove", onTriggerMove, {
430
- signal: movingController === null || movingController === void 0 ? void 0 : movingController.signal
431
- });
432
- }
433
- }
434
- return ()=>{
435
- if (isMobile) {
436
- document.removeEventListener("touchmove", onTriggerMove, {
437
- signal: movingController === null || movingController === void 0 ? void 0 : movingController.signal,
438
- passive: false
439
- });
440
- } else {
441
- document.removeEventListener("mousemove", onTriggerMove, {
442
- signal: movingController === null || movingController === void 0 ? void 0 : movingController.signal
443
- });
444
- }
445
- };
446
- }, [
447
- movingController
448
- ]);
449
- (0, _react.useLayoutEffect)(()=>{
450
- var _trackRef_current;
451
- const { width, x } = (trackRef === null || trackRef === void 0 ? void 0 : (_trackRef_current = trackRef.current) === null || _trackRef_current === void 0 ? void 0 : _trackRef_current.getBoundingClientRect()) || {};
452
- setPointsPerPx(countPointsPerPx(width));
453
- setTrackWidth(width);
454
- setTrackPosition(x);
455
- }, [
456
- trackRef
457
- ]);
458
- (0, _react.useEffect)(()=>{
459
- onChange(ranges, triggers);
460
- }, [
461
- ranges
462
- ]);
463
- (0, _react.useEffect)(()=>{
464
- clearRanges();
465
- clearTriggers();
466
- if ((protectedValue === null || protectedValue === void 0 ? void 0 : protectedValue.length) === 0) {
467
- addRange({
468
- from: min,
469
- to: max
470
- });
471
- addTrigger(min, {
472
- isFixed: true,
473
- isHidden: true
474
- });
475
- addTrigger(max, {
476
- isFixed: true,
477
- isHidden: true
478
- });
479
- } else {
480
- var _protectedValue_reduce_sort_filter, _protectedValue_reduce_sort, _protectedValue_reduce;
481
- protectedValue === null || protectedValue === void 0 ? void 0 : (_protectedValue_reduce = protectedValue.reduce((result, range)=>{
482
- addRange({
483
- ...range
484
- });
485
- if (!result.find((score)=>score === (range === null || range === void 0 ? void 0 : range.from))) result.splice((result === null || result === void 0 ? void 0 : result.length) - 1, 0, range === null || range === void 0 ? void 0 : range.from);
486
- if (!result.find((score)=>score === (range === null || range === void 0 ? void 0 : range.to))) result.splice((result === null || result === void 0 ? void 0 : result.length) - 1, 0, range === null || range === void 0 ? void 0 : range.to);
487
- return result;
488
- }, [])) === null || _protectedValue_reduce === void 0 ? void 0 : (_protectedValue_reduce_sort = _protectedValue_reduce.sort((a, b)=>a < b ? -1 : 1)) === null || _protectedValue_reduce_sort === void 0 ? void 0 : (_protectedValue_reduce_sort_filter = _protectedValue_reduce_sort.filter((item, i, arr)=>i === 0 || item - 1 !== arr[i - 1])) === null || _protectedValue_reduce_sort_filter === void 0 ? void 0 : _protectedValue_reduce_sort_filter.map((score, i, triggers)=>{
489
- if (i === 0 || score - 1 !== triggers[i - 1]) {
490
- const isExtremum = score === min || score === max;
491
- addTrigger(score, {
492
- isFixed: isExtremum,
493
- isHidden: isExtremum
494
- }, {
495
- withRange: false
496
- });
497
- }
498
- });
499
- }
500
- }, [
501
- protectedValue
502
- ]);
503
- (0, _react.useEffect)(()=>{
504
- if (!(0, _utils.compare)(value, protectedValue)) {
505
- setProtectedValue(value);
506
- }
507
- }, [
352
+ }, null);
353
+ if (closestRange) {
354
+ if (closestRange?.to < score) result = closestRange?.to - minRange - 1;
355
+ if (score < closestRange?.from) result = closestRange?.from + minRange - 1;
356
+ }
357
+ }
358
+ return result;
359
+ };
360
+ const getRangesList = () => {
361
+ return triggers.map(_ref12 => {
362
+ let {
508
363
  value
509
- ]);
510
- (0, _react.useEffect)(()=>{
511
- if (!movingTriggerIndex && movingTriggerData) {
512
- updateRangesByTrigger({
513
- ...movingTriggerData
514
- });
515
- setMovingTriggerData(null);
516
- }
517
- }, [
518
- movingTriggerIndex
519
- ]);
520
- // RENDER //
521
- const renderCollision = ({ isCollisionVisible, isLeftCollision, isRightCollision, isBothCollision, className })=>{
522
- var _trackRef_current;
523
- const pieces = parseInt((max - min) / minRange, 10);
524
- var _trackRef_current_getBoundingClientRect;
525
- const { width: trackWidth } = (_trackRef_current_getBoundingClientRect = trackRef === null || trackRef === void 0 ? void 0 : (_trackRef_current = trackRef.current) === null || _trackRef_current === void 0 ? void 0 : _trackRef_current.getBoundingClientRect()) !== null && _trackRef_current_getBoundingClientRect !== void 0 ? _trackRef_current_getBoundingClientRect : {};
526
- const collisionWidth = trackWidth / pieces - 4;
527
- const width = isCollisionVisible ? isBothCollision ? collisionWidth * 2 : isLeftCollision || isRightCollision ? collisionWidth : 0 : 0;
528
- return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
529
- className: (0, _classnames.default)("collision", className, {
530
- "collision--visible": isCollisionVisible,
531
- "collision--left": isLeftCollision && !isBothCollision,
532
- "collision--right": isRightCollision && !isBothCollision,
533
- "collision--both": isBothCollision
534
- }),
535
- style: {
536
- width
537
- }
538
- });
539
- };
540
- const renderAddTrackTriggerSettings = ()=>{
541
- const { label, value } = addTriggerFixedRange || {};
542
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
543
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings`,
544
- children: [
545
- /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
546
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body`,
547
- children: [
548
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
549
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-left`,
550
- onClick: (e)=>{
551
- e.stopPropagation();
552
- setAssignValueToRange(ASSIGN_TO_LEFT);
553
- },
554
- "attr-is-active": `${assignValueToRange === ASSIGN_TO_LEFT}`,
555
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.ChevronLeft, {})
556
- }),
557
- /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
558
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--lenders-count`,
559
- children: [
560
- label,
561
- value
562
- ]
563
- }),
564
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
565
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-right`,
566
- onClick: (e)=>{
567
- e.stopPropagation();
568
- setAssignValueToRange(ASSIGN_TO_RIGHT);
569
- },
570
- "attr-is-active": `${assignValueToRange === ASSIGN_TO_RIGHT}`,
571
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.ChevronRight, {})
572
- })
573
- ]
574
- }),
575
- /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
576
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions`,
577
- children: [
578
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
579
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--cancel`,
580
- onClick: (e)=>unfixAddTrigger(e),
581
- children: "Cancel"
582
- }),
583
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
584
- className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--apply`,
585
- onClick: (e)=>{
586
- e.stopPropagation();
587
- addTrigger(addTriggerFixedScore);
588
- },
589
- children: "Apply"
590
- })
591
- ]
592
- })
593
- ]
594
- });
595
- };
596
- const renderAddTrackTrigger = ()=>{
597
- const isNoTriggers = !(triggers === null || triggers === void 0 ? void 0 : triggers.filter(({ isHidden })=>!isHidden).length);
598
- const x = getAddTriggerPosition();
599
- const score = isAddTriggerFixed ? addTriggerFixedScore : isNoTriggers && !isMouseOverTrack ? (min + max) / 2 - 1 : getAddTriggerScore(x);
600
- const triggerCollision = !isAddTriggerFixed ? getAddTriggerCollisionDirection(x) : NO_COLLISION;
601
- const isLeftCollision = triggerCollision === LEFT_COLLISSION;
602
- const isRightCollision = triggerCollision === RIGHT_COLLISION;
603
- const isBothCollision = triggerCollision === BOTH_COLLISION;
604
- const isCollisionVisible = (isLeftCollision || isRightCollision || isBothCollision) && !(isNoTriggers && !isMouseOverTrack);
605
- const left = getTrackXByScore(score);
606
- const inRange = getInRange(score);
607
- const isTriggerWithScoreExists = getTriggerByScore(score);
608
- if (isTriggerWithScoreExists || movingTrigger || isMouseOverTrigger) return null;
609
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
610
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--add-trigger`, {
611
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--fixed`]: isAddTriggerFixed,
612
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--force-visible`]: isNoTriggers,
613
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--moved-smoothly`]: isNoTriggers && !isMouseOverTrack
614
- }),
615
- style: {
616
- left: `${left}px`
617
- },
618
- onClick: ()=>(inRange === null || inRange === void 0 ? void 0 : inRange.value) ? fixAddTrigger(score, inRange) : addTrigger(score),
619
- children: [
620
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
621
- ref: addTriggerRef,
622
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--add-trigger__point`, {
623
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger__point--shake`]: isCollisionVisible
624
- }),
625
- "data-point-value": getPointValue(score),
626
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.Plus, {})
627
- }),
628
- isAddTriggerFixed && renderAddTrackTriggerSettings(),
629
- renderCollision({
630
- isCollisionVisible,
631
- isLeftCollision,
632
- isRightCollision,
633
- isBothCollision
634
- })
635
- ]
364
+ } = _ref12;
365
+ return value;
366
+ }).sort().reduce((result, score, i, scores) => {
367
+ if (i !== 0) {
368
+ result.push({
369
+ from: scores[i - 1],
370
+ to: score
636
371
  });
637
- };
638
- const renderTrackTrigger = ({ value: triggerScore, isFixed, isHidden }, triggerIndex)=>{
639
- const triggerCollision = getTriggerCollisionDirection(triggerIndex, triggerScore);
640
- const isLeftCollision = triggerCollision === LEFT_COLLISSION;
641
- const isRightCollision = triggerCollision === RIGHT_COLLISION;
642
- const isBothCollision = triggerCollision === BOTH_COLLISION;
643
- const isCurrentTriggerMoving = isTriggerMoving(triggerIndex);
644
- const isCollisionVisible = isCurrentTriggerMoving && isTriggerMoved && (isLeftCollision || isRightCollision || isBothCollision);
645
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
646
- style: {
647
- left: getTrackXByScore(triggerScore).toString().concat("px")
648
- },
649
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--trigger`, {
650
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__moving`]: isCurrentTriggerMoving,
651
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__fixed`]: isFixed,
652
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__hidden`]: isHidden
653
- }),
654
- ...isMobile ? {} : {
655
- onMouseOver: setMouseOverTrigger,
656
- onMouseLeave: setMouseLeaveTrigger
657
- },
658
- children: [
659
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
660
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--trigger__point`, {
661
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__point--shake`]: isCollisionVisible
662
- }),
663
- "data-point-value": getPointValue(triggerScore),
664
- ...isMobile ? {
665
- onTouchStart: (e)=>onTriggerMouseDown(e, triggerIndex),
666
- onTouchEnd: resetMovingTrigger
667
- } : {
668
- onMouseDown: (e)=>onTriggerMouseDown(e, triggerIndex),
669
- onMouseUp: resetMovingTrigger
670
- }
671
- }),
672
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
673
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--trigger__actions`, {
674
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__actions--hidden`]: isCurrentTriggerMoving
675
- }),
676
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
677
- className: `${COMPONENT_CLASS}__track__range-triggers--trigger__actions--remove`,
678
- onClick: ()=>removeTrigger(triggerIndex),
679
- children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.X, {})
680
- })
681
- }),
682
- renderCollision({
683
- isCollisionVisible,
684
- isLeftCollision,
685
- isRightCollision,
686
- isBothCollision,
687
- className: `${COMPONENT_CLASS}__track__range-triggers--trigger__collision`
688
- })
689
- ]
690
- }, `${COMPONENT_CLASS}__track__range-triggers--trigger-${triggerIndex}`);
691
- };
692
- const renderTrackTriggers = ()=>{
693
- return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
694
- className: `${COMPONENT_CLASS}__track__range-triggers`,
695
- children: triggers === null || triggers === void 0 ? void 0 : triggers.map(renderTrackTrigger)
696
- });
697
- };
698
- const renderRangeValue = ({ from, to, label, value }, rangeIndex)=>{
699
- if (!value) return null;
700
- const left = getTrackXByScore((to + from) / 2);
701
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
702
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value--item`),
703
- style: {
704
- left: `${left}px`
705
- },
706
- children: [
707
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
708
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value--item__label`),
709
- children: label
710
- }),
711
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
712
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value--item__value`),
713
- children: value
714
- })
715
- ]
716
- }, `${COMPONENT_CLASS}__track__ranges-value--item-${rangeIndex}`);
717
- };
718
- const renderRangesValue = ()=>{
719
- return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
720
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value`),
721
- children: ranges === null || ranges === void 0 ? void 0 : ranges.map(renderRangeValue)
372
+ }
373
+ return result;
374
+ }, []);
375
+ };
376
+ const getInRange = score => {
377
+ return ranges?.find(_ref13 => {
378
+ let {
379
+ from,
380
+ to
381
+ } = _ref13;
382
+ return from <= score && score <= to;
383
+ });
384
+ };
385
+ const getPointValue = score => {
386
+ switch (pointValueType) {
387
+ case POINT_VALUE_TYPES.FROM:
388
+ return `${score + 1}`;
389
+ case POINT_VALUE_TYPES.TO:
390
+ return `${score}`;
391
+ case POINT_VALUE_TYPES.BOTH:
392
+ default:
393
+ return `${score} | ${score + 1}`;
394
+ }
395
+ };
396
+
397
+ // EVENTS //
398
+ const onRangeChange = function (index, value) {
399
+ let validate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
400
+ if (validate) value = prepareValue(value);
401
+ if (isNaN(value)) value = 0;
402
+ updateTrigger(index, value);
403
+ };
404
+ const onTriggerMouseDown = (e, index) => {
405
+ setMovingTrigger(e.target);
406
+ setMovingTriggerIndex(index);
407
+ setMovingTriggerData({
408
+ ...triggers[index]
409
+ });
410
+ };
411
+ const onTriggerMove = e => {
412
+ if (e?.cancelable) e?.preventDefault();
413
+ e?.stopPropagation();
414
+ if (!movingTriggerIndex || !movingTrigger) {
415
+ return false;
416
+ }
417
+ if (!isTriggerMoved) setIsTriggerMoved(true);
418
+ const {
419
+ clientX: x
420
+ } = e?.touches?.[0] ?? e;
421
+ const {
422
+ width: triggerWidth
423
+ } = movingTrigger?.getBoundingClientRect() || {};
424
+ if (x < trackPosition || x > trackPosition + trackWidth + triggerWidth) return false;
425
+ const triggerPoints = getTriggerScore(movingTriggerIndex, getScoreByX(x));
426
+ onRangeChange(movingTriggerIndex, triggerPoints);
427
+ };
428
+ const resetMovingTrigger = () => {
429
+ setTimeout(() => {
430
+ setMovingTrigger(null);
431
+ setMovingTriggerIndex(null);
432
+ }, 1);
433
+ };
434
+
435
+ // USE EFFECT'S //
436
+ // MouseUp Event Controller
437
+ (0, _react.useEffect)(() => {
438
+ if (isMobile) {
439
+ document.addEventListener("touchend", resetMovingTrigger);
440
+ } else {
441
+ document.addEventListener("mouseup", resetMovingTrigger);
442
+ }
443
+ return () => {
444
+ if (isMobile) {
445
+ document.removeEventListener("touchend", resetMovingTrigger);
446
+ } else {
447
+ document.removeEventListener("mouseup", resetMovingTrigger);
448
+ }
449
+ };
450
+ }, []);
451
+ // MouseMove Event Controller
452
+ (0, _react.useEffect)(() => {
453
+ if (!movingTrigger && isTriggerMoved) {
454
+ movingController?.abort();
455
+ setIsTriggerMoved(false);
456
+ setMovingController(null);
457
+ } else if (movingTrigger && !isTriggerMoved) {
458
+ setMovingController(new AbortController());
459
+ }
460
+ const body = document.getElementsByTagName("body")[0];
461
+ body.classList?.[movingTrigger ? "add" : "remove"]("moving-cursor");
462
+ }, [movingTrigger]);
463
+ (0, _react.useEffect)(() => {
464
+ if (movingController) {
465
+ if (isMobile) {
466
+ document.addEventListener("touchmove", onTriggerMove, {
467
+ signal: movingController?.signal
722
468
  });
723
- };
724
- const renderTrackDividers = (0, _react.useMemo)(()=>{
725
- const renderTrackDivider = (key = 0)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
726
- className: `${COMPONENT_CLASS}__track__line__dividers--item`
727
- }, key);
728
- const dividersCount = parseInt((max - min) / dividersRange, 10);
729
- const dividers = [];
730
- for(let i = 0; i < dividersCount; ++i)dividers.push(renderTrackDivider(i));
731
- return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
732
- className: `${COMPONENT_CLASS}__track__line__dividers`,
733
- children: dividers
469
+ } else {
470
+ document.addEventListener("mousemove", onTriggerMove, {
471
+ signal: movingController?.signal
734
472
  });
735
- }, [
736
- trackRef,
737
- minRange,
738
- min,
739
- max
740
- ]);
741
- const renderTrackLine = ()=>{
742
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
743
- className: `${COMPONENT_CLASS}__track__line`,
744
- children: [
745
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
746
- className: `${COMPONENT_CLASS}__track__line__extremum--min`,
747
- children: min
748
- }),
749
- renderTrackDividers,
750
- /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
751
- className: `${COMPONENT_CLASS}__track__line__extremum--max`,
752
- children: max
753
- })
754
- ]
473
+ }
474
+ }
475
+ return () => {
476
+ if (isMobile) {
477
+ document.removeEventListener("touchmove", onTriggerMove, {
478
+ signal: movingController?.signal,
479
+ passive: false
755
480
  });
756
- };
757
- const renderTrack = ()=>{
758
- return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
759
- className: (0, _classnames.default)(`${COMPONENT_CLASS}__track`, className),
760
- ref: trackRef,
761
- children: [
762
- renderTrackLine(),
763
- renderAddTrackTrigger(),
764
- renderTrackTriggers(),
765
- renderRangesValue()
766
- ]
481
+ } else {
482
+ document.removeEventListener("mousemove", onTriggerMove, {
483
+ signal: movingController?.signal
767
484
  });
768
- };
769
- const render = ()=>{
770
- return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
771
- className: COMPONENT_CLASS,
772
- onMouseOver: setMouseOverTrack,
773
- onMouseLeave: setMouseLeaveTrack,
774
- onMouseMove: (e)=>setMouseTrackPosition(e === null || e === void 0 ? void 0 : e.clientX),
775
- children: renderTrack()
485
+ }
486
+ };
487
+ }, [movingController]);
488
+ (0, _react.useLayoutEffect)(() => {
489
+ const {
490
+ width,
491
+ x
492
+ } = trackRef?.current?.getBoundingClientRect() || {};
493
+ setPointsPerPx(countPointsPerPx(width));
494
+ setTrackWidth(width);
495
+ setTrackPosition(x);
496
+ }, [trackRef]);
497
+ (0, _react.useEffect)(() => {
498
+ onChange(ranges, triggers);
499
+ }, [ranges]);
500
+ (0, _react.useEffect)(() => {
501
+ clearRanges();
502
+ clearTriggers();
503
+ if (protectedValue?.length === 0) {
504
+ addRange({
505
+ from: min,
506
+ to: max
507
+ });
508
+ addTrigger(min, {
509
+ isFixed: true,
510
+ isHidden: true
511
+ });
512
+ addTrigger(max, {
513
+ isFixed: true,
514
+ isHidden: true
515
+ });
516
+ } else {
517
+ protectedValue?.reduce((result, range) => {
518
+ addRange({
519
+ ...range
776
520
  });
777
- };
778
- return render();
779
- }
521
+ if (!result.find(score => score === range?.from)) result.splice(result?.length - 1, 0, range?.from);
522
+ if (!result.find(score => score === range?.to)) result.splice(result?.length - 1, 0, range?.to);
523
+ return result;
524
+ }, [])?.sort((a, b) => a < b ? -1 : 1)?.filter((item, i, arr) => i === 0 || item - 1 !== arr[i - 1])?.map((score, i, triggers) => {
525
+ if (i === 0 || score - 1 !== triggers[i - 1]) {
526
+ const isExtremum = score === min || score === max;
527
+ addTrigger(score, {
528
+ isFixed: isExtremum,
529
+ isHidden: isExtremum
530
+ }, {
531
+ withRange: false
532
+ });
533
+ }
534
+ });
535
+ }
536
+ }, [protectedValue]);
537
+ (0, _react.useEffect)(() => {
538
+ if (!(0, _utils.compare)(value, protectedValue)) {
539
+ setProtectedValue(value);
540
+ }
541
+ }, [value]);
542
+ (0, _react.useEffect)(() => {
543
+ if (!movingTriggerIndex && movingTriggerData) {
544
+ updateRangesByTrigger({
545
+ ...movingTriggerData
546
+ });
547
+ setMovingTriggerData(null);
548
+ }
549
+ }, [movingTriggerIndex]);
550
+
551
+ // RENDER //
552
+ const renderCollision = _ref14 => {
553
+ let {
554
+ isCollisionVisible,
555
+ isLeftCollision,
556
+ isRightCollision,
557
+ isBothCollision,
558
+ className
559
+ } = _ref14;
560
+ const pieces = parseInt((max - min) / minRange, 10);
561
+ const {
562
+ width: trackWidth
563
+ } = trackRef?.current?.getBoundingClientRect() ?? {};
564
+ const collisionWidth = trackWidth / pieces - 4;
565
+ const width = isCollisionVisible ? isBothCollision ? collisionWidth * 2 : isLeftCollision || isRightCollision ? collisionWidth : 0 : 0;
566
+ return /*#__PURE__*/_react.default.createElement("div", {
567
+ className: (0, _classnames.default)("collision", className, {
568
+ "collision--visible": isCollisionVisible,
569
+ "collision--left": isLeftCollision && !isBothCollision,
570
+ "collision--right": isRightCollision && !isBothCollision,
571
+ "collision--both": isBothCollision
572
+ }),
573
+ style: {
574
+ width
575
+ }
576
+ });
577
+ };
578
+ const renderAddTrackTriggerSettings = () => {
579
+ const {
580
+ label,
581
+ value
582
+ } = addTriggerFixedRange || {};
583
+ return /*#__PURE__*/_react.default.createElement("div", {
584
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings`
585
+ }, /*#__PURE__*/_react.default.createElement("div", {
586
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body`
587
+ }, /*#__PURE__*/_react.default.createElement("div", {
588
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-left`,
589
+ onClick: e => {
590
+ e.stopPropagation();
591
+ setAssignValueToRange(ASSIGN_TO_LEFT);
592
+ },
593
+ "attr-is-active": `${assignValueToRange === ASSIGN_TO_LEFT}`
594
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronLeft, null)), /*#__PURE__*/_react.default.createElement("div", {
595
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--lenders-count`
596
+ }, label, value), /*#__PURE__*/_react.default.createElement("div", {
597
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-right`,
598
+ onClick: e => {
599
+ e.stopPropagation();
600
+ setAssignValueToRange(ASSIGN_TO_RIGHT);
601
+ },
602
+ "attr-is-active": `${assignValueToRange === ASSIGN_TO_RIGHT}`
603
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronRight, null))), /*#__PURE__*/_react.default.createElement("div", {
604
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions`
605
+ }, /*#__PURE__*/_react.default.createElement("div", {
606
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--cancel`,
607
+ onClick: e => unfixAddTrigger(e)
608
+ }, "Cancel"), /*#__PURE__*/_react.default.createElement("div", {
609
+ className: `${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--apply`,
610
+ onClick: e => {
611
+ e.stopPropagation();
612
+ addTrigger(addTriggerFixedScore);
613
+ }
614
+ }, "Apply")));
615
+ };
616
+ const renderAddTrackTrigger = () => {
617
+ const isNoTriggers = !triggers?.filter(_ref15 => {
618
+ let {
619
+ isHidden
620
+ } = _ref15;
621
+ return !isHidden;
622
+ }).length;
623
+ const x = getAddTriggerPosition();
624
+ const score = isAddTriggerFixed ? addTriggerFixedScore : isNoTriggers && !isMouseOverTrack ? (min + max) / 2 - 1 : getAddTriggerScore(x);
625
+ const triggerCollision = !isAddTriggerFixed ? getAddTriggerCollisionDirection(x) : NO_COLLISION;
626
+ const isLeftCollision = triggerCollision === LEFT_COLLISSION;
627
+ const isRightCollision = triggerCollision === RIGHT_COLLISION;
628
+ const isBothCollision = triggerCollision === BOTH_COLLISION;
629
+ const isCollisionVisible = (isLeftCollision || isRightCollision || isBothCollision) && !(isNoTriggers && !isMouseOverTrack);
630
+ const left = getTrackXByScore(score);
631
+ const inRange = getInRange(score);
632
+ const isTriggerWithScoreExists = getTriggerByScore(score);
633
+ if (isTriggerWithScoreExists || movingTrigger || isMouseOverTrigger) return null;
634
+ return /*#__PURE__*/_react.default.createElement("div", {
635
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--add-trigger`, {
636
+ [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--fixed`]: isAddTriggerFixed,
637
+ [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--force-visible`]: isNoTriggers,
638
+ [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--moved-smoothly`]: isNoTriggers && !isMouseOverTrack
639
+ }),
640
+ style: {
641
+ left: `${left}px`
642
+ },
643
+ onClick: () => inRange?.value ? fixAddTrigger(score, inRange) : addTrigger(score)
644
+ }, /*#__PURE__*/_react.default.createElement("div", {
645
+ ref: addTriggerRef,
646
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--add-trigger__point`, {
647
+ [`${COMPONENT_CLASS}__track__range-triggers--add-trigger__point--shake`]: isCollisionVisible
648
+ }),
649
+ "data-point-value": getPointValue(score)
650
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.Plus, null)), isAddTriggerFixed && renderAddTrackTriggerSettings(), renderCollision({
651
+ isCollisionVisible,
652
+ isLeftCollision,
653
+ isRightCollision,
654
+ isBothCollision
655
+ }));
656
+ };
657
+ const renderTrackTrigger = (_ref16, triggerIndex) => {
658
+ let {
659
+ value: triggerScore,
660
+ isFixed,
661
+ isHidden
662
+ } = _ref16;
663
+ const triggerCollision = getTriggerCollisionDirection(triggerIndex, triggerScore);
664
+ const isLeftCollision = triggerCollision === LEFT_COLLISSION;
665
+ const isRightCollision = triggerCollision === RIGHT_COLLISION;
666
+ const isBothCollision = triggerCollision === BOTH_COLLISION;
667
+ const isCurrentTriggerMoving = isTriggerMoving(triggerIndex);
668
+ const isCollisionVisible = isCurrentTriggerMoving && isTriggerMoved && (isLeftCollision || isRightCollision || isBothCollision);
669
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
670
+ key: `${COMPONENT_CLASS}__track__range-triggers--trigger-${triggerIndex}`,
671
+ style: {
672
+ left: getTrackXByScore(triggerScore).toString().concat("px")
673
+ },
674
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--trigger`, {
675
+ [`${COMPONENT_CLASS}__track__range-triggers--trigger__moving`]: isCurrentTriggerMoving,
676
+ [`${COMPONENT_CLASS}__track__range-triggers--trigger__fixed`]: isFixed,
677
+ [`${COMPONENT_CLASS}__track__range-triggers--trigger__hidden`]: isHidden
678
+ })
679
+ }, isMobile ? {} : {
680
+ onMouseOver: setMouseOverTrigger,
681
+ onMouseLeave: setMouseLeaveTrigger
682
+ }), /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
683
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--trigger__point`, {
684
+ [`${COMPONENT_CLASS}__track__range-triggers--trigger__point--shake`]: isCollisionVisible
685
+ }),
686
+ "data-point-value": getPointValue(triggerScore)
687
+ }, isMobile ? {
688
+ onTouchStart: e => onTriggerMouseDown(e, triggerIndex),
689
+ onTouchEnd: resetMovingTrigger
690
+ } : {
691
+ onMouseDown: e => onTriggerMouseDown(e, triggerIndex),
692
+ onMouseUp: resetMovingTrigger
693
+ })), /*#__PURE__*/_react.default.createElement("div", {
694
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__range-triggers--trigger__actions`, {
695
+ [`${COMPONENT_CLASS}__track__range-triggers--trigger__actions--hidden`]: isCurrentTriggerMoving
696
+ })
697
+ }, /*#__PURE__*/_react.default.createElement("div", {
698
+ className: `${COMPONENT_CLASS}__track__range-triggers--trigger__actions--remove`,
699
+ onClick: () => removeTrigger(triggerIndex)
700
+ }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, null))), renderCollision({
701
+ isCollisionVisible,
702
+ isLeftCollision,
703
+ isRightCollision,
704
+ isBothCollision,
705
+ className: `${COMPONENT_CLASS}__track__range-triggers--trigger__collision`
706
+ }));
707
+ };
708
+ const renderTrackTriggers = () => {
709
+ return /*#__PURE__*/_react.default.createElement("div", {
710
+ className: `${COMPONENT_CLASS}__track__range-triggers`
711
+ }, triggers?.map(renderTrackTrigger));
712
+ };
713
+ const renderRangeValue = (_ref17, rangeIndex) => {
714
+ let {
715
+ from,
716
+ to,
717
+ label,
718
+ value
719
+ } = _ref17;
720
+ if (!value) return null;
721
+ const left = getTrackXByScore((to + from) / 2);
722
+ return /*#__PURE__*/_react.default.createElement("div", {
723
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value--item`),
724
+ style: {
725
+ left: `${left}px`
726
+ },
727
+ key: `${COMPONENT_CLASS}__track__ranges-value--item-${rangeIndex}`
728
+ }, /*#__PURE__*/_react.default.createElement("div", {
729
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value--item__label`)
730
+ }, label), /*#__PURE__*/_react.default.createElement("div", {
731
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value--item__value`)
732
+ }, value));
733
+ };
734
+ const renderRangesValue = () => {
735
+ return /*#__PURE__*/_react.default.createElement("div", {
736
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track__ranges-value`)
737
+ }, ranges?.map(renderRangeValue));
738
+ };
739
+ const renderTrackDividers = (0, _react.useMemo)(() => {
740
+ const renderTrackDivider = function () {
741
+ let key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
742
+ return /*#__PURE__*/_react.default.createElement("div", {
743
+ key: key,
744
+ className: `${COMPONENT_CLASS}__track__line__dividers--item`
745
+ });
746
+ };
747
+ const dividersCount = parseInt((max - min) / dividersRange, 10);
748
+ const dividers = [];
749
+ for (let i = 0; i < dividersCount; ++i) dividers.push(renderTrackDivider(i));
750
+ return /*#__PURE__*/_react.default.createElement("div", {
751
+ className: `${COMPONENT_CLASS}__track__line__dividers`
752
+ }, dividers);
753
+ }, [trackRef, minRange, min, max]);
754
+ const renderTrackLine = () => {
755
+ return /*#__PURE__*/_react.default.createElement("div", {
756
+ className: `${COMPONENT_CLASS}__track__line`
757
+ }, /*#__PURE__*/_react.default.createElement("div", {
758
+ className: `${COMPONENT_CLASS}__track__line__extremum--min`
759
+ }, min), renderTrackDividers, /*#__PURE__*/_react.default.createElement("div", {
760
+ className: `${COMPONENT_CLASS}__track__line__extremum--max`
761
+ }, max));
762
+ };
763
+ const renderTrack = () => {
764
+ return /*#__PURE__*/_react.default.createElement("div", {
765
+ className: (0, _classnames.default)(`${COMPONENT_CLASS}__track`, className),
766
+ ref: trackRef
767
+ }, renderTrackLine(), renderAddTrackTrigger(), renderTrackTriggers(), renderRangesValue());
768
+ };
769
+ const render = () => {
770
+ return /*#__PURE__*/_react.default.createElement("div", {
771
+ className: COMPONENT_CLASS,
772
+ onMouseOver: setMouseOverTrack,
773
+ onMouseLeave: setMouseLeaveTrack,
774
+ onMouseMove: e => setMouseTrackPosition(e?.clientX)
775
+ }, renderTrack());
776
+ };
777
+ return render();
778
+ }