intelicoreact 1.6.20 → 1.6.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +1 -102
  2. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +1 -89
  3. package/dist/Atomic/FormElements/Calendar/Calendar.js +1 -232
  4. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +1 -3
  5. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +1 -101
  6. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +1 -70
  7. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +1 -350
  8. package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +1 -3
  9. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +1 -177
  10. package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +1 -3
  11. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +1 -561
  12. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -20
  13. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +1 -405
  14. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +1 -94
  15. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +1 -105
  16. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +1 -67
  17. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +1 -247
  18. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +1 -160
  19. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +1 -193
  20. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +1 -135
  21. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +1 -116
  22. package/dist/Atomic/FormElements/Input/Input.js +1 -467
  23. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +1 -161
  24. package/dist/Atomic/FormElements/InputColor/InputColor.js +1 -64
  25. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +1 -166
  26. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +1 -354
  27. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +1 -71
  28. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +1 -693
  29. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +1 -254
  30. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -32
  31. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +1 -200
  32. package/dist/Atomic/FormElements/InputLink/InputLink.js +1 -99
  33. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +1 -37
  34. package/dist/Atomic/FormElements/InputMask/InputMask.js +1 -1214
  35. package/dist/Atomic/FormElements/InputMask/config.js +1 -15
  36. package/dist/Atomic/FormElements/InputMask/functions.js +1 -58
  37. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +1 -674
  38. package/dist/Atomic/FormElements/InputMask2/config.js +1 -15
  39. package/dist/Atomic/FormElements/InputMask2/functions.js +1 -58
  40. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +1 -766
  41. package/dist/Atomic/FormElements/InputMask3/config.js +1 -15
  42. package/dist/Atomic/FormElements/InputMask3/functions.js +1 -58
  43. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +1 -114
  44. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +1 -140
  45. package/dist/Atomic/FormElements/Label/Label.js +1 -82
  46. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -506
  47. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +1 -45
  48. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -331
  49. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +1 -66
  50. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +1 -80
  51. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +1 -64
  52. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +1 -54
  53. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +1 -183
  54. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +1 -209
  55. package/dist/Atomic/FormElements/RangeList/RangeList.js +1 -175
  56. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +1 -43
  57. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +1 -443
  58. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +1 -858
  59. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +1 -39
  60. package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -59
  61. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +1 -50
  62. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +1 -47
  63. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +1 -96
  64. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +1 -40
  65. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +1 -64
  66. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +1 -170
  67. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +1 -202
  68. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +1 -67
  69. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +1 -115
  70. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -826
  71. package/dist/Atomic/FormElements/Text/Text.js +1 -125
  72. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +1 -45
  73. package/dist/Atomic/FormElements/Textarea/Textarea.js +1 -80
  74. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +1 -176
  75. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +1 -62
  76. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -127
  77. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +1 -220
  78. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +1 -83
  79. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +1 -82
  80. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +1 -101
  81. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +1 -29
  82. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +1 -113
  83. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +1 -30
  84. package/dist/Atomic/Layout/Header/Header.js +1 -85
  85. package/dist/Atomic/Layout/Spinner/Spinner.js +1 -39
  86. package/dist/Atomic/UI/Accordion/Accordion.js +1 -118
  87. package/dist/Atomic/UI/Accordion/AccordionItem.js +1 -181
  88. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +1 -238
  89. package/dist/Atomic/UI/AccordionText/AccordionText.js +1 -69
  90. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +1 -207
  91. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +1 -56
  92. package/dist/Atomic/UI/Alert/Alert.js +1 -72
  93. package/dist/Atomic/UI/Arrow/Arrow.js +1 -132
  94. package/dist/Atomic/UI/Box/Box.js +1 -52
  95. package/dist/Atomic/UI/Button/Button.js +1 -89
  96. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +1 -72
  97. package/dist/Atomic/UI/Chart/Chart.js +1 -172
  98. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +1 -95
  99. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +1 -80
  100. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +1 -188
  101. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +1 -335
  102. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +1 -43
  103. package/dist/Atomic/UI/Chart/partial/utils.js +1 -60
  104. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +1 -109
  105. package/dist/Atomic/UI/DateTime/DateTime.js +1 -57
  106. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +1 -44
  107. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +1 -15
  108. package/dist/Atomic/UI/DoubleString/DoubleString.js +1 -102
  109. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +1 -226
  110. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +1 -221
  111. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +1 -106
  112. package/dist/Atomic/UI/Hint/Hint.js +1 -193
  113. package/dist/Atomic/UI/Hint/partials/_utils.js +1 -51
  114. package/dist/Atomic/UI/Modal/Modal.js +1 -188
  115. package/dist/Atomic/UI/Modal/ModalHOC.js +1 -72
  116. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +1 -46
  117. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +1 -83
  118. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +1 -200
  119. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +1 -75
  120. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +1 -80
  121. package/dist/Atomic/UI/NavLine/NavLine.js +1 -293
  122. package/dist/Atomic/UI/PageTitle/PageTitle.js +1 -75
  123. package/dist/Atomic/UI/PieChart/PieChart.js +1 -42
  124. package/dist/Atomic/UI/Price/Price.js +1 -22
  125. package/dist/Atomic/UI/PriceRange/PriceRange.js +1 -36
  126. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +1 -71
  127. package/dist/Atomic/UI/Status/Status.js +1 -59
  128. package/dist/Atomic/UI/Table/Partials/TdCell.js +1 -87
  129. package/dist/Atomic/UI/Table/Partials/TdHeader.js +1 -38
  130. package/dist/Atomic/UI/Table/Partials/TdRow.js +1 -99
  131. package/dist/Atomic/UI/Table/Partials/TdTitle.js +1 -52
  132. package/dist/Atomic/UI/Table/Table.js +1 -63
  133. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +1 -80
  134. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +1 -28
  135. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +1 -13
  136. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +1 -53
  137. package/dist/Atomic/UI/Tag/Tag.js +1 -160
  138. package/dist/Atomic/UI/TagList/TagList.js +1 -251
  139. package/dist/Atomic/UI/UserBox/UserBox.js +1 -73
  140. package/dist/Atomic/UI/WizardStepper/constructor.js +1 -84
  141. package/dist/Atomic/UI/WizardStepper/index.js +1 -3
  142. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +1 -37
  143. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +1 -3
  144. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +1 -61
  145. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +1 -3
  146. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +1 -39
  147. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +1 -3
  148. package/dist/Atomic/UI/WizardStepper/ui/icons.js +1 -49
  149. package/dist/Atomic/UI/WizardStepper/ui/index.js +1 -3
  150. package/dist/Classes/AbortableFetch.js +1 -454
  151. package/dist/Classes/AnimatedHandler.js +1 -47
  152. package/dist/Classes/RESTAPI/index.js +1 -228
  153. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +1 -457
  154. package/dist/Classes/RESTAPI/partials/ApiBase.js +1 -48
  155. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +1 -112
  156. package/dist/Classes/RESTAPI/partials/ApiUtils.js +1 -189
  157. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +1 -252
  158. package/dist/Classes/RESTAPI/partials/Utils.js +1 -92
  159. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +1 -3
  160. package/dist/Classes/RESTAPI/partials/_utils.js +1 -197
  161. package/dist/Constants/index.constants.js +1 -78
  162. package/dist/Functions/Portal.js +1 -22
  163. package/dist/Functions/customEventListener.js +1 -96
  164. package/dist/Functions/dateTime.js +1 -149
  165. package/dist/Functions/fieldValueFormatters.js +1 -405
  166. package/dist/Functions/guards/assertions.js +1 -66
  167. package/dist/Functions/guards/safeValue.js +1 -30
  168. package/dist/Functions/guards/typeGuards.js +1 -116
  169. package/dist/Functions/hooks/useFormFieldsChangesManager.js +1 -95
  170. package/dist/Functions/locale/createTranslator.js +1 -32
  171. package/dist/Functions/operations.js +1 -130
  172. package/dist/Functions/presets/inputMaskPresets.js +1 -170
  173. package/dist/Functions/presets/inputPresets.js +1 -60
  174. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +1 -45
  175. package/dist/Functions/schemas.js +1 -31
  176. package/dist/Functions/useBodyScrollLock.js +1 -17
  177. package/dist/Functions/useClickOutside.js +1 -15
  178. package/dist/Functions/useDebounce.js +1 -17
  179. package/dist/Functions/useFieldFocus.js +1 -84
  180. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +1 -39
  181. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +1 -159
  182. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +1 -78
  183. package/dist/Functions/useFormTools/functions/General.js +1 -134
  184. package/dist/Functions/useFormTools/functions/RenderFields.js +1 -111
  185. package/dist/Functions/useFormTools/functions/usePrevious.js +1 -12
  186. package/dist/Functions/useFormTools/index.js +1 -778
  187. package/dist/Functions/useInputHighlightError.js +1 -67
  188. package/dist/Functions/useIsMobile/useIsMobile.js +1 -53
  189. package/dist/Functions/useKeyPress/useHandleKeyPress.js +1 -21
  190. package/dist/Functions/useKeyPress/useKeyPress.js +1 -75
  191. package/dist/Functions/useLocalStorage.js +1 -34
  192. package/dist/Functions/useLocationParams.js +1 -27
  193. package/dist/Functions/useMediaQuery.js +1 -17
  194. package/dist/Functions/useMetaInfo.js +1 -43
  195. package/dist/Functions/useMouseUpOutside.js +1 -16
  196. package/dist/Functions/useOnlineStatus.js +1 -29
  197. package/dist/Functions/usePasswordChecker.js +1 -110
  198. package/dist/Functions/usePrevious.js +1 -12
  199. package/dist/Functions/useResize.js +1 -31
  200. package/dist/Functions/useScrollTo.js +1 -17
  201. package/dist/Functions/useToggle.js +1 -17
  202. package/dist/Functions/utils.js +1 -522
  203. package/dist/Langs.js +1 -168
  204. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +1 -21
  205. package/dist/Molecular/CustomIcons/components/AlertCircle.js +1 -23
  206. package/dist/Molecular/CustomIcons/components/AppStore.js +1 -29
  207. package/dist/Molecular/CustomIcons/components/Arrow.js +1 -32
  208. package/dist/Molecular/CustomIcons/components/ArrowDown.js +1 -17
  209. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +1 -22
  210. package/dist/Molecular/CustomIcons/components/ArrowRight.js +1 -22
  211. package/dist/Molecular/CustomIcons/components/ArrowUp.js +1 -17
  212. package/dist/Molecular/CustomIcons/components/Bell.js +1 -15
  213. package/dist/Molecular/CustomIcons/components/Button.js +1 -12
  214. package/dist/Molecular/CustomIcons/components/Campaigns.js +1 -16
  215. package/dist/Molecular/CustomIcons/components/Check.js +1 -14
  216. package/dist/Molecular/CustomIcons/components/Check2.js +1 -12
  217. package/dist/Molecular/CustomIcons/components/ChevronDown.js +1 -12
  218. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +1 -11
  219. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +1 -11
  220. package/dist/Molecular/CustomIcons/components/ChevronRight.js +1 -11
  221. package/dist/Molecular/CustomIcons/components/ChevronUp.js +1 -11
  222. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +1 -27
  223. package/dist/Molecular/CustomIcons/components/Close.js +1 -14
  224. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +1 -17
  225. package/dist/Molecular/CustomIcons/components/Delete.js +1 -16
  226. package/dist/Molecular/CustomIcons/components/Edit.js +1 -15
  227. package/dist/Molecular/CustomIcons/components/Email.js +1 -31
  228. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +1 -18
  229. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +1 -35
  230. package/dist/Molecular/CustomIcons/components/Flows.js +1 -15
  231. package/dist/Molecular/CustomIcons/components/Gift.js +1 -25
  232. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +1 -29
  233. package/dist/Molecular/CustomIcons/components/GooglePlay.js +1 -29
  234. package/dist/Molecular/CustomIcons/components/HelpCircle.js +1 -19
  235. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +1 -20
  236. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +1 -19
  237. package/dist/Molecular/CustomIcons/components/Home.js +1 -16
  238. package/dist/Molecular/CustomIcons/components/Home2.js +1 -22
  239. package/dist/Molecular/CustomIcons/components/Key.js +1 -23
  240. package/dist/Molecular/CustomIcons/components/Landers.js +1 -20
  241. package/dist/Molecular/CustomIcons/components/Lock.js +1 -15
  242. package/dist/Molecular/CustomIcons/components/Mail.js +1 -26
  243. package/dist/Molecular/CustomIcons/components/Mastercard.js +1 -73
  244. package/dist/Molecular/CustomIcons/components/Minus.js +1 -25
  245. package/dist/Molecular/CustomIcons/components/Offers.js +1 -16
  246. package/dist/Molecular/CustomIcons/components/Pause.js +1 -28
  247. package/dist/Molecular/CustomIcons/components/PayPal.js +1 -41
  248. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +1 -28
  249. package/dist/Molecular/CustomIcons/components/Phone.js +1 -30
  250. package/dist/Molecular/CustomIcons/components/Play.js +1 -25
  251. package/dist/Molecular/CustomIcons/components/Plus.js +1 -25
  252. package/dist/Molecular/CustomIcons/components/Profile.js +1 -16
  253. package/dist/Molecular/CustomIcons/components/QRCode.js +1 -29
  254. package/dist/Molecular/CustomIcons/components/Rectangle.js +1 -12
  255. package/dist/Molecular/CustomIcons/components/Revert.js +1 -13
  256. package/dist/Molecular/CustomIcons/components/Star.js +1 -14
  257. package/dist/Molecular/CustomIcons/components/Star2.js +1 -16
  258. package/dist/Molecular/CustomIcons/components/TrafficSources.js +1 -14
  259. package/dist/Molecular/CustomIcons/components/Trash.js +1 -15
  260. package/dist/Molecular/CustomIcons/components/TrashRed.js +1 -15
  261. package/dist/Molecular/CustomIcons/components/Triggers.js +1 -15
  262. package/dist/Molecular/CustomIcons/components/User.js +1 -25
  263. package/dist/Molecular/CustomIcons/components/Visa.js +1 -31
  264. package/dist/Molecular/CustomIcons/components/X.js +1 -12
  265. package/dist/Molecular/CustomIcons/index.js +1 -61
  266. package/dist/Molecular/FormElement/FormElement.js +1 -54
  267. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +1 -184
  268. package/dist/Molecular/FormWithDependOn/partials/_utils.js +1 -53
  269. package/dist/Molecular/InputAddress/InputAddress.js +1 -620
  270. package/dist/Molecular/InputPassword/InputPassword.js +1 -48
  271. package/dist/index.js +1 -1
  272. package/package.json +1 -1
@@ -1,858 +1 @@
1
- import React, {
2
- useEffect,
3
- useLayoutEffect,
4
- useMemo,
5
- useRef,
6
- useState,
7
- } from "react";
8
-
9
- import cn from "classnames";
10
- import { ChevronLeft, ChevronRight, Plus, X } from "react-feather";
11
-
12
- import useIsMobile from "../../../Functions/useIsMobile/useIsMobile";
13
- import { compare } from "../../../Functions/utils";
14
-
15
- import "./RangeSlider2.scss";
16
-
17
- const COMPONENT_CLASS = "range-slider2";
18
- const { LEFT_COLLISSION, RIGHT_COLLISION, BOTH_COLLISION, NO_COLLISION } =
19
- Object.freeze({
20
- NO_COLLISION: 0,
21
- LEFT_COLLISSION: -1,
22
- RIGHT_COLLISION: 1,
23
- BOTH_COLLISION: 2,
24
- });
25
- const { ASSIGN_TO_LEFT, ASSIGN_TO_RIGHT } = Object.freeze({
26
- ASSIGN_TO_LEFT: -1,
27
- ASSIGN_TO_RIGHT: 1,
28
- });
29
-
30
- const POINT_VALUE_TYPES = Object.freeze({
31
- FROM: "from",
32
- TO: "to",
33
- BOTH: "both",
34
- });
35
-
36
- export default function RangeSlider2({
37
- min = 300,
38
- max = 850,
39
- minRange = 50,
40
- dividersRange = 50,
41
- pointValueType = POINT_VALUE_TYPES.FROM,
42
- precision = 0,
43
- step = 5,
44
- className,
45
- value = [],
46
- onChange = () => {},
47
- transformDataOnConcat = (d1, d2) => {
48
- return [];
49
- },
50
- }) {
51
- const { isMobile } = useIsMobile();
52
- const [protectedValue, setProtectedValue] = useState([]);
53
-
54
- const trackRef = useRef(null);
55
- const addTriggerRef = useRef(null);
56
-
57
- const [trackWidth, setTrackWidth] = useState(0);
58
- const [trackPosition, setTrackPosition] = useState(0);
59
-
60
- const [mouseTrackPosition, setMouseTrackPosition] = useState(0);
61
-
62
- const prepareValue = (value) => {
63
- return parseInt(parseFloat(value) * 10 ** precision, 10) / 10 ** precision;
64
- };
65
-
66
- const [ranges, setRanges] = useState(value);
67
- const addRange = ({ from, to, label, value, data = [], id = null }) =>
68
- setRanges((ranges) => {
69
- if (!id) {
70
- id = (ranges?.length + 1) * -1;
71
- }
72
-
73
- return [
74
- ...ranges,
75
- {
76
- id,
77
- from,
78
- to,
79
- label,
80
- data,
81
- value: Number.isInteger(value) ? value : 0,
82
- },
83
- ].sort((a, b) => a.from - b.from);
84
- });
85
- const updateRange = ({ from, to, label, value, data, id }) =>
86
- setRanges((ranges) => {
87
- const newRanges = [...ranges];
88
- const range = newRanges?.find(({ id: rangeId }) => rangeId === id);
89
-
90
- if (range) {
91
- range.from = from ?? range?.from;
92
- range.to = to ?? range?.to;
93
- range.label = label ?? range?.label;
94
- range.value =
95
- value !== undefined
96
- ? Number.isInteger(value)
97
- ? value
98
- : 0
99
- : range?.value;
100
- range.data = data !== undefined ? data : range?.data;
101
- }
102
-
103
- return newRanges;
104
- });
105
- const updateRangesByTrigger = (trigger) => {
106
- const newValue = triggers?.find(({ id }) => id === trigger?.id)?.value;
107
- const oldValue = trigger?.value;
108
-
109
- const leftRange = ranges?.find((range) => range?.to === oldValue);
110
- const rightRange = ranges?.find((range) => range?.from === oldValue + 1);
111
-
112
- if (leftRange && rightRange) {
113
- updateRange({ from: leftRange?.from, to: newValue, id: leftRange?.id });
114
- updateRange({
115
- from: newValue + 1,
116
- to: rightRange?.to,
117
- id: rightRange?.id,
118
- });
119
- }
120
- };
121
- const splitRange = (score) => {
122
- const range = ranges?.find(
123
- ({ from, to }) => from + minRange <= score + 1 && score <= to - minRange,
124
- );
125
- if (!range) return;
126
-
127
- const { value = 0, label, data } = addTriggerFixedRange || {};
128
- addRange({
129
- value: assignValueToRange === ASSIGN_TO_RIGHT ? value : 0,
130
- data: assignValueToRange === ASSIGN_TO_RIGHT ? data : null,
131
- label,
132
- from: score + 1,
133
- to: range?.to,
134
- id: null,
135
- });
136
- updateRange({
137
- ...range,
138
- value: assignValueToRange === ASSIGN_TO_LEFT ? value : 0,
139
- data: assignValueToRange === ASSIGN_TO_LEFT ? data : null,
140
- label,
141
- to: score,
142
- });
143
-
144
- if (isAddTriggerFixed) unfixAddTrigger();
145
- };
146
- const concatRanges = (score) => {
147
- const [left, right] = ranges?.filter(
148
- ({ from, to }) => from === score + 1 || score === to,
149
- );
150
- const { data, value } = transformDataOnConcat(left, right);
151
-
152
- updateRange({ from: left?.from, to: right?.to, id: left?.id, data, value });
153
- removeRange(right?.id);
154
- };
155
- const removeRange = (id) =>
156
- setRanges((ranges) => ranges?.filter((range) => range?.id !== id));
157
- const clearRanges = () => setRanges([]);
158
-
159
- const [triggers, setTriggers] = useState([]);
160
- const addTrigger = (
161
- value,
162
- { isFixed = false, isHidden = false } = {},
163
- { withRange = true } = {},
164
- index = triggers.length,
165
- ) =>
166
- setTriggers((state) => {
167
- if (withRange) splitRange(value);
168
-
169
- const newState = [...state];
170
- const id = state?.length
171
- ? Math.max(...state?.map(({ id }) => id)) + 1
172
- : 0;
173
-
174
- newState.splice(index, 0, { id, value, isFixed, isHidden });
175
- return newState.sort((a, b) => (a.value < b.value ? -1 : 1));
176
- });
177
- const updateTrigger = (index, value) =>
178
- setTriggers((state) => {
179
- const newState = [...state];
180
- newState[index] = { ...newState[index], value };
181
- return newState;
182
- });
183
- const removeTrigger = (index) =>
184
- setTriggers((state) => {
185
- concatRanges(state[index]?.value);
186
-
187
- const newState = [...state];
188
- newState.splice(index, 1);
189
- return newState;
190
- });
191
- const clearTriggers = () => setTriggers([]);
192
- const getTriggerByScore = (score) => {
193
- return triggers?.find(({ value: triggerScore }) => triggerScore === score);
194
- };
195
-
196
- const [movingController, setMovingController] = useState(null);
197
-
198
- const [movingTrigger, setMovingTrigger] = useState(null);
199
- const [movingTriggerIndex, setMovingTriggerIndex] = useState(null);
200
- const [movingTriggerData, setMovingTriggerData] = useState(null);
201
- const [isTriggerMoved, setIsTriggerMoved] = useState(false);
202
- const [isMouseOverTrigger, setIsMouseOverTrigger] = useState(false);
203
- const setMouseOverTrigger = () => setIsMouseOverTrigger(true);
204
- const setMouseLeaveTrigger = () => setIsMouseOverTrigger(false);
205
- const [isMouseOverTrack, setIsMouseOverTrack] = useState(false);
206
- const setMouseOverTrack = () => setIsMouseOverTrack(true);
207
- const setMouseLeaveTrack = () => setIsMouseOverTrack(false);
208
-
209
- const isTriggerMoving = (triggerIndex) => triggerIndex === movingTriggerIndex;
210
-
211
- const [addTriggerFixedScore, setAddTriggerFixedScore] = useState(null);
212
- const [addTriggerFixedRange, setAddTriggerFixedRange] = useState(null);
213
- const [isAddTriggerFixed, setIsAddTriggerFixed] = useState(false);
214
- const [assignValueToRange, setAssignValueToRange] = useState(ASSIGN_TO_LEFT);
215
- const fixAddTrigger = (score, inRange) => {
216
- setAddTriggerFixedScore(score);
217
- setAddTriggerFixedRange(inRange);
218
- setIsAddTriggerFixed(true);
219
- };
220
- const unfixAddTrigger = (e) => {
221
- e?.stopPropagation();
222
- e?.preventDefault();
223
-
224
- setAddTriggerFixedScore(null);
225
- setAddTriggerFixedRange(null);
226
- setIsAddTriggerFixed(false);
227
- setAssignValueToRange(ASSIGN_TO_LEFT);
228
- };
229
-
230
- const [pointsPerPx, setPointsPerPx] = useState(0);
231
- const countPointsPerPx = (width) => {
232
- return (max - min) / width;
233
- };
234
-
235
- // GETTERS //
236
- const getTrackXByScore = (score) => {
237
- return (score - min) / pointsPerPx;
238
- };
239
- const getScoreByX = (x) => {
240
- let points = (x - trackPosition) * pointsPerPx + min;
241
- points -= points % step;
242
-
243
- if (points < min) points = min;
244
- if (points > max) points = max;
245
-
246
- return points - 1;
247
- };
248
-
249
- const getTriggerCollisionDirection = (index, points) => {
250
- if (index <= 0) return points;
251
-
252
- const [triggerBefore, triggerAfter] = [
253
- triggers?.[index - 1]?.value + minRange - 1,
254
- triggers?.[index + 1]?.value - minRange - 1,
255
- ];
256
-
257
- if (triggerBefore === triggerAfter) return BOTH_COLLISION;
258
- else if (points === triggerBefore) return LEFT_COLLISSION;
259
- else if (points === triggerAfter) return RIGHT_COLLISION;
260
- else return NO_COLLISION;
261
- };
262
- const getTriggerScore = (index, points) => {
263
- if (index <= 0) return points;
264
-
265
- const [triggerBefore, triggerAfter] = [
266
- triggers?.[index - 1]?.value + minRange - 1,
267
- triggers?.[index + 1]?.value - minRange - 1,
268
- ];
269
-
270
- if (points < triggerBefore) return triggerBefore;
271
- else if (points > triggerAfter) return triggerAfter;
272
- else return points;
273
- };
274
-
275
- const getAddTriggerCollisionDirection = (x) => {
276
- const triggerScore = getAddTriggerScore(x);
277
- const inRange = getInRange(triggerScore);
278
-
279
- if (!inRange) return 0;
280
-
281
- const { from, to } = inRange;
282
- const triggerBefore = from + minRange - 1;
283
- const triggerAfter = to - minRange - 1;
284
-
285
- if (triggerBefore === triggerAfter) return BOTH_COLLISION;
286
- else if (triggerScore <= triggerBefore) return LEFT_COLLISSION;
287
- else if (triggerScore >= triggerAfter) return RIGHT_COLLISION;
288
- else return NO_COLLISION;
289
- };
290
- const getAddTriggerPosition = () => {
291
- return isAddTriggerFixed
292
- ? getTrackXByScore(addTriggerFixedScore)
293
- : mouseTrackPosition;
294
- };
295
- const getAddTriggerScore = (x) => {
296
- const score = getScoreByX(x);
297
-
298
- let result = getRangesList()?.reduce((result, { from, to }) => {
299
- if (to - from + 1 <= 2 * minRange && from <= score && score <= to) {
300
- return null;
301
- }
302
-
303
- if (from <= score && score <= from + minRange) {
304
- return from + minRange - 1;
305
- } else if (to - minRange <= score && score <= to) {
306
- return to - minRange - 1;
307
- } else {
308
- return result;
309
- }
310
- }, score);
311
-
312
- if (!result) {
313
- const closestRange = getRangesList()
314
- ?.filter(({ from, to }) => to - from + 1 >= 2 * minRange)
315
- ?.reduce((result, range) => {
316
- const distance = Math.abs((range.to + range.from) / 2 - score);
317
- if (!result || distance < result?.distance) {
318
- return {
319
- ...range,
320
- distance,
321
- };
322
- }
323
-
324
- return result;
325
- }, null);
326
-
327
- if (closestRange) {
328
- if (closestRange?.to < score) result = closestRange?.to - minRange - 1;
329
- if (score < closestRange?.from)
330
- result = closestRange?.from + minRange - 1;
331
- }
332
- }
333
-
334
- return result;
335
- };
336
-
337
- const getRangesList = () => {
338
- return triggers
339
- .map(({ value }) => value)
340
- .sort()
341
- .reduce((result, score, i, scores) => {
342
- if (i !== 0) {
343
- result.push({
344
- from: scores[i - 1],
345
- to: score,
346
- });
347
- }
348
- return result;
349
- }, []);
350
- };
351
- const getInRange = (score) => {
352
- return ranges?.find(({ from, to }) => from <= score && score <= to);
353
- };
354
- const getPointValue = (score) => {
355
- switch (pointValueType) {
356
- case POINT_VALUE_TYPES.FROM:
357
- return `${score + 1}`;
358
- case POINT_VALUE_TYPES.TO:
359
- return `${score}`;
360
- case POINT_VALUE_TYPES.BOTH:
361
- default:
362
- return `${score} | ${score + 1}`;
363
- }
364
- };
365
-
366
- // EVENTS //
367
- const onRangeChange = (index, value, validate = true) => {
368
- if (validate) value = prepareValue(value);
369
-
370
- if (isNaN(value)) value = 0;
371
- updateTrigger(index, value);
372
- };
373
- const onTriggerMouseDown = (e, index) => {
374
- setMovingTrigger(e.target);
375
- setMovingTriggerIndex(index);
376
- setMovingTriggerData({ ...triggers[index] });
377
- };
378
- const onTriggerMove = (e) => {
379
- if (e?.cancelable) e?.preventDefault();
380
- e?.stopPropagation();
381
-
382
- if (!movingTriggerIndex || !movingTrigger) {
383
- return false;
384
- }
385
-
386
- if (!isTriggerMoved) setIsTriggerMoved(true);
387
-
388
- const { clientX: x } = e?.touches?.[0] ?? e;
389
- const { width: triggerWidth } =
390
- movingTrigger?.getBoundingClientRect() || {};
391
-
392
- if (x < trackPosition || x > trackPosition + trackWidth + triggerWidth)
393
- return false;
394
-
395
- const triggerPoints = getTriggerScore(movingTriggerIndex, getScoreByX(x));
396
-
397
- onRangeChange(movingTriggerIndex, triggerPoints);
398
- };
399
- const resetMovingTrigger = () => {
400
- setTimeout(() => {
401
- setMovingTrigger(null);
402
- setMovingTriggerIndex(null);
403
- }, 1);
404
- };
405
-
406
- // USE EFFECT'S //
407
- // MouseUp Event Controller
408
- useEffect(() => {
409
- if (isMobile) {
410
- document.addEventListener("touchend", resetMovingTrigger);
411
- } else {
412
- document.addEventListener("mouseup", resetMovingTrigger);
413
- }
414
-
415
- return () => {
416
- if (isMobile) {
417
- document.removeEventListener("touchend", resetMovingTrigger);
418
- } else {
419
- document.removeEventListener("mouseup", resetMovingTrigger);
420
- }
421
- };
422
- }, []);
423
- // MouseMove Event Controller
424
- useEffect(() => {
425
- if (!movingTrigger && isTriggerMoved) {
426
- movingController?.abort();
427
- setIsTriggerMoved(false);
428
- setMovingController(null);
429
- } else if (movingTrigger && !isTriggerMoved) {
430
- setMovingController(new AbortController());
431
- }
432
-
433
- const body = document.getElementsByTagName("body")[0];
434
- body.classList?.[movingTrigger ? "add" : "remove"]("moving-cursor");
435
- }, [movingTrigger]);
436
-
437
- useEffect(() => {
438
- if (movingController) {
439
- if (isMobile) {
440
- document.addEventListener("touchmove", onTriggerMove, {
441
- signal: movingController?.signal,
442
- });
443
- } else {
444
- document.addEventListener("mousemove", onTriggerMove, {
445
- signal: movingController?.signal,
446
- });
447
- }
448
- }
449
-
450
- return () => {
451
- if (isMobile) {
452
- document.removeEventListener("touchmove", onTriggerMove, {
453
- signal: movingController?.signal,
454
- passive: false,
455
- });
456
- } else {
457
- document.removeEventListener("mousemove", onTriggerMove, {
458
- signal: movingController?.signal,
459
- });
460
- }
461
- };
462
- }, [movingController]);
463
- useLayoutEffect(() => {
464
- const { width, x } = trackRef?.current?.getBoundingClientRect() || {};
465
-
466
- setPointsPerPx(countPointsPerPx(width));
467
- setTrackWidth(width);
468
- setTrackPosition(x);
469
- }, [trackRef]);
470
- useEffect(() => {
471
- onChange(ranges, triggers);
472
- }, [ranges]);
473
- useEffect(() => {
474
- clearRanges();
475
- clearTriggers();
476
-
477
- if (protectedValue?.length === 0) {
478
- addRange({ from: min, to: max });
479
- addTrigger(min, { isFixed: true, isHidden: true });
480
- addTrigger(max, { isFixed: true, isHidden: true });
481
- } else {
482
- protectedValue
483
- ?.reduce((result, range) => {
484
- addRange({ ...range });
485
-
486
- if (!result.find((score) => score === range?.from))
487
- result.splice(result?.length - 1, 0, range?.from);
488
- if (!result.find((score) => score === range?.to))
489
- result.splice(result?.length - 1, 0, range?.to);
490
- return result;
491
- }, [])
492
- ?.sort((a, b) => (a < b ? -1 : 1))
493
- ?.filter((item, i, arr) => i === 0 || item - 1 !== arr[i - 1])
494
- ?.map((score, i, triggers) => {
495
- if (i === 0 || score - 1 !== triggers[i - 1]) {
496
- const isExtremum = score === min || score === max;
497
-
498
- addTrigger(
499
- score,
500
- { isFixed: isExtremum, isHidden: isExtremum },
501
- { withRange: false },
502
- );
503
- }
504
- });
505
- }
506
- }, [protectedValue]);
507
- useEffect(() => {
508
- if (!compare(value, protectedValue)) {
509
- setProtectedValue(value);
510
- }
511
- }, [value]);
512
- useEffect(() => {
513
- if (!movingTriggerIndex && movingTriggerData) {
514
- updateRangesByTrigger({ ...movingTriggerData });
515
- setMovingTriggerData(null);
516
- }
517
- }, [movingTriggerIndex]);
518
-
519
- // RENDER //
520
- const renderCollision = ({
521
- isCollisionVisible,
522
- isLeftCollision,
523
- isRightCollision,
524
- isBothCollision,
525
- className,
526
- }) => {
527
- const pieces = parseInt((max - min) / minRange, 10);
528
- const { width: trackWidth } =
529
- trackRef?.current?.getBoundingClientRect() ?? {};
530
- const collisionWidth = trackWidth / pieces - 4;
531
-
532
- const width = isCollisionVisible
533
- ? isBothCollision
534
- ? collisionWidth * 2
535
- : isLeftCollision || isRightCollision
536
- ? collisionWidth
537
- : 0
538
- : 0;
539
-
540
- return (
541
- <div
542
- className={cn("collision", className, {
543
- "collision--visible": isCollisionVisible,
544
- "collision--left": isLeftCollision && !isBothCollision,
545
- "collision--right": isRightCollision && !isBothCollision,
546
- "collision--both": isBothCollision,
547
- })}
548
- style={{ width }}
549
- />
550
- );
551
- };
552
- const renderAddTrackTriggerSettings = () => {
553
- const { label, value } = addTriggerFixedRange || {};
554
- return (
555
- <div
556
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings`}
557
- >
558
- <div
559
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body`}
560
- >
561
- <div
562
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-left`}
563
- onClick={(e) => {
564
- e.stopPropagation();
565
- setAssignValueToRange(ASSIGN_TO_LEFT);
566
- }}
567
- attr-is-active={`${assignValueToRange === ASSIGN_TO_LEFT}`}
568
- >
569
- <ChevronLeft />
570
- </div>
571
- <div
572
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--lenders-count`}
573
- >
574
- {label}
575
- {value}
576
- </div>
577
- <div
578
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-body--assign-right`}
579
- onClick={(e) => {
580
- e.stopPropagation();
581
- setAssignValueToRange(ASSIGN_TO_RIGHT);
582
- }}
583
- attr-is-active={`${assignValueToRange === ASSIGN_TO_RIGHT}`}
584
- >
585
- <ChevronRight />
586
- </div>
587
- </div>
588
- <div
589
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions`}
590
- >
591
- <div
592
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--cancel`}
593
- onClick={(e) => unfixAddTrigger(e)}
594
- >
595
- Cancel
596
- </div>
597
- <div
598
- className={`${COMPONENT_CLASS}__track__range-triggers--add-trigger__settings-actions--apply`}
599
- onClick={(e) => {
600
- e.stopPropagation();
601
- addTrigger(addTriggerFixedScore);
602
- }}
603
- >
604
- Apply
605
- </div>
606
- </div>
607
- </div>
608
- );
609
- };
610
- const renderAddTrackTrigger = () => {
611
- const isNoTriggers = !triggers?.filter(({ isHidden }) => !isHidden).length;
612
-
613
- const x = getAddTriggerPosition();
614
- const score = isAddTriggerFixed
615
- ? addTriggerFixedScore
616
- : isNoTriggers && !isMouseOverTrack
617
- ? (min + max) / 2 - 1
618
- : getAddTriggerScore(x);
619
-
620
- const triggerCollision = !isAddTriggerFixed
621
- ? getAddTriggerCollisionDirection(x)
622
- : NO_COLLISION;
623
- const isLeftCollision = triggerCollision === LEFT_COLLISSION;
624
- const isRightCollision = triggerCollision === RIGHT_COLLISION;
625
- const isBothCollision = triggerCollision === BOTH_COLLISION;
626
- const isCollisionVisible =
627
- (isLeftCollision || isRightCollision || isBothCollision) &&
628
- !(isNoTriggers && !isMouseOverTrack);
629
- const left = getTrackXByScore(score);
630
- const inRange = getInRange(score);
631
-
632
- const isTriggerWithScoreExists = getTriggerByScore(score);
633
-
634
- if (isTriggerWithScoreExists || movingTrigger || isMouseOverTrigger)
635
- return null;
636
-
637
- return (
638
- <div
639
- className={cn(
640
- `${COMPONENT_CLASS}__track__range-triggers--add-trigger`,
641
- {
642
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--fixed`]:
643
- isAddTriggerFixed,
644
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--force-visible`]:
645
- isNoTriggers,
646
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger--moved-smoothly`]:
647
- isNoTriggers && !isMouseOverTrack,
648
- },
649
- )}
650
- style={{ left: `${left}px` }}
651
- onClick={() =>
652
- inRange?.value ? fixAddTrigger(score, inRange) : addTrigger(score)
653
- }
654
- >
655
- <div
656
- ref={addTriggerRef}
657
- className={cn(
658
- `${COMPONENT_CLASS}__track__range-triggers--add-trigger__point`,
659
- {
660
- [`${COMPONENT_CLASS}__track__range-triggers--add-trigger__point--shake`]:
661
- isCollisionVisible,
662
- },
663
- )}
664
- data-point-value={getPointValue(score)}
665
- >
666
- <Plus />
667
- </div>
668
- {isAddTriggerFixed && renderAddTrackTriggerSettings()}
669
- {renderCollision({
670
- isCollisionVisible,
671
- isLeftCollision,
672
- isRightCollision,
673
- isBothCollision,
674
- })}
675
- </div>
676
- );
677
- };
678
- const renderTrackTrigger = (
679
- { value: triggerScore, isFixed, isHidden },
680
- triggerIndex,
681
- ) => {
682
- const triggerCollision = getTriggerCollisionDirection(
683
- triggerIndex,
684
- triggerScore,
685
- );
686
- const isLeftCollision = triggerCollision === LEFT_COLLISSION;
687
- const isRightCollision = triggerCollision === RIGHT_COLLISION;
688
- const isBothCollision = triggerCollision === BOTH_COLLISION;
689
- const isCurrentTriggerMoving = isTriggerMoving(triggerIndex);
690
- const isCollisionVisible =
691
- isCurrentTriggerMoving &&
692
- isTriggerMoved &&
693
- (isLeftCollision || isRightCollision || isBothCollision);
694
- return (
695
- <div
696
- key={`${COMPONENT_CLASS}__track__range-triggers--trigger-${triggerIndex}`}
697
- style={{
698
- left: getTrackXByScore(triggerScore).toString().concat("px"),
699
- }}
700
- className={cn(`${COMPONENT_CLASS}__track__range-triggers--trigger`, {
701
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__moving`]:
702
- isCurrentTriggerMoving,
703
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__fixed`]:
704
- isFixed,
705
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__hidden`]:
706
- isHidden,
707
- })}
708
- {...(isMobile
709
- ? {}
710
- : {
711
- onMouseOver: setMouseOverTrigger,
712
- onMouseLeave: setMouseLeaveTrigger,
713
- })}
714
- >
715
- <div
716
- className={cn(
717
- `${COMPONENT_CLASS}__track__range-triggers--trigger__point`,
718
- {
719
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__point--shake`]:
720
- isCollisionVisible,
721
- },
722
- )}
723
- data-point-value={getPointValue(triggerScore)}
724
- {...(isMobile
725
- ? {
726
- onTouchStart: (e) => onTriggerMouseDown(e, triggerIndex),
727
- onTouchEnd: resetMovingTrigger,
728
- }
729
- : {
730
- onMouseDown: (e) => onTriggerMouseDown(e, triggerIndex),
731
- onMouseUp: resetMovingTrigger,
732
- })}
733
- />
734
- <div
735
- className={cn(
736
- `${COMPONENT_CLASS}__track__range-triggers--trigger__actions`,
737
- {
738
- [`${COMPONENT_CLASS}__track__range-triggers--trigger__actions--hidden`]:
739
- isCurrentTriggerMoving,
740
- },
741
- )}
742
- >
743
- <div
744
- className={`${COMPONENT_CLASS}__track__range-triggers--trigger__actions--remove`}
745
- onClick={() => removeTrigger(triggerIndex)}
746
- >
747
- <X />
748
- </div>
749
- </div>
750
- {renderCollision({
751
- isCollisionVisible,
752
- isLeftCollision,
753
- isRightCollision,
754
- isBothCollision,
755
- className: `${COMPONENT_CLASS}__track__range-triggers--trigger__collision`,
756
- })}
757
- </div>
758
- );
759
- };
760
- const renderTrackTriggers = () => {
761
- return (
762
- <div className={`${COMPONENT_CLASS}__track__range-triggers`}>
763
- {triggers?.map(renderTrackTrigger)}
764
- </div>
765
- );
766
- };
767
- const renderRangeValue = ({ from, to, label, value }, rangeIndex) => {
768
- if (!value) return null;
769
-
770
- const left = getTrackXByScore((to + from) / 2);
771
-
772
- return (
773
- <div
774
- className={cn(`${COMPONENT_CLASS}__track__ranges-value--item`)}
775
- style={{ left: `${left}px` }}
776
- key={`${COMPONENT_CLASS}__track__ranges-value--item-${rangeIndex}`}
777
- >
778
- <div
779
- className={cn(`${COMPONENT_CLASS}__track__ranges-value--item__label`)}
780
- >
781
- {label}
782
- </div>
783
- <div
784
- className={cn(`${COMPONENT_CLASS}__track__ranges-value--item__value`)}
785
- >
786
- {value}
787
- </div>
788
- </div>
789
- );
790
- };
791
- const renderRangesValue = () => {
792
- return (
793
- <div className={cn(`${COMPONENT_CLASS}__track__ranges-value`)}>
794
- {ranges?.map(renderRangeValue)}
795
- </div>
796
- );
797
- };
798
- const renderTrackDividers = useMemo(() => {
799
- const renderTrackDivider = (key = 0) => (
800
- <div
801
- key={key}
802
- className={`${COMPONENT_CLASS}__track__line__dividers--item`}
803
- />
804
- );
805
-
806
- const dividersCount = parseInt((max - min) / dividersRange, 10);
807
- const dividers = [];
808
-
809
- for (let i = 0; i < dividersCount; ++i)
810
- dividers.push(renderTrackDivider(i));
811
-
812
- return (
813
- <div className={`${COMPONENT_CLASS}__track__line__dividers`}>
814
- {dividers}
815
- </div>
816
- );
817
- }, [trackRef, minRange, min, max]);
818
- const renderTrackLine = () => {
819
- return (
820
- <div className={`${COMPONENT_CLASS}__track__line`}>
821
- <div className={`${COMPONENT_CLASS}__track__line__extremum--min`}>
822
- {min}
823
- </div>
824
- {renderTrackDividers}
825
- <div className={`${COMPONENT_CLASS}__track__line__extremum--max`}>
826
- {max}
827
- </div>
828
- </div>
829
- );
830
- };
831
- const renderTrack = () => {
832
- return (
833
- <div
834
- className={cn(`${COMPONENT_CLASS}__track`, className)}
835
- ref={trackRef}
836
- >
837
- {renderTrackLine()}
838
- {renderAddTrackTrigger()}
839
- {renderTrackTriggers()}
840
- {renderRangesValue()}
841
- </div>
842
- );
843
- };
844
- const render = () => {
845
- return (
846
- <div
847
- className={COMPONENT_CLASS}
848
- onMouseOver={setMouseOverTrack}
849
- onMouseLeave={setMouseLeaveTrack}
850
- onMouseMove={(e) => setMouseTrackPosition(e?.clientX)}
851
- >
852
- {renderTrack()}
853
- </div>
854
- );
855
- };
856
-
857
- return render();
858
- }
1
+ function n(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=Array(t);r<t;r++)e[r]=n[r];return e}function t(n,t,r){return t in n?Object.defineProperty(n,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[t]=r,n}function r(n){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{},i=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(e).filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),i.forEach(function(r){t(n,r,e[r])})}return n}function e(n,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(n,t){var r=Object.keys(n);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(n);r.push.apply(r,e)}return r})(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))}),n}function i(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var r,e,i=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=i){var o=[],l=!0,a=!1;try{for(i=i.call(n);!(l=(r=i.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(n){a=!0,e=n}finally{try{l||null==i.return||i.return()}finally{if(a)throw e}}return o}}(n,t)||l(n,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(t)||l(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(t,r){if(t){if("string"==typeof t)return n(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);if("Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return n(t,r)}}import{jsx as a,jsxs as u}from"react/jsx-runtime";import{useEffect as c,useLayoutEffect as d,useMemo as s,useRef as v,useState as f}from"react";import _ from"classnames";import{ChevronLeft as g,ChevronRight as m,Plus as p,X as h}from"react-feather";import b from"../../../Functions/useIsMobile/useIsMobile";import{compare as O}from"../../../Functions/utils";import"./RangeSlider2.scss";var y="range-slider2",N=Object.freeze({NO_COLLISION:0,LEFT_COLLISSION:-1,RIGHT_COLLISION:1,BOTH_COLLISION:2}),k=N.LEFT_COLLISSION,I=N.RIGHT_COLLISION,C=N.BOTH_COLLISION,L=N.NO_COLLISION,S=Object.freeze({ASSIGN_TO_LEFT:-1,ASSIGN_TO_RIGHT:1}),T=S.ASSIGN_TO_LEFT,j=S.ASSIGN_TO_RIGHT,w=Object.freeze({FROM:"from",TO:"to",BOTH:"both"});export default function x(n){var l,N,S,x,M,E,R,F,P,A,H,B=n.min,D=void 0===B?300:B,G=n.max,V=void 0===G?850:G,z=n.minRange,U=void 0===z?50:z,X=n.dividersRange,$=void 0===X?50:X,q=n.pointValueType,J=void 0===q?w.FROM:q,K=n.precision,Q=void 0===K?0:K,W=n.step,Y=void 0===W?5:W,Z=n.className,nn=n.value,nt=void 0===nn?[]:nn,nr=n.onChange,ne=void 0===nr?function(){}:nr,ni=n.transformDataOnConcat,no=void 0===ni?function(n,t){return[]}:ni,nl=b().isMobile,na=i(f([]),2),nu=na[0],nc=na[1],nd=v(null),ns=v(null),nv=i(f(0),2),nf=nv[0],n_=nv[1],ng=i(f(0),2),nm=ng[0],np=ng[1],nh=i(f(0),2),nb=nh[0],nO=nh[1],ny=i(f(nt),2),nN=ny[0],nk=ny[1],nI=function(n){var t=n.from,r=n.to,e=n.label,i=n.value,l=n.data,a=void 0===l?[]:l,u=n.id,c=void 0===u?null:u;return nk(function(n){return c||(c=-(((null==n?void 0:n.length)+1)*1)),o(n).concat([{id:c,from:t,to:r,label:e,data:a,value:Number.isInteger(i)?i:0}]).sort(function(n,t){return n.from-t.from})})},nC=function(n){var t=n.from,r=n.to,e=n.label,i=n.value,l=n.data,a=n.id;return nk(function(n){var u=o(n),c=null==u?void 0:u.find(function(n){return n.id===a});return c&&(c.from=null!=t?t:null==c?void 0:c.from,c.to=null!=r?r:null==c?void 0:c.to,c.label=null!=e?e:null==c?void 0:c.label,c.value=void 0!==i?Number.isInteger(i)?i:0:null==c?void 0:c.value,c.data=void 0!==l?l:null==c?void 0:c.data),u})},nL=function(n){var t,r=null==nx||null==(t=nx.find(function(t){return t.id===(null==n?void 0:n.id)}))?void 0:t.value,e=null==n?void 0:n.value,i=null==nN?void 0:nN.find(function(n){return(null==n?void 0:n.to)===e}),o=null==nN?void 0:nN.find(function(n){return(null==n?void 0:n.from)===e+1});i&&o&&(nC({from:null==i?void 0:i.from,to:r,id:null==i?void 0:i.id}),nC({from:r+1,to:null==o?void 0:o.to,id:null==o?void 0:o.id}))},nS=function(n){var t=null==nN?void 0:nN.find(function(t){var r=t.from,e=t.to;return r+U<=n+1&&n<=e-U});if(t){var i=n6||{},o=i.value,l=void 0===o?0:o,a=i.label,u=i.data;nI({value:te===j?l:0,data:te===j?u:null,label:a,from:n+1,to:null==t?void 0:t.to,id:null}),nC(e(r({},t),{value:te===T?l:0,data:te===T?u:null,label:a,to:n})),tn&&tl()}},nT=function(n){var t=i(null==nN?void 0:nN.filter(function(t){var r=t.from,e=t.to;return r===n+1||n===e}),2),r=t[0],e=t[1],o=no(r,e),l=o.data,a=o.value;nC({from:null==r?void 0:r.from,to:null==e?void 0:e.to,id:null==r?void 0:r.id,data:l,value:a}),nj(null==e?void 0:e.id)},nj=function(n){return nk(function(t){return null==t?void 0:t.filter(function(t){return(null==t?void 0:t.id)!==n})})},nw=i(f([]),2),nx=nw[0],nM=nw[1],nE=function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.isFixed,e=void 0!==r&&r,i=t.isHidden,l=void 0!==i&&i,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=a.withRange,c=void 0===u||u,d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:nx.length;return nM(function(t){c&&nS(n);var r,i=o(t),a=(null==t?void 0:t.length)?(r=Math).max.apply(r,o(null==t?void 0:t.map(function(n){return n.id})))+1:0;return i.splice(d,0,{id:a,value:n,isFixed:e,isHidden:l}),i.sort(function(n,t){return n.value<t.value?-1:1})})},nR=i(f(null),2),nF=nR[0],nP=nR[1],nA=i(f(null),2),nH=nA[0],nB=nA[1],nD=i(f(null),2),nG=nD[0],nV=nD[1],nz=i(f(null),2),nU=nz[0],nX=nz[1],n$=i(f(!1),2),nq=n$[0],nJ=n$[1],nK=i(f(!1),2),nQ=nK[0],nW=nK[1],nY=function(){return nW(!0)},nZ=function(){return nW(!1)},n0=i(f(!1),2),n1=n0[0],n2=n0[1],n3=i(f(null),2),n5=n3[0],n8=n3[1],n4=i(f(null),2),n6=n4[0],n7=n4[1],n9=i(f(!1),2),tn=n9[0],tt=n9[1],tr=i(f(T),2),te=tr[0],ti=tr[1],to=function(n,t){n8(n),n7(t),tt(!0)},tl=function(n){null==n||n.stopPropagation(),null==n||n.preventDefault(),n8(null),n7(null),tt(!1),ti(T)},ta=i(f(0),2),tu=ta[0],tc=ta[1],td=function(n){return(n-D)/tu},ts=function(n){var t=(n-nm)*tu+D;return(t-=t%Y)<D&&(t=D),t>V&&(t=V),t-1},tv=function(n,t){if(n<=0)return t;var r,e,i=[(null==nx||null==(r=nx[n-1])?void 0:r.value)+U-1,(null==nx||null==(e=nx[n+1])?void 0:e.value)-U-1],o=i[0],l=i[1];return o===l?C:t===o?k:t===l?I:L},tf=function(n,t){if(n<=0)return t;var r,e,i=[(null==nx||null==(r=nx[n-1])?void 0:r.value)+U-1,(null==nx||null==(e=nx[n+1])?void 0:e.value)-U-1],o=i[0],l=i[1];return t<o?o:t>l?l:t},t_=function(n){var t=tg(n),r=tp(t);if(!r)return 0;var e=r.from,i=r.to,o=e+U-1,l=i-U-1;return o===l?C:t<=o?k:t>=l?I:L},tg=function(n){var t=ts(n),i=null==(o=tm())?void 0:o.reduce(function(n,r){var e=r.from,i=r.to;return i-e+1<=2*U&&e<=t&&t<=i?null:e<=t&&t<=e+U?e+U-1:i-U<=t&&t<=i?i-U-1:n},t);if(!i){var o,l,a,u=null==(a=tm())||null==(l=a.filter(function(n){var t=n.from;return n.to-t+1>=2*U}))?void 0:l.reduce(function(n,i){var o=Math.abs((i.to+i.from)/2-t);return!n||o<(null==n?void 0:n.distance)?e(r({},i),{distance:o}):n},null);u&&((null==u?void 0:u.to)<t&&(i=(null==u?void 0:u.to)-U-1),t<(null==u?void 0:u.from)&&(i=(null==u?void 0:u.from)+U-1))}return i},tm=function(){return nx.map(function(n){return n.value}).sort().reduce(function(n,t,r,e){return 0!==r&&n.push({from:e[r-1],to:t}),n},[])},tp=function(n){return null==nN?void 0:nN.find(function(t){var r=t.from,e=t.to;return r<=n&&n<=e})},th=function(n){switch(J){case w.FROM:return"".concat(n+1);case w.TO:return"".concat(n);case w.BOTH:default:return"".concat(n," | ").concat(n+1)}},tb=function(n,t){var i,l=!(arguments.length>2)||void 0===arguments[2]||arguments[2];l&&(t=parseInt(parseFloat(t)*Math.pow(10,Q),10)/Math.pow(10,Q)),isNaN(t)&&(t=0),i=t,nM(function(t){var l=o(t);return l[n]=e(r({},l[n]),{value:i}),l})},tO=function(n,t){nB(n.target),nV(t),nX(r({},nx[t]))},ty=function(n){if((null==n?void 0:n.cancelable)&&(null==n||n.preventDefault()),null==n||n.stopPropagation(),!nG||!nH)return!1;nq||nJ(!0);var t,r,e=(null!=(r=null==n||null==(t=n.touches)?void 0:t[0])?r:n).clientX,i=((null==nH?void 0:nH.getBoundingClientRect())||{}).width;if(e<nm||e>nm+nf+i)return!1;var o=tf(nG,ts(e));tb(nG,o)},tN=function(){setTimeout(function(){nB(null),nV(null)},1)};c(function(){return nl?document.addEventListener("touchend",tN):document.addEventListener("mouseup",tN),function(){nl?document.removeEventListener("touchend",tN):document.removeEventListener("mouseup",tN)}},[]),c(function(){var n;!nH&&nq?(null==nF||nF.abort(),nJ(!1),nP(null)):nH&&!nq&&nP(new AbortController),null==(n=document.getElementsByTagName("body")[0].classList)||n[nH?"add":"remove"]("moving-cursor")},[nH]),c(function(){return nF&&(nl?document.addEventListener("touchmove",ty,{signal:null==nF?void 0:nF.signal}):document.addEventListener("mousemove",ty,{signal:null==nF?void 0:nF.signal})),function(){nl?document.removeEventListener("touchmove",ty,{signal:null==nF?void 0:nF.signal,passive:!1}):document.removeEventListener("mousemove",ty,{signal:null==nF?void 0:nF.signal})}},[nF]),d(function(){var n,t=(null==nd||null==(n=nd.current)?void 0:n.getBoundingClientRect())||{},r=t.width,e=t.x;tc((V-D)/r),n_(r),np(e)},[nd]),c(function(){ne(nN,nx)},[nN]),c(function(){if(nk([]),nM([]),(null==nu?void 0:nu.length)===0)nI({from:D,to:V}),nE(D,{isFixed:!0,isHidden:!0}),nE(V,{isFixed:!0,isHidden:!0});else{var n,t,e;null==nu||null==(e=nu.reduce(function(n,t){return nI(r({},t)),n.find(function(n){return n===(null==t?void 0:t.from)})||n.splice((null==n?void 0:n.length)-1,0,null==t?void 0:t.from),n.find(function(n){return n===(null==t?void 0:t.to)})||n.splice((null==n?void 0:n.length)-1,0,null==t?void 0:t.to),n},[]))||null==(t=e.sort(function(n,t){return n<t?-1:1}))||null==(n=t.filter(function(n,t,r){return 0===t||n-1!==r[t-1]}))||n.map(function(n,t,r){if(0===t||n-1!==r[t-1]){var e=n===D||n===V;nE(n,{isFixed:e,isHidden:e},{withRange:!1})}})}},[nu]),c(function(){O(nt,nu)||nc(nt)},[nt]),c(function(){!nG&&nU&&(nL(r({},nU)),nX(null))},[nG]);var tk=function(n){var t,r,e=n.isCollisionVisible,i=n.isLeftCollision,o=n.isRightCollision,l=n.isBothCollision,u=n.className,c=parseInt((V-D)/U,10),d=(null!=(r=null==nd||null==(t=nd.current)?void 0:t.getBoundingClientRect())?r:{}).width/c-4,s=e?l?2*d:i||o?d:0:0;return a("div",{className:_("collision",u,{"collision--visible":e,"collision--left":i&&!l,"collision--right":o&&!l,"collision--both":l}),style:{width:s}})},tI=function(){var n=n6||{},t=n.label,r=n.value;return u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings"),children:[u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body"),children:[a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body--assign-left"),onClick:function(n){n.stopPropagation(),ti(T)},"attr-is-active":"".concat(te===T),children:a(g,{})}),u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body--lenders-count"),children:[t,r]}),a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-body--assign-right"),onClick:function(n){n.stopPropagation(),ti(j)},"attr-is-active":"".concat(te===j),children:a(m,{})})]}),u("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-actions"),children:[a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-actions--cancel"),onClick:function(n){return tl(n)},children:"Cancel"}),a("div",{className:"".concat(y,"__track__range-triggers--add-trigger__settings-actions--apply"),onClick:function(n){n.stopPropagation(),nE(n5)},children:"Apply"})]})]})},tC=s(function(){for(var n=parseInt((V-D)/$,10),t=[],r=0;r<n;++r)t.push(function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return a("div",{className:"".concat(y,"__track__line__dividers--item")},n)}(r));return a("div",{className:"".concat(y,"__track__line__dividers"),children:t})},[nd,U,D,V]);return a("div",{className:y,onMouseOver:function(){return n2(!0)},onMouseLeave:function(){return n2(!1)},onMouseMove:function(n){return nO(null==n?void 0:n.clientX)},children:u("div",{className:_("".concat(y,"__track"),Z),ref:nd,children:[u("div",{className:"".concat(y,"__track__line"),children:[a("div",{className:"".concat(y,"__track__line__extremum--min"),children:D}),tC,a("div",{className:"".concat(y,"__track__line__extremum--max"),children:V})]}),(N=!(null==nx?void 0:nx.filter(function(n){return!n.isHidden}).length),S=tn?td(n5):nb,x=tn?n5:N&&!n1?(D+V)/2-1:tg(S),E=(M=tn?L:t_(S))===k,R=M===I,F=M===C,P=(E||R||F)&&!(N&&!n1),A=td(x),H=tp(x),(null==nx?void 0:nx.find(function(n){return n.value===x}))||nH||nQ?null:u("div",{className:_("".concat(y,"__track__range-triggers--add-trigger"),(t(l={},"".concat(y,"__track__range-triggers--add-trigger--fixed"),tn),t(l,"".concat(y,"__track__range-triggers--add-trigger--force-visible"),N),t(l,"".concat(y,"__track__range-triggers--add-trigger--moved-smoothly"),N&&!n1),l)),style:{left:"".concat(A,"px")},onClick:function(){return(null==H?void 0:H.value)?to(x,H):nE(x)},children:[a("div",{ref:ns,className:_("".concat(y,"__track__range-triggers--add-trigger__point"),t({},"".concat(y,"__track__range-triggers--add-trigger__point--shake"),P)),"data-point-value":th(x),children:a(p,{})}),tn&&tI(),tk({isCollisionVisible:P,isLeftCollision:E,isRightCollision:R,isBothCollision:F})]})),a("div",{className:"".concat(y,"__track__range-triggers"),children:null==nx?void 0:nx.map(function(n,i){var l,c=n.value,d=n.isFixed,s=n.isHidden,v=tv(i,c),f=v===k,g=v===I,m=v===C,p=i===nG,b=p&&nq&&(f||g||m);return u("div",e(r({style:{left:td(c).toString().concat("px")},className:_("".concat(y,"__track__range-triggers--trigger"),(t(l={},"".concat(y,"__track__range-triggers--trigger__moving"),p),t(l,"".concat(y,"__track__range-triggers--trigger__fixed"),d),t(l,"".concat(y,"__track__range-triggers--trigger__hidden"),s),l))},nl?{}:{onMouseOver:nY,onMouseLeave:nZ}),{children:[a("div",r({className:_("".concat(y,"__track__range-triggers--trigger__point"),t({},"".concat(y,"__track__range-triggers--trigger__point--shake"),b)),"data-point-value":th(c)},nl?{onTouchStart:function(n){return tO(n,i)},onTouchEnd:tN}:{onMouseDown:function(n){return tO(n,i)},onMouseUp:tN})),a("div",{className:_("".concat(y,"__track__range-triggers--trigger__actions"),t({},"".concat(y,"__track__range-triggers--trigger__actions--hidden"),p)),children:a("div",{className:"".concat(y,"__track__range-triggers--trigger__actions--remove"),onClick:function(){return nM(function(n){nT(null==(t=n[i])?void 0:t.value);var t,r=o(n);return r.splice(i,1),r})},children:a(h,{})})}),tk({isCollisionVisible:b,isLeftCollision:f,isRightCollision:g,isBothCollision:m,className:"".concat(y,"__track__range-triggers--trigger__collision")})]}),"".concat(y,"__track__range-triggers--trigger-").concat(i))})}),a("div",{className:_("".concat(y,"__track__ranges-value")),children:null==nN?void 0:nN.map(function(n,t){var r=n.from,e=n.to,i=n.label,o=n.value;if(!o)return null;var l=td((e+r)/2);return u("div",{className:_("".concat(y,"__track__ranges-value--item")),style:{left:"".concat(l,"px")},children:[a("div",{className:_("".concat(y,"__track__ranges-value--item__label")),children:i}),a("div",{className:_("".concat(y,"__track__ranges-value--item__value")),children:o})]},"".concat(y,"__track__ranges-value--item-").concat(t))})})]})})}